서버 코드 자동 생성 툴: Sherpa는 왜 완전 자동화를 선택하지 않았을까

AI 챔피언 9번째 이야기 — T&A실 Experience팀 김관주님

Share
서버 코드 자동 생성 툴: Sherpa는 왜 완전 자동화를 선택하지 않았을까

AI 챔피언 9번째 이야기 — T&A실 Experience팀 김관주님

마이리얼트립 T&A실의 제품을 책임지는 Experience팀 김관주님은 스스로를 “처음부터 개발자가 되겠다고 마음먹었던 사람은 아니다”라고 말합니다. 커리어는 우연처럼 시작됐고, 목표는 일을 하면서 생겼다고 하면서요.

대신 분명한 기준 하나는 있었습니다. 일을 잘 끝내고, 그 결과로 신뢰를 얻는 것. 관주님에게 개발은 그 과정이 가장 또렷하게 드러나는 일이었습니다.

그래서인지 관주님은 자동화에 유독 예민했습니다. AI가 코드를 잘 만들어주는 건 이미 당연한 시대였지만, “그 결과를 정말 믿어도 되는가”라는 질문에는 쉽게 넘어가지 않았습니다.

Sherpa 프로젝트를 바라보는 관점도 비슷했습니다. 코드는 자동으로 생성되고 있었지만, 사람은 여전히 결과를 다시 확인하고 있었습니다.

관주님은 이 상황이 마음에 걸렸다고 합니다. 자동화가 늘어날수록, 사람이 더 바빠지고 있다는 현실.

이 프로젝트는 그 불편함에서 시작됐습니다. 자동화는 분명히 되고 있는데, 왜 신뢰는 따라오지 않는지에 대한 질문이었습니다.

병목은 코드가 아닌 마크다운이었다

Sherpa는 연동사 API 문서를 기반으로 서버 코드를 자동 생성하는 도구입니다.

구조만 보면 단순합니다. 문서를 마크다운으로 정리하고, 그 마크다운을 기반으로 코드를 생성합니다.

문제는 이 중간 단계였습니다. 바로 마크다운이었습니다.

원본 문서 대비 필드가 누락되거나, 옵션 설명이 빠지는 일이 반복됐습니다. 이런 누락은 테스트로도 쉽게 잡히지 않았습니다.

결과적으로 만들어지는 것은 겉보기에는 정상처럼 보이지만, 운영에서는 위험한 코드였습니다.

관주님은 이 문제를 “AI가 아직 부족해서”라고 보지 않았습니다. 마크다운을 만드는 과정 자체가 검증되지 않은 채 자동화되고 있다는 점이 더 근본적인 문제라고 봤습니다.

수집 로직만 고쳐서 해결될 문제는 아니었다

초기에는 문서를 내부에서 검증 가능한 형태로 맞추기 위해, 여러 문서 유형을 동일한 구조로 재현하려는 시도가 있었습니다. 하지만 연동사가 늘어날수록 문서 구조와 표현 방식의 편차가 커졌고, 사소한 UI 변경만으로도 이 방식이 쉽게 깨진다는 한계가 드러났습니다.

이 시점에서 관주님은 문제를 이렇게 정리했습니다. 문제는 결과의 완성도가 아니라, 특정 표현 방식에 의존하고 있다는 점이었습니다.

PDF를 AI에게 맡기는 선택이 위험했던 이유

다음 시도는 더 과감했습니다. PDF 문서를 AI로 바로 마크다운으로 변환하는 방식이었습니다. 속도는 빨랐지만, 결과를 신뢰할 수는 없었습니다.

어디서 누락이 발생했는지 알 수 없었고, 표 구조가 왜 깨졌는지도 설명할 수 없었습니다. 무엇보다 문제였던 건 원본과 결과를 비교할 기준이 없다는 점이었습니다.

이 경험을 통해 한 가지 결론이 분명해졌습니다.

원본을 기준으로 검증할 수 없는 자동화는 운영에서 사용하기 어렵다는 판단이었습니다.

HTML을 기준 진리로 삼다

전환점은 “무엇을 기준으로 삼을 것인가”라는 질문에서 나왔습니다. AI Lab과의 협업 과정에서 나온 제안은 단순했습니다. 문서의 형태가 아니라, 모든 문서를 동일한 HTML 구조로 먼저 재현하자는 것이었습니다.

PDF든 SPA든, 어떤 형태의 문서든 완전한 HTML로만 확보할 수 있다면 그 HTML을 기준 진리(source of truth)로 삼을 수 있습니다.

이 선택의 핵심은 편의성이 아니었습니다. 검증이 가능해진다는 점이었습니다.

변환 파이프라인을 나눈 이유

HTML이 기준이 된 이후에도, 변환 방식은 신중하게 설계됐습니다. HTML을 한 번에 마크다운으로 변환하는 방식은 선택되지 않았습니다. 관주님이 중요하게 본 지점은 분명했습니다.

LLM 컨텍스트에는 한계가 있고, 문제가 발생했을 때 어디서 실패했는지 알 수 있어야 했습니다.

그래서 파이프라인은 의도적으로 나뉘었습니다. HTML을 분류하는 단계, API 단위로 마크다운을 생성하는 단계, 그리고 각 마크다운의 위치 정보를 기록하는 인덱스 생성 단계였습니다.

이 구조 덕분에 자동화는 처음으로 디버깅 가능하고 재실행 가능한 형태가 됐습니다.

