레거시 시스템 현대화
에이블테라퓨틱스 | 2025.07 ~ 재직중
Java/Spring Boot 메이저 버전 마이그레이션 및 DB 정규화
상세 내용
- Java 8 → 25 단계적 마이그레이션 (레코드, 패턴매칭 등 모던 Java 기능 적용)
- Spring Boot 2.x → 3.5.x 마이그레이션 (Jakarta EE 전환, 보안 설정 재구성)
- DB 구조 정규화: 비정규화된 레거시 테이블 분석 및 정규화 설계 적용
- MSA 환경 대응 OpenAPI 기반 MCP 서버 개발 (서비스 간 API 문서 자동화)
- 사내 AI 에이전트 활용 교육 진행
하이라이트
Java/Spring Boot 메이저 버전 마이그레이션
Problem
Java 8 + Spring Boot 2.x 기반 레거시 코드로 보안 패치 종료 및 최신 기능 활용 불가
Solution
Java 8 → 25 단계적 마이그레이션, Spring Boot 2.x → 3.5.x 업그레이드 (Jakarta EE 전환, 보안 설정 재구성)
Result
보안 패치 종료된 Java 8에서 최신 LTS로 전환하여 보안 취약점 해소. 다중 상속·중복 필드로 복잡했던 VO 구조를 Request/Response DTO 전량 record로 전환하여 보일러플레이트 약 900줄 이상 제거
DB 구조 정규화
Problem
비정규화된 레거시 테이블로 데이터 중복 및 정합성 문제 발생
Solution
테이블 구조 분석 후 3NF 기반 정규화 설계 적용 (BCNF 이상은 JOIN 과다로 인한 성능 저하 우려로 3NF에서 적정 수준 판단)
Result
중복 데이터 약 40% 제거, 주요 조회 쿼리 응답 시간 평균 300ms → 80ms로 개선, UPDATE 시 단일 테이블 수정으로 정합성 보장
음성 파일 업로드 아키텍처 개선
Problem
음성 파일을 서버를 경유하여 업로드하는 구조로, 서버 부하 증가 및 대용량 파일 처리 시 타임아웃 발생
Solution
S3 Presigned URL을 활용하여 프론트에서 S3로 직접 업로드하는 구조로 전환, 서버는 URL 발급만 담당
Result
서버 경유 트래픽 100% 제거, 업로드 처리를 S3에 위임하여 서버 CPU/메모리 부하 절감