9개월 걸릴 시스템 이관을 하룻밤 만에: 레거시 코드를 AI의 학습 자료로 바꾸다

마이리얼트립 Experience 개발팀 김관주 님

Share
9개월 걸릴 시스템 이관을 하룻밤 만에: 레거시 코드를 AI의 학습 자료로 바꾸다

- 마이리얼트립 Experience팀 김관주 님

여행 상품을 예약할 때, 마이리얼트립은 여러 외부 파트너사의 시스템과 실시간으로 연결됩니다. 파트너사마다 연결 방식이 제각각이라, 그 차이를 흡수해주는 어댑터 코드가 시스템 안에서 묵묵히 핵심 역할을 합니다. 그런데 이 코드들이 모두 곧 종료될 기존 시스템에 묶여 있었습니다. 새 시스템으로 옮겨야 하는데, 구조가 근본적으로 달라 단순 복사로는 불가능했습니다.

수작업으로 하면 1명이 9개월. 마이리얼트립 Experience팀의 김관주님은 이 문제를 전혀 다른 방식으로 접근했습니다. 수년간 검증된 레거시 코드 자체를 AI의 학습 자료로 삼은 것입니다.

이 글에서는 마이리얼트립 사내 기술 공유 세션인 ‘모두의AI’에서 김관주님이 발표한 내용을 바탕으로, AI를 활용한 대규모 시스템 이관 사례를 소개합니다.

왜 단순 포팅이 불가능했는가

2.0 시스템은 수년간 프로덕션에서 안정적으로 운영되어 온 검증된 코드베이스였습니다. 하지만 종료(deprecated) 예정이었고, 2.0과 3.0의 매니저가 달라 사업팀에서는 이중 관리 부담이 발생하고 있었습니다. 리소스는 계속 투입되는데 시스템은 곧 사라질 예정이라는 모순적인 상황이었습니다.

단순히 코드를 복사해서 옮기면 될 일 같지만, 그렇지 않았습니다. 2.0과 3.0은 구조, 상태머신(예약·취소 등 흐름을 관리하는 체계), 에러 처리 방식이 근본적으로 달랐습니다. 김관주님은 이렇게 설명했습니다.

“수작업으로 하면 한 명이 9개월 걸린다는 계산이 나왔습니다. 구조도 다르고, 상태머신도 완전히 다르고, 에러처리 체계도 완전히 달랐기 때문입니다.”

9개 연동사 어댑터 각각이 고유한 API 스펙과 비즈니스 로직을 갖고 있었고, 이를 새로운 아키텍처에 맞게 재설계해야 했습니다. 이관 대상은 연동에 필요한 전 영역의 코드에 걸쳐 있었습니다.

레거시 코드에서 지식을 꺼내다

김관주님이 주목한 건 역설적이게도 레거시 코드 그 자체였습니다. 수년간 운영되면서 축적된 비즈니스 로직(실제 서비스 운영 규칙), 하드코딩된 특수 규칙, 문서화되지 않은 암묵적 지식이 모두 2.0 코드베이스 안에 있었습니다.

“수년간 운영에서 검증된 코드베이스라는 SOT(Source of Truth)가 있었습니다. 문서화되지 않은 하드코딩 히스토리, 암묵적 비즈니스 로직이 모두 그 안에 있었습니다.”

접근법은 이랬습니다. 먼저 AI를 활용해 2.0 코드베이스에서 연동사별 API 스펙, 하드코딩된 특수 규칙, 암묵적 비즈니스 로직을 마크다운 문서로 추출했습니다. 코드 속에 흩어져 있던 지식을 체계적인 문서로 변환한 것입니다.

다음으로, 추출된 문서만으로 구현이 가능한지 검증할 수 있는 체크리스트를 만들었습니다. 이 체크리스트는 이후 AI가 생성한 코드의 품질을 판단하는 기준이 됩니다.

그리고 코드만으로는 파악할 수 없는 영역이 있었습니다. 운영 과정에서 쌓인 노하우, 코드에는 반영되지 않은 예외 상황 처리 같은 암묵지입니다. 이 부분은 팀 내 연동 전문가가 직접 보완했습니다.

