모델에게 로블록스 엔지니어처럼 생각하도록 가르쳐 AI 코드 승인률을 두 배로 높인 방법
도메인 인식 코드 인텔리전스

모두가 차세대 획기적인 AI 모델에 열광하지만, 로블록스(Roblox)에서 내부 AI 도구의 효율성을 두 배로 높인 비결은 새로운 모델이 아니었습니다. 그 비결은 우리 코드베이스의 역사에 내재되어 있었습니다. 수년간 축적된 코드와 도메인 전문가들의 검토 결과를 활용함으로써, 10,000건의 PR 세트에서 AI가 생성한 PR 제안의 승인률을 약 30%에서 60% 이상으로 끌어올렸으며, 같은 기간 동안 에이전트 기반 코드 정리 프로젝트의 평가 정확도를 90% 이상으로 높였습니다.
AI 품질 격차 해소
업계 전반에서 코딩 시간의 50~60%는 소프트웨어 유지 관리에 소요됩니다.1 로블록스도 예외는 아닙니다.
이론적으로, 명확하게 정의된 요구 사항과 제한된 문제 영역을 가진 반복적인 유지보수 작업은 AI 자동화에 안성맞춤입니다. 하지만 실제로는, 로블록스의 AI 어시스턴트가 평가 정확도와 엔지니어링 승인 측면에서 어려움을 겪었습니다.
로블록스에서 문제는 역량이 아니라 맥락입니다. 일반적인 모델은 지난 20년 동안의 로블록스 엔지니어링 역사를 겪어보지 못했습니다. 지난 3년 동안 병합된 70만 건의 풀 리퀘스트를 접해본 적도 없고, 가장 경험이 풍부한 엔지니어들이 코딩 표준을 정의하고 옹호하는 170만 건의 코드 리뷰 코멘트에서 배운 바도 없습니다.
이러한 역사를 무시하는 AI 어시스턴트는 세계 최고 수준의 엔지니어들의 신뢰를 얻지 못합니다. 로블록스 엔지니어의 절반이 AI 기반 어시스턴트를 도입했음에도 불구하고, AI가 생성한 제안 중 실제 검토 후 채택되는 비율은 약 20%에 불과합니다. 분기별 엔지니어링 생산성 설문조사 결과도 이러한 현실을 반영하고 있습니다. 엔지니어들은 AI가 생산성에 미치는 영향에 대해 5점 만점에 4.02점을 주었지만, AI 코드 품질에 대한 신뢰도는 5점 만점에 3.09점에 그쳤습니다. 요컨대, AI는 도움이 되지만, 특히 레거시 C++ 및 더 복잡한 코드 영역에서는 신뢰도가 여전히 제한적입니다.
이러한 맥락의 격차를 해소하기 위해, 우리는 로블록스 자체의 엔지니어링 이력을 기반으로 구축되고, 전문가의 모범 사례와 부합하며, 엄격한 평가를 통해 검증된 에이전트형 코드 인텔리전스 플랫폼에 투자했습니다. 이 코드 인텔리전스 플랫폼은 단순히 코드 제안을 생성하는 데 그치지 않고, 로블록스 엔지니어의 조직적 깊이를 바탕으로 반복적으로 개선되도록 설계되었습니다.
Roblox 엔지니어링 경험의 정수에서 배우다
Roblox의 엔지니어링 코퍼스는 거의 20년에 걸친 커밋, 설계 문서, 프로덕션 텔레메트리 데이터로 구성되어 있으며, 이는 우리 시스템이 어떻게 진화해 왔고 엔지니어들이 어려운 문제를 어떻게 해결해 왔는지를 포착한 독보적으로 풍부한 데이터셋입니다.
이 코드 인텔리전스 플랫폼은 해당 데이터를 구조화된 지식 그래프로 변환하는 것을 목표로 하며, 이는 상당한 엔지니어링 과제입니다. 방대한 다중 언어 환경에서 코드는 단순한 텍스트 파일이 아닙니다. 이는 빌드 타겟, C++ 템플릿 인스턴스화, 동적 Lua 종속성으로 이루어진 복잡한 네트워크입니다. 단순히 텍스트를 파싱하는 것만으로는 부족하며, 시스템은 우리 고유의 아키텍처에 특화된 코드베이스 자체에 내재된 심층적인 의미적 관계를 이해해야 합니다.
또 다른 과제는 추적 및 시간적 정렬입니다. 상호 연결된 시스템 전반에 걸쳐 추론을 수행하려면, 에이전트 기반 시스템은 코드베이스가 지속적으로 진화하는 상황에서도 정적 코드 저장소를 노이즈가 많은 런타임 텔레메트리 데이터와 연결하고, 수백만 개의 프로덕션 신호를 이를 생성한 코드의 정확한 버전으로 다시 매핑해야 합니다.

