로그인 | 회원가입
Google 선호매체 추가 발행일 2026.11.10 (화)
소프트웨어·클라우드

"AI의 완료는 믿지 않는다"…멜론, 200개 페이지 자동 전환한 '하네스' 설계

AI의 자체 완료 선언 대신 3단계 검증 게이트와 오케스트레이터를 도입해 멜론의 웹 페이지 마이그레이션을 자동화한 카카오엔터테인먼트의 기술 사례를 소개한다.

"AI의 완료는 믿지 않는다"…멜론, 200개 페이지 자동 전환한 '하네스' 설계
검은 배경의 기술 도식과 안경을 쓴 남성이 화면에 나타난 모습. (사진=kakao tech 유튜브 영상 캡처)

인공지능(AI)이 "작업을 완료했습니다"라고 선언할 때, 개발자는 그 말을 곧이곧대로 믿을 수 있을까. 카카오엔터테인먼트가 멜론의 수백 개 JSP(Java Server Pages·서버 측에서 웹 페이지를 생성하는 기술) 웹뷰 페이지를 현대적인 웹 환경으로 전환하는 과정에서 마주한 핵심 질문이다.

카카오엔터테인먼트의 최용열 개발자는 최근 'kakao tech' 채널을 통해 멜론의 기존 JSP 페이지 200여 개를 아스트로(Astro)와 프리액트(Preact) 기반의 코드 베이스로 옮긴 경험을 공유했다. 이번 프로젝트의 핵심은 AI에게 단순히 코드를 짜라고 시키는 것이 아니라, AI가 스스로 계획하고 실행하며 결과물을 엄격하게 검증하는 '에이전트 하네스(Agent Harness)' 시스템을 구축한 데 있다.

AI의 '자체 완료'를 거부하는 3단계 검증 게이트

기존의 방식은 개발자가 AI에게 JSP 코드와 문서를 제공하면 AI가 코드를 작성하는 형태였다. 하지만 최용열 개발자는 AI가 판단하는 '완료'와 인간이 기대하는 '완료' 사이에는 간극이 존재한다고 지적했다. AI가 코드를 작성한 후 스스로 완료했다고 판단하더라도, 실제 검수 과정에서는 요구사항이 누락되는 경우가 빈번했기 때문이다.

이를 해결하기 위해 카카오엔터테인먼트는 AI의 답변을 믿는 대신, 세 개의 결정적 게이트(Gate)를 통과해야만 작업이 끝났다고 인정하는 구조를 설계했다. 검증 기준은 세 가지다. 첫째는 기능이 제대로 동작하는지 확인하는 '기능 게이트', 둘째는 HTML 구조가 원본과 동일한지 확인하는 '구조 게이트', 셋째는 시각적으로 원본과 똑같은지 확인하는 '시각 게이트'다.

평가자는 실행자가 제안한 검증 기준을 교차 검토하며, 이 세 가지 관문을 모두 통과해야만 오케스트레이터(Orchestrator·전체 실행 흐름을 제어하는 주체)가 작업을 종료한다. 예를 들어, 제목의 높이(Line-height)가 원본과 단 6픽셀만 차이가 나더라도 시각 게이트를 통과하지 못하면 시스템은 작업을 끝내지 않고 다시 실행 단계로 명령을 내린다.

계획·실행·평가 분리한 '에이전틱 루프'와 오케스트레이터

단순히 순차적으로 명령을 내리는 파이프라인 방식은 새로운 패턴을 만날 때마다 사람이 개입해야 하는 한계가 있었다. 카카오엔터테인먼트는 이를 극복하기 위해 '에이전틱 루프(Agentic Loop)' 개념을 도입했다. 이는 결과에 따라 다음 실행 단계가 유연하게 결정되는 반복 구조를 의미한다.

시스템은 역할을 세 가지로 분리했다. 무엇을 만들지 결정하는 '계획자', 계획대로 구현하는 '실행자', 기준 충족 여부를 판정하는 '평가자'다. 여기서 주목할 점은 이들 사이의 의사결정을 담당하는 '오케스트레이터'의 존재다. 오케스트레이터는 각 역할이 남긴 기록을 바탕으로, 실패 원인이 계획의 오류인지 구현의 오류인지 판단해 다음 실행할 역할을 스스로 결정한다.

또한, 모든 역할은 직접 통신하는 대신 '파일'을 매개로 소통한다. 요구사항, 작업 기준, 실행 결과 등을 파일에 기록하고 이를 모든 역할이 공유하는 '싱글 소스 오브 트루스(Single Source of Truth·단일 진실 공급원)'로 삼았다. 이를 통해 작업 중간에 세션이 끊기더라도 기록을 바탕으로 재개가 가능하며, 작업의 전 과정을 추적할 수 있는 투명성을 확보했다.

사람의 개입을 '스킬'로 녹여낸 플러거블 구조

마이그레이션 과정에서 멜론 특유의 댓글 플러그인이나 페이지마다 다른 라이브러리 버전 같은 변수가 발생했을 때, 시스템은 '플러거블(Pluggable·필요한 기능을 끼워 넣을 수 있는)' 구조를 통해 대응했다. 모든 기능을 한꺼번에 AI에게 전달하면 컨텍스트(Context·AI가 이해해야 할 정보의 범위)가 너무 커져 성능이 저하되기 때문이다. 대신 페이지에 필요한 특정 '스킬'만 선택적으로 로드하여 효율을 높였다.

만약 AI가 정해진 기준은 모두 통과했음에도 불구하고, 인간이 보기에 누락된 요구사항이 있다면 어떻게 대응할까. 최용열 개발자는 '디렉티브(Directive) 스킬'을 활용한다. 사람이 "이 부분을 고쳐라"라고 직접 지시하는 대신, "이 요구사항을 검증 기준에 반영하라"고 명령하는 방식이다. 이렇게 하면 사람이 보완한 요구사항이 다시 검증 기준(Contract)에 포함되어, 다음 반복 실행에서 AI가 이를 반드시 충족했는지 확인하게 된다.

이러한 구조를 통해 멜론 개발팀은 AI가 스스로 오류를 수정하고, 인간은 AI의 판단 기준을 정교화하는 데 집중하며 수백 개의 페이지를 안정적으로 현대화할 수 있었다.

#카카오엔터테인먼트 #멜론 #AI 에이전트 #마이그레이션 #LLM
서
서도연
IT신문 · 소프트웨어·클라우드 담당
기자의 다른 기사 ›
저작권자 ⓒ IT신문 무단전재 및 재배포, AI학습 및 활용 금지

0댓글

첫 댓글을 남겨보세요.