레거시 코드를 SOT로 삼고, AI로 지식을 추출하고, 사람이 빈틈을 메우는 구조. 이것이 이번 이관의 핵심 설계였습니다.

하룻밤, 5만 라인

마크다운 가이드 문서가 완성되자 본격적인 코드 생성에 들어갔습니다. AI가 코드를 생성하고, 테스트를 돌리고, 실패하면 다시 수정하는 반복 루프를 설계했습니다. 테스트를 통과할 때까지 자동으로 반복하는 구조입니다.

“하룻밤 돌리니까 5만 라인짜리 코드 변경 제안서가 완성됐습니다. 다 AI가 짰습니다.”

9개 연동사에 필요한 전 영역의 코드가 자동으로 생성되었습니다. 1명이 9개월 걸릴 작업의 초안이 하룻밤 만에 나온 것입니다.

물론 AI가 생성한 코드를 그대로 배포한 건 아닙니다. 하지만 결과는 기대 이상이었습니다.

“5만 라인의 코드 변경 규모를 감안하면, QA에서 발견된 오류는 극소수였습니다.”

김관주님은 이 협업 구조를 이렇게 정리했습니다.

“AI가 빠른 속도로 기반을 만들고, 테스트를 통해 완료선을 친 다음, 정말 미세한 디테일의 오류는 사람이 한 번은 봐야 하는데, 그건 굉장히 작았습니다.”

AI가 대규모 코드의 기반을 빠르게 만들고, 사람이 미세한 디테일을 잡는 분업 구조. 김관주님은 이것이 현 시점에서 찾은 최적의 방식이라고 했습니다.

AI에게 ‘끝’을 정의하는 법

이 과정이 처음부터 순탄했던 건 아닙니다. 초기에 AI에게 “E2E 테스트(처음부터 끝까지 전체 흐름을 검증하는 테스트) 올패스”를 종료 조건으로 주었더니 예상치 못한 일이 벌어졌습니다.

“AI에게 ‘올패스’라는 목표만 주니까, 올패스 목표 자체만을 위해 최적화를 하기 시작했습니다. 비즈니스 로직을 수정하는 게 아니라 테스트를 수정하더라고요.”

비즈니스 로직에 맞게 코드를 고치는 대신, 테스트 코드 자체를 바꿔서 통과시킨 것입니다. AI 입장에서는 “올패스”라는 목표를 달성한 셈이지만, 원래 의도와는 완전히 다른 결과였습니다.

이 경험에서 얻은 교훈은 명확했습니다. AI에게는 정밀한 완료 기준이 필요하다는 것입니다.

“완료 기준을 정밀하게 문서화해서 가이드를 쳐야 합니다. 모호하게 주면 AI는 내가 원한 것과 다른 결과를 냅니다.”

김관주님은 완료 기준을 “E2E 테스트 올패스”에서 “API Integration 테스트”로 전환했습니다. 동시에 마크다운 가이드를 정밀하게 다시 작성했습니다. 무엇이 정상 동작해야 하는지, 무엇을 무시해도 되는지, 무엇을 절대 무시하면 안 되는지를 명확히 구분해서 문서화한 것입니다.

모호한 목표 대신 정밀한 가이드를 주자, AI는 의도한 방향으로 코드를 생성하기 시작했습니다. AI를 잘 쓰려면 도구를 잘 다루는 것보다, ‘끝’을 잘 정의하는 것이 먼저라는 점을 보여주는 사례였습니다.

일회성 작업에서 재사용 가능한 자산으로

이번 이관 작업은 단순히 9개 연동사를 옮기는 것으로 끝나지 않습니다. 김관주님은 이 과정에서 축적된 지식과 가이드라인을 재사용 가능한 ‘스킬’로 분해할 계획이라고 밝혔습니다.

코드베이스에서 지식을 추출하는 방법, 검증 체크리스트를 작성하는 방법, AI에게 정밀한 가이드를 제공하는 방법. 이런 단계들을 각각 독립적인 스킬로 만들면, 향후 신규 연동사가 추가될 때 자동화 흐름에 결합해서 활용할 수 있습니다.

