형상관리와 실서버 소스가 따로 놀 때, 시니어 개발자가 AI 분석 파이프라인으로 '단일 진실 공급원'을 되찾는 4단계 가이드
운영 서버 직접 수정과 레거시 배포 프로세스로 인해 소스 코드가 어긋나는 현상은 대형 시스템의 고질적인 문제입니다. 이 아티클은 올리브영 백오피스 개발팀이 여러 Java 디컴파일 기술과 AI 비교 파이프라인을 영리하게 결합하여, 가독성 저하나 로직 오류 없이 실서버 실행 코드와 형상관리 서버의 정합성을 완벽하게 일치시킨 생생한 트러블슈팅 과정을 다룹니다.
장기간 서비스하며 이력이 파편화된 대규모 자바 레거시 시스템을 리팩토링하거나, 마이그레이션 전 실서버 소스코드 정합성을 안전하게 복구해야 하는 플랫폼 엔지니어들에게 적극 추천합니다.
10년 넘게 운영된 올리브영 백오피스 ERP 시스템에서 ANT 증분 배포의 누락과 SFTP를 이용한 운영 서버 직접 수정으로 인해 형상관리 소스코드와 운영 서버의 실행 코드 간 불일치가 발생하였고, 이로 인해 배포 시 기능이 오작동하는 장애가 반복적으로 발생했습니다.
운영 서버의 클래스 파일을 CFR, JAD, Fernflower 등 다양한 디컴파일러를 사용해 복구한 뒤, AI 분석 파이프라인을 통해 소스 차이의 위험도를 상, 중, 하 등급으로 분류하였으며, 재컴파일된 클래스와 운영 클래스의 바이트코드 및 해시값을 대조하여 정합성을 최종 검증했습니다.
약 1,000개의 WAS 파일과 4,800개의 FE 화면 파일 중 불일치 대상을 선별하여 99%의 동일성을 확보하였으며, 단일 진실 공급원(SSOT)을 재확립하고 향후 빌드 현대화와 직접 수정 차단을 위한 기틀을 마련했습니다.
Trade-off
디컴파일 시 원본 주석이 유실되고 지역 변수명이 임의의 식별자로 변환되어 코드 가독성이 일부 저하되었으며, 디컴파일러 자체의 추론 한계로 인해 완전히 자동화된 정합성 일치는 불가능하여 최종 단계에서 일부 수동 검증 비용이 수반되었습니다.
컴파일된 자바 바이트코드(.class) 파일의 구조를 분석하여 개발자가 읽고 수정할 수 있는 원본 소스코드(.java) 형태로 변환해 주는 역공학 도구입니다. 복원 수준은 도구의 추론 알고리즘과 타깃 자바 버전에 따라 다릅니다.
시스템 내 모든 데이터와 소스 코드가 오직 단 하나의 공식 경로(형상관리 리포지토리)를 통해서만 정의되고 관리되도록 하는 신뢰성 아키텍처 원칙입니다. 이를 위배할 경우 환경 간 동기화 장애가 발생하기 쉽습니다.
텍스트 기반의 소스코드 비교를 넘어, 컴파일된 결과물의 기계어 수준인 바이트코드를 비교하거나 파일의 암호화 해시값을 대조함으로써 두 프로그램의 기능적 동작이 완전히 동등함을 수학적으로 보장하는 기법입니다.





