목록 보기
Java야…, 우리 그만 헤어져. Kotlin으로 환승연애
백엔드

Java야…, 우리 그만 헤어져. Kotlin으로 환승연애

우아한 형제들
우아한 형제들
2025년 7월 22일

두줄요약

Java 기반 레거시 포인트 시스템을 Kotlin으로 전환한 과정과 기준을 정리했습니다. 테스트 강화와 점진적 배포로 안정성과 코드 품질을 함께 높였습니다.

문제 상황

  • 2018년부터 운영된 Java 기반 포인트 시스템의 코드베이스 비대화와 유지보수 난이도 증가
  • 다른 시스템과의 언어 불일치로 인한 문맥 전환 비용, 리뷰 시간, 테스트 품질 편차

원인 분석

  • 오래된 레거시 코드로 인한 의도 파악 어려움과 반복되는 유지보수 이슈
  • Java 중심 운영에서 비롯된 불필요한 코드 복잡도와 언어 통일 부재

해결 방법

  • 시스템 전체를 Kotlin으로 전환하고, 테스트 코드부터 먼저 Kotlin화하여 안전성 확보
  • Kotest와 MockK로 테스트 스타일과 목킹 도구를 통일하고, DTO는 data class로 정비
  • Null 처리, Optional, Stream API, Lombok, 확장 함수, QueryDSL DTO 매핑, Jackson 역직렬화, 예외/트랜잭션 처리까지 전환 기준을 수립

성능/운영 포인트

  • 약 45,000줄 수정, Code Smell 330개에서 4개로 감소, 테스트 커버리지 61.5%에서 76.7%로 증가
  • 기능 단위의 점진적 배포와 QA로 10번의 운영 배포 동안 장애 없이 전환
  • Git 히스토리 보존, Lombok 플러그인 설정 등 이행 과정의 운영 이슈 대응

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...