20년 넘게 돌아가는 메인프레임 코드는 조직의 엔진입니다. 하지만 2027년이면 COBOL 개발자의 92%가 은퇴합니다. 시스템 전체를 한 번에 바꾸는 빅뱅 방식은 프로젝트 10개 중 7개를 실패로 몰아넣습니다. 무작정 뜯어고치기보다 비즈니스 가치가 높은 모듈부터 쪼개십시오.
변경 빈도가 높은 모듈부터 우선순위를 정하십시오
전체 모듈을 IRC 매트릭스로 나누십시오. 영향력(Impact), 위험(Risk), 복잡도(Complexity)를 평가하는 방식입니다. 100만 라인 모놀리스를 다 건드리지 마십시오. 가장 자주 바뀌는 5만 라인 핫스팟이 타겟입니다.
- Git 로그를 훑으십시오. 지난 1년간 수정 빈도가 높은 모듈을 추출합니다. 코드 수정 비율이 25%를 넘는다면 거기가 핫스팟입니다.
- 각 모듈을 Tier 1부터 4까지 분류하십시오. 고객이 직접 쓰는 기능이면서 데이터 오류 영향이 적은 Tier 1 모듈을 제일 먼저 옮기십시오.
- 머메이드 다이어그램으로 데이터 흐름을 그립니다. 의존성이 낮은 것부터 외부 API로 래핑하여 기존 코드에서 떼어내십시오.
이렇게 하면 전면 재개발보다 초기 비용을 40% 아낍니다. 작은 성공이 팀 내부의 불안을 없앱니다.
섀도 실행으로 데이터 차이를 잡아내십시오
COBOL의 COMP-3 데이터 타입을 자바의 BigDecimal로 옮길 때 금융 연산 오차가 발생합니다. 운영 장애를 막으려면 신구 시스템에 같은 트래픽을 동시에 흘리는 섀도 실행이 필수입니다.
- 디피(Diffy) 같은 프록시 도구를 도입하십시오. 운영 트래픽을 복제하여 신규 시스템으로 보냅니다.
- 기존 시스템 결과값과 신규 시스템 값을 실시간으로 대조하십시오. 시간 값이나 ID처럼 매번 바뀌는 값은 필터링 규칙을 세워 제외합니다.
- VSAM 카피북 데이터를 SQL 스키마로 매핑하는 스크립트를 파이프라인에 넣으십시오. 불일치가 발생할 때만 알람을 띄우게 설정합니다.
실제 트랜잭션에서 신규 로직의 정밀도를 증명하면 운영 중단 리스크가 사라집니다.
부패 방지 계층으로 레거시 오염을 막으십시오
난해한 레거시 모델이 신규 시스템으로 넘어오는 것을 막아야 합니다. 도메인 주도 설계의 부패 방지 계층(ACL)을 쓰십시오.
- 퍼사드 패턴을 쓰십시오. 복잡한 레거시 호출을 단순한 REST API로 감쌉니다.
- 스트랭글러 피그 패턴으로 라우팅 게이트웨이를 배치합니다. 현대화가 끝난 기능으로만 트래픽을 점진적으로 넘기십시오.
- 브리지 패턴으로 호출자와 구현부를 분리합니다. 기존 연동 부서의 API 엔드포인트를 건드리지 않고도 내부 로직만 갈아끼울 수 있습니다.
레거시가 완전히 사라질 때까지 신규 개발팀은 독립적인 스택을 유지합니다. 현대화가 끝나면 ACL만 삭제하면 그만입니다.
4계층 TCO 프레임워크로 예산을 확보하십시오
관리자는 기술 부채가 아니라 손실 금액에 반응합니다. 현대화는 비용 절감 프로젝트입니다. 딜로이트가 발표한 보고서에 따르면 레거시 유지 비용의 70~80%는 대개 과소평가되어 있습니다.
- 직접 비용(MIPS), 간접 비용(레거시 패치에 쓰는 개발 시간 40%), 컴플라이언스 비용, 기회비용을 합산하십시오. 현대화를 안 할 때 발생하는 총 손실액을 보고서에 담으십시오.
- Tier 1 모듈 전환 후 기대 효과를 숫자로 넣으십시오. 배포 주기가 6개월에서 2주로 줄어들고, 장애 복구 시간(MTTR)이 얼마나 단축되는지 대시보드로 시각화합니다.
- ING 은행의 사례를 인용하십시오. 전환 실패 시 즉시 복구하는 웜 스탠바이 전략과 90일 하이퍼케어 계획을 로드맵에 적으십시오.
이런 보고는 기술 도박이 아닙니다. 수익률을 288%에서 362%까지 끌어올릴 수 있는 재무적 투자입니다.