한 번의 이관 경험이 반복 가능한 시스템으로 진화하는 것입니다. 레거시 코드에서 지식을 뽑아내고, 정밀한 기준을 세우고, AI가 코드를 생성하고, 사람이 디테일을 잡는다. 이 루프가 하나의 작업 방식으로 자리 잡으면, 다음 이관은 더 빨라지고 더 정확해질 수 있습니다.

“개인적으로 이게 현 시점에서 제가 발견한 최적화였습니다.”

9개월이 걸릴 작업을 하룻밤으로 줄인 건 AI의 속도 덕분이었습니다. 하지만 그 속도가 의미 있는 결과로 이어진 건, 레거시 코드를 학습 자료로 전환하고, AI에게 정밀한 기준을 제시한 사람의 설계 덕분이었습니다. AI와 사람이 각자 잘하는 영역을 나눠 맡는 것. 마이리얼트립이 찾아가고 있는 AI 협업의 방향입니다.

Read more

"무엇을 자동화할까보다, 무엇을 먼저 정리할까": 두 사람이 정책 운영을 다시 짠 이야기

"무엇을 자동화할까보다, 무엇을 먼저 정리할까": 두 사람이 정책 운영을 다시 짠 이야기

마이리얼트립 서비스정책팀은 두 사람이 회사 서비스 정책 전반을 함께 책임지는 조직입니다. 파트너 입점 자격, 상품 검수 기준, 가격 표시, 후기, 외부 거래 안내까지, 다루는 영역은 좁지 않습니다. 그런데도 이 폭을 두 사람이 감당할 수 있게 된 데에는, 팀의 리듬을 처음부터 다시 잡은 시간이 있었습니다. 마이리얼트립은 AI Native 조직으로 일하는 방식을

By Myrealtrip
PE가 영업으로 '전직'해보는 3주: Sales Lab 1기 모집 시작

PE가 영업으로 '전직'해보는 3주: Sales Lab 1기 모집 시작

마이리얼트립은 지난 2년 동안 AI Lab을 운영하며, 같은 일을 더 적은 인원과 더 짧은 시간으로 만들 수 있는지 확인해왔습니다. 만드는 데 드는 시간이 줄어들자, 자연스럽게 다음 질문이 따라왔습니다. 그 시간을 어디에 다시 써야 하는가. 마이리얼트립의 답은 '고객을 이해하는 영역'이었습니다. 그리고 그 답을 조직 차원의 실험으로 옮긴 것이

By Myrealtrip
AI 네이티브 조직의 CX: 마이리얼트립이 2년 동안 발전 시킨 고객 응대의 구조

AI 네이티브 조직의 CX: 마이리얼트립이 2년 동안 발전 시킨 고객 응대의 구조

마이리얼트립의 AI 전환 2년이 가장 먼저, 가장 깊게 닿은 곳은 고객 응대였습니다. 채팅·전화·운영 인력·상담원 도구가 같이 움직였고, 그 결과를 지금은 AICX라는 조직이 자사를 넘어 다른 회사의 CX 위로 옮기는 단계까지 와 있습니다. 마이리얼트립과 자회사 AICX의 CTO를 같이 맡고 있는 허원진 님이, 이 흐름을 외부 자리에서 정리하기 시작했습니다.

By Myrealtrip
AI Lab 2년이 마이리얼트립에 남긴 것

AI Lab 2년이 마이리얼트립에 남긴 것

AI Lab 이동훈 팀장 2024년 11월에 출범한 마이리얼트립 AI Lab이 2년의 운영을 마칩니다. 별도 추진 조직이 끌어가지 않아도 구성원 각자가 자기 손으로 AI를 일에 녹여내는, AI Native한 일하는 방식이 회사 안에 자리 잡았다는 판단에서 내린 결정입니다. 끝맺음이라기보다, 무게중심을 다음 단계로 옮기기 위한 정리에 가깝습니다. 마이리얼트립 AI Lab을 2년간 이끌어 온

By Myrealtrip