이 구조가 만들어낸 가장 큰 변화는, 마크다운이 더 이상 문서의 끝이 아니라는 점이었습니다.

마크다운은 코드의 시작점이 된다

검증된 마크다운을 입력으로 삼아, Sherpa는 실제 연동에 사용되는 API Client 코드를 생성합니다.

연동을 진행했던 SwissActivities Leisure-Link API 문서를 기준으로 생성된 코드는 별도의 손작업 없이, 기존 프로젝트의 core / infra 레이어 구조 안으로 자연스럽게 들어갔습니다.

문서에 정의된 범위는 인터페이스와 DTO, WebClient 구현과 예외 처리, 설정 파일까지 하나의 코드 구조로 이어졌습니다.

중요한 건, 이 코드가 “생성됐다”는 사실이 아니라 기존 프로젝트에 그대로 써도 될 정도의 품질로 들어왔다는 점이었습니다.

검증 뷰어가 바꾼 사람의 역할

마지막으로 만들어진 것은 HTML과 마크다운을 동시에 보여주는 검증 뷰어였습니다. 같은 위치를 하이라이팅해 누락 여부를 빠르게 확인할 수 있도록 했습니다.

이제 사람은 문서를 처음부터 끝까지 읽지 않아도 됩니다.

사람의 역할은 바뀌었습니다. 모든 것을 직접 확인하는 검수자가 아니라, 자동화를 신뢰해도 되는지 판단하는 결정자가 됐습니다.

Sherpa - 도구를 넘어 인프라로

이 구조 이후 Sherpa의 성격은 분명히 달라졌습니다.

단순히 코드를 생성하는 도구가 아니라, 연동 자동화 전반의 정확성과 재사용성을 떠받치는 기준 구조가 됐습니다.

자동화를 더 밀어붙였기 때문이 아닙니다. 자동화를 믿을 수 있는 조건을 먼저 만들었기 때문입니다.

AI는 이미 코드를 잘 만들어냅니다. 하지만 그 결과를 어디까지 믿어도 되는지 결정하는 일은 여전히 구조를 이해하는 사람이 해야 합니다.

이 프로젝트는 AI를 더 쓰기 위한 시도가 아니었습니다. 관주님이 그 전에 AI를 활용 안 하던 개발자도 아니었습니다.

결국, AI를 쓰기 전에 무엇을 먼저 설계해야 하는지에 대한 고민이었습니다.

Read more

딱 내가 바라던 여행, LAFC 홈구장 곳곳에서의 특별한 경험

딱 내가 바라던 여행, LAFC 홈구장 곳곳에서의 특별한 경험

경기 시작 전 아직은 조용한 경기장. 관중석이 채워지기 전, 선수들이 그라운드로 나와 몸을 풉니다. 누군가는 그 모습을 관중석이 아니라 바로 앞에서 봤습니다. 선수들이 걸어 나오는 통로 앞, 숨소리가 들릴 만큼 가까운 자리였습니다. 몇 시간 뒤 함성으로 채워진 경기장 전광판에는 이들을 맞는 문구가 떴고, 경기가 끝난 뒤에는 선수에게 직접 사인을 받았습니다.

By 마이리얼트립
눈팅만 하던 여행자들을 위한 설계: '동행매칭' 개편기

눈팅만 하던 여행자들을 위한 설계: '동행매칭' 개편기

마이리얼트립 앱 내 커뮤니티의 '동행매칭'은 같은 시기에 같은 도시로 떠나는 여행자를 서로 연결하는 서비스입니다. 지난 넉 달 동안 이 서비스를 커뮤니티의 중심으로 옮기고, 참여하는 방식을 다시 설계했습니다. 기존 커뮤니티에는 여러 주제의 게시판이 있었고, 작업은 무엇을 남길지 고르는 일에서 시작했습니다. 동행을 찾는 관심은 충분했습니다. 다만 글을 여러 개

By 마이리얼트립
한 곳에서, 어디서나, 더 잘 보이게: 마이리얼트립이 파트너에게 새로 연 세 가지

한 곳에서, 어디서나, 더 잘 보이게: 마이리얼트립이 파트너에게 새로 연 세 가지

마이리얼트립에서 떠나는 여행의 대부분은 파트너의 손에서 시작됩니다. 현지에서 투어를 진행하고, 숙소를 운영하고, 여행자의 문의에 답하는 일을 파트너가 함께합니다. 마이리얼트립은 그 여행이 여행자에게 잘 닿게 하는 일을 맡습니다. 어느 한쪽만 잘해서는 좋은 여행이 되지 않습니다. 마이리얼트립이 파트너의 운영을 돕는 일에 오래 공을 들여 온 이유입니다. 파트너의 하루가 수월해지는 만큼 여행자의 여행도

By 마이리얼트립
여행 앱에서 웬 뷰티요? 나를 돌보는 시간까지 골라 드립니다

여행 앱에서 웬 뷰티요? 나를 돌보는 시간까지 골라 드립니다

뷰티·웰니스. 여행 앱에서 이 단어를 마주하면 잠깐 갸웃하게 됩니다. 항공권과 숙소, 투어를 예약하던 곳에서 웬 마사지와 스파일까요. 그런데 따지고 보면 둘은 생각보다 가까운 사이입니다. 여행을 준비할 때 우리는 컨디션을 챙기고, 사진 속 나를 신경 쓰고, 다녀와서는 쌓인 피로를 풀고 싶어 합니다. 여행이 나를 위한 시간이라면, 나를 돌보는 관리 역시

By 마이리얼트립