이를 해결하기 위해, 당사의 전략은 버전 관리, 빌드 그래프, 런타임 텔레메트리 정보를 구문, 의미, 관계를 보존하면서 하이브리드 기호-벡터 표현으로 통합하는 것입니다. 이를 통해 코드 인텔리전스 플랫폼은 코드를 고참 엔지니어들이 이해하는 방식, 즉 고립된 텍스트 파일이 아닌 설계 근거, 상충 관계, 성능 데이터에 의해 형성된 상호 연결된 시스템으로 이해할 수 있게 됩니다.
모범 사례 정렬을 통한 전문가 신호 추출
진정한 전문성은 패턴, 리뷰 코멘트, 커밋 기록, 그리고 미묘한 코드 관용구 속에 숨어 있습니다. 코드 인텔리전스는 모범 사례 정렬 엔진을 통해 이러한 암묵적인 지혜를 표면화하며, 이를 통해 엔지니어들은 이상적인 구현 사례나 리뷰 근거를 담은 '골드' 사례를 선별할 수 있습니다.
이전에는 숙련된 엔지니어가 매주 몇 시간씩 PR을 검토하며, 고주파 루프 내의 차단성 FetchData 호출 사용을 반복적으로 지적하곤 했습니다. 이는 의미론적으로는 올바르게 보이지만 Roblox 규모의 환경에서는 심각한 지연 시간을 유발하는 패턴입니다. 만약 해당 전문가가 출장 중이거나 오류를 놓친다면, 그들의 지식이 적용되지 않을 수 있으며, 안티패턴이 프로덕션에 유입되어 커뮤니티에 서비스 중단을 초래할 수도 있습니다.
정렬 엔진을 사용하면 해당 엔지니어는 자신의 판단을 자연어 예시로 코딩할 수 있습니다. 이는 코드 패턴(“무엇”)과 추론(“왜”)을 결합한 구조화된 정의입니다. 이제 시스템은 차단 호출을 자동으로 감지하여 표시하고, 지연 시간 위험을 설명하며, 비동기 모드의 모범 사례에 대한 내부 문서로 직접 연결합니다:
고주파 루프 내부의 블로킹은 지연 시간 증가와 스레드 고갈을 초래합니다. 비동기 태스크 내에서 `FetchData` 호출이 이루어지면 작성자에게 지연 시간과 스레드 고갈에 대해 경고하십시오. 태스크가 이미 대기(await)된 상태라면 `FetchData`는 문제없습니다. 비동기 모드에 대한 모범 사례(internal_guidance/async)로 직접 연결되는 링크를 제공하십시오. |
이는 엔지니어가 수년간의 경험을 통해 힘들게 쌓아온 지식을 효과적으로 시스템에 반영한 것입니다. 시스템은 일회성 리뷰 코멘트를 영구적이고 자동화된 안전 장치로 전환합니다.
“이 정렬 엔진이 강력한 이유는 단순히 코드 품질을 높여주기 때문만이 아닙니다. 멘토링의 규모를 확장해 주기 때문이죠. 우리는 가장 노련한 전문가들의 전문 지식과 직관을 플랫폼 자체에 담아둡니다. 마치 매일 하루 종일 로블록스 분야의 시니어 전문가와 페어 프로그래밍을 하는 것과 같습니다.” —톰 크니치(Tom Knych), 수석 기술 이사
하지만 우리 전문가들도 처리해야 할 업무가 산더미처럼 쌓여 있어, 그들에게 핵심 통찰력을 모두 떠올려 적어내라고 요청하는 것은 기껏해야 시간만 낭비하고 정보 손실만 초래하는 과정일 뿐입니다. 그렇다면, 그들이 Roblox에서 근무하는 동안 최고의 조언을 남길 수 있도록 어떻게 도울 수 있을까요?
그 해답은 이미 그곳에 있습니다. 전문가들의 꼼꼼한 코드 리뷰 코멘트에 담겨 있으며, 프로덕션에 반영되는 모든 PR에 기록되어 있습니다:

우리는 과거 PR(Pull Request) 댓글을 파이프라인을 통해 처리하여, Roblox 경험에서 가장 가치 있는 주제를 정제하고 추출합니다. 초기에는 칭찬이나 오타 수정과 같이 실행 가능한 조치가 필요 없는 댓글로 인해 데이터에 잡음이 섞여 있으며, 가치 있는 피드백은 종종 맥락에 크게 의존하는 약어로 작성되어 있습니다. 예를 들어, "여기에 새로운 패턴을 사용하세요"와 같은 메모는 특정 파일과 diff를 이해하지 못하면 의미가 없습니다. 시스템은 이러한 구체적인 상호작용을 재사용 가능하고 일반화할 수 있는 규칙으로 변환해야 합니다.
이를 해결하기 위해, 우리는 사람의 개입 없이 수천 건의 PR에서 반복되는 주제를 탐지하는 다단계 알고리즘을 활용합니다. 이 시스템은 과거 댓글을 벡터 공간에 임베딩하고, 탐욕적 클러스터링을 통해 관련 피드백의 군집을 찾아내며, LLM(대규모 언어 모델) 기반 정제 과정을 적용하여 이를 고가치 패턴으로 통합합니다.
그 결과, 등장 빈도와 다양한 검토자가 인용한 정도에 따라 우선순위가 매겨진 후보 모범 사례(또는 학습 내용) 목록이 생성되며, 여기에는 원본 코멘트에 대한 인용 정보도 포함됩니다. 이후 도메인 전문가들이 후보 목록을 검토하고, 필요한 경우 수정한 뒤, 어떤 항목을 핵심 모범 사례로 지식 기반에 반영할지 결정합니다. 이 프로세스의 초기 시연 후, 리포지토리 관리자들은 자신이 중요하게 여기는 주제들이 핵심 가이드라인으로 부상하는 것을 보고 매우 기뻐했으며, 즉시 자신의 리포지토리를 분석 대상에 등록하기를 원했습니다.

마지막 단계는 정렬 에이전트로, 모든 변경 사항을 표준 지식 기반과 대조하여 검토함으로써 인간 엔지니어와 AI 코딩 에이전트 모두를 지원합니다. 이 유연한 평가 방식은 코딩 단계, 병합 단계는 물론, 지식 기반이 확장됨에 따라 Roblox 코드베이스를 자율적으로 정제하는 지속적 개선 에이전트를 통해 소프트웨어 개발 라이프사이클 전반에 걸쳐 적용될 수 있습니다.
이러한 상황 기반 학습을 통해 AI의 행동을 로블록스 표준에 부합하도록 정립한 결과, 한 AI 코딩 에이전트의 골든 평가 데이터셋 통과율이 84%에서 100%로 급증했습니다. 우리는 단순히 로블록스 AI에게 코딩 방법을 가르치는 것이 아니라, 로블록스 엔지니어들이 어떻게 생각하는지를 AI에게 가르치고 있는 것입니다.
부정적 신호로부터 배우기
모범 사례 정렬을 통해 코드베이스 품질의 기준선이 크게 향상되었지만, 우리의 궁극적인 목표는 AI가 제안한 코드의 첫 번째 버전이 가장 경험이 풍부한 엔지니어의 작업만큼 신뢰받을 수 있는 수준에 도달하는 것입니다. 그렇기 때문에 우리는 거부된 모든 AI 제안, 실패한 리팩토링, 또는 회귀를 유발한 병합을 시스템에 다시 피드백할 수 있는 고가치 신호로 활용합니다. 이를 통해 에이전트가 지속적으로 개선하고 실수로부터 학습할 수 있는 파이프라인이 구축됩니다.
부정적인 결과는 도메인 전문가들이 상세한 추론, 사고의 흐름, 그리고 실패와 관련된 추가적인 맥락을 바탕으로 필터링하고 라벨링할 수 있습니다. 이 데이터는 이후 의미론적으로 임베딩되고 검색을 위해 색인화됩니다. 코드 인텔리전스 플랫폼이 새로운 출력을 제안할 때, 이 데이터를 통해 의미론적 검색을 수행하여 과거의 실수와 검토자의 피드백을 상기함으로써 같은 실수가 반복되지 않도록 합니다.
이러한 폐쇄형 피드백 루프는 각 코드 리뷰를 구조화된 학습 데이터로 전환하여, 적대적 학습 및 비판 기반 훈련을 통해 에이전트의 향후 행동을 지속적으로 개선합니다.
견고한 평가 프레임워크 구축
신뢰는 측정에서 시작되는 신뢰할 수 있고 예측 가능한 행동을 통해 구축됩니다. 당사는 에이전트의 성과를 시간 경과에 따라 추적하기 위해 전용 평가 시스템을 설계했습니다.

