은행 계좌 이체, 항공권 예약, 보험금 정산. 이 뒤에서 20~30년 묵은 코드가 여전히 돌아간다. 심심찮게 있는 얘기다. 짠 사람은 이미 회사를 떠났고, 문서는 남은 게 없고, 잘못 건드렸다가 시스템이 멈추면 그 뒷수습은 고스란히 지금 팀 몫이다. 다들 문제라는 건 안다. 그런데 손을 못 댄다. 미루고 또 미룬다. 그러다 AI가 코드를 읽고 분석하는 역할을 떠맡으면서, 상황이 조금 달라졌다. 손대기 무서웠던 숙제가 실제로 해볼 만한 프로젝트로 바뀌고 있는 셈이다.
왜 다들 손을 못 댔나
레거시 현대화가 어려운 건 기술보다 지식 손실 쪽 문제에 가깝다. 코드를 처음 짠 사람은 없고, 주석 하나 없는 코볼이나 낡은 자바 코드는 읽는 것부터가 고역이다. 여기에 하루 24시간 멈추면 안 되는 업무 시스템이라는 제약까지 겹친다. 경영진 입장에서 보면 굳이 위험을 감수할 이유가 없어 보인다. 결국 예산은 신규 기능 개발에 먼저 배정되고, 현대화는 매번 다음 분기로 밀린다. 이건 어느 회사나 비슷하다.
더는 미루면 안 되는 신호들
아래 중 두세 개만 걸려도 현대화를 검토할 때다.
- 시스템을 아는 인력이 1~2명뿐이고, 그중 은퇴를 앞둔 사람이 있다
- 신규 기능 하나 추가하는 데 몇 주씩 걸리고 버그가 잦다
- 클라우드 전환이나 API 연동이 막혀서 다른 서비스와 데이터를 주고받기 어렵다
- 보안 패치가 벤더 지원 종료로 더는 나오지 않는다
- 경쟁사는 이미 실시간 서비스를 내놓는데 우리 시스템은 야간 배치 처리에 묶여 있다
AI는 실제로 어디에 쓰이나
코드를 새로 짜주는 도구, 라고 생각하면 좀 오산이다. 사람이 하면 몇 달 걸릴 분석과 문서화 작업을 줄여주는 쪽에 더 가깝다.
- 코드 분석 및 의존성 매핑 — 수백만 줄짜리 코드베이스에서 어떤 모듈이 어디와 연결돼 있는지 자동으로 그려준다
- 자동 문서화 — 주석 없는 코드를 읽고 로직을 사람이 이해할 수 있는 설명으로 정리한다
- 코드 변환 — 코볼을 자바로, 자바를 클라우드 네이티브 구조로 옮길 때 초안을 생성한다
- 테스트 케이스 생성 — 기존 시스템의 동작을 그대로 검증할 회귀 테스트를 자동으로 만들어준다
- 리스크 우선순위 산정 — 어떤 모듈부터 손대야 장애 위험이 적은지 순서를 제안한다
리호스트, 리팩토링, 리아키텍처 — 뭐가 다른가
세 전략, 헷갈리는 사람 많다. 비용과 리스크 순서로 보면 정리가 쉽다.
- 리호스트(Rehost) — 코드는 그대로 두고 서버만 클라우드로 옮긴다. 가장 빠르고 저렴하지만 근본적인 구조 문제는 그대로 남는다
- 리팩토링(Refactor) — 기능은 유지하면서 코드 구조를 개선한다. 비용과 효과의 균형이 좋은, 중간 단계다
- 리아키텍처(Rearchitect) — 마이크로서비스 등 완전히 새로운 구조로 재설계한다. 돈은 많이 들지만 확장성과 속도 문제를 근본적으로 풀어준다
스트랭글러 패턴처럼 기존 시스템을 한 번에 걷어내지 않고 새 모듈로 하나씩 대체하는 방식도 실무에서 꽤 자주 쓰인다. 서비스 중단 없이 조금씩 넘어갈 수 있어서 리스크 관리 쪽에서 선호도가 높다. 솔직히 여기서 갈린다 — 급한 회사는 리호스트로 시간을 벌고, 여유 있는 회사는 처음부터 리아키텍처로 간다.
흔히 넘어지는 지점들
현대화 프로젝트가 실패하는 패턴, 의외로 비슷하다. 처음부터 전체 시스템을 통째로 바꾸려다 범위가 걷잡을 수 없이 커지는 경우. 비즈니스 로직 검증 없이 코드만 옮겨서 숨어있던 버그가 그대로 이식되는 경우. 그리고 현업 부서와 소통 없이 IT 팀 혼자 진행하다 실제 업무 흐름과 어긋나는 경우. 이런 문제는 대부분 처음부터 작은 단위로 쪼개서 검증하며 진행하면 피할 수 있다. 말은 쉽지만, 막상 프로젝트 일정에 쫓기면 이 원칙부터 무너진다.
시작 전 체크리스트
- 가장 리스크가 낮은 모듈부터 파일럿으로 시작했는가
- 기존 시스템의 동작을 검증할 테스트 체계가 마련돼 있는가
- 현업 담당자가 프로젝트 초기부터 참여하고 있는가
- 롤백 계획이 명확한가
- AI 도구가 생성한 코드를 검토할 내부 인력이 확보돼 있는가
결국 현대화는 한 번에 끝내는 프로젝트가 아니다. 지속적으로 관리하는 과정으로 접근하는 편이 성공률이 높다. 작은 단위로 나눠 검증하고, 실제 성과를 확인하며 다음 단계로 넘어가는 방식. 느리게 보여도, 이게 결국 가장 안전하고 빠른 길이다.