이 프레임워크에는 다음이 포함됩니다:
- 작업 수준 벤치마크: 리팩토링, 테스트, 버그 수정 작업 등 수천 건의 Roblox 엔지니어링 활동에 걸친 정밀도 및 재현율.
- 시뮬레이션 하네스: 재현 가능한 점수 산정을 위해 결정론적 결과를 가진 합성 PR.
- 휴먼-인-더-루프 패널: AI 산출물과 골드 스탠다드 구현 간의 전문가 비교.
- 실행 프레임워크: 에이전트 개선 사항을 병합할 때 관련 평가가 병렬화되어 병합 전 지속적 통합(CI) 스위트의 일부로 실행되므로, 엔지니어들은 자신의 변경 사항에 대해 높은 확신을 가질 수 있습니다.
- 종단적 지표: 릴리스 전반에 걸쳐 추적되는 병합 후 회귀, 롤백 빈도 및 지연 시간 변화.
- 광범위한 가시성: 에이전트 활동을 자동으로 추적 및 시각화하여 에이전트를 Roblox의 나머지 부분과 연계하고, 이를 온라인 및 오프라인 평가에 원활하게 반영합니다.
이 시스템은 시간 경과에 따른 성능 변화를 정확하게 추적하는 에이전트 품질 점수를 산출하여, 에이전트 개정판과 모델 버전 간 표준화된 비교를 가능하게 합니다. 모범 사례 정렬 및 전체 평가 스위트를 도입한 이후, 10,000개의 PR 세트에서 한 Roblox 코드 인텔리전스 에이전트의 PR 제안 수용률이 약 30%에서 60% 이상으로 향상되었으며, 이는 신뢰할 수 있고 도메인에 부합하는 성능의 초기 징후입니다. 동일한 과정을 통해, 당사의 기능 플래그 정리 에이전트는 전체 정확도를 46%에서 90% 이상으로 높였습니다.
앞으로의 방향: 모든 도구에 전문가의 판단을 접목하기
우리는 MCP 및 도구 래퍼 계층을 구축하고, 코드 인텔리전스 플랫폼을 특정 작업 수행에서 로블록스 코드베이스의 건전성을 유지하는 시스템으로 발전시킴으로써 기존 내부 시스템의 유용성을 높이고 있습니다.
우리는 런타임 컨텍스트나 전문가의 판단과 같이 과거에는 확장하기 어려웠던 지식이 모든 도구와 워크플로우에 자연스럽게 녹아드는 엔지니어링의 미래를 그립니다. 코드 인텔리전스, 모범 사례 정렬, 가시성이 결합되면 우리는 더 나은 품질, 더 빠른 배포, 그리고 더 건강하고 진화하는 코드베이스라는 지속적인 이점을 얻을 수 있습니다. 장기적인 목표는 모든 엔지니어에게 조직의 기억력을, 모든 팀에게 신속한 출시를 위한 자신감을, 그리고 모든 엔지니어에게 유지보수가 아닌 혁신에 집중할 수 있는 자유를 제공하는 것입니다.


