윤영헌 profile image

윤영헌

🖥️ developer

Dongguk Univ · scsc & biz

Open Labs · 2025 ~

안녕하세요! 개발자 윤영헌입니다. 융합소프트웨어와 경영학을 전공했습니다. 비즈니스, 기술적 관점에서 변화에 유연한 소프트웨어 설계를 고민합니다. e-mail: iddyoon@gmail.com

코드 리뷰 서비스

🪄 프로젝트 소개

로컬 저장소의 커밋 기록과 diff 정보를 수집해, AI 기반 코드 리뷰를 제공하는 서비스예요.
단순히 리뷰를 자동화하는 것을 넘어, 팀의 개발 철학과 코드 컨벤션을 리뷰 지침으로 관리해 사람 리뷰 이전에 코드 품질을 사전 점검할 수 있도록 설계했어요.

해당 프로젝트는 로컬 환경에서 실행할 수 있도록 패키징했어요. 클라우드 환경에 올려두고 사용하는 서비스가 아니라, 개발자가 코드 커밋 후 PR 또는 MR을 올리기 전에 로컬 Git 이력을 기준으로 먼저 점검하는 용도로 만들었어요. 또한 사용자가 편하게 실행할 수 있도록 fe + be + db 구성을 docker compose로 묶어, 필요한 애플리케이션을 한 번에 실행할 수 있게 구성했어요.

로컬 Git 이력을 수집한 핵심 이유는, 개발자가 PR을 올리기 전에 팀 컨벤션 누락이나 기본적인 실수를 먼저 발견하고 수정하도록 돕기 위함이에요.
즉, 사전 리뷰 단계에서 컨벤션과 기초 품질 이슈를 최대한 정리해 두고 실제 PR 리뷰에서는 설계, 로직, 아키텍처 같은 본질적인 논의에 집중할 수 있도록 하는 데 목적이 있어요.

시스템은 크게 두 부분으로 나뉘어요.

  • git_module이 로컬 레포지토리에서 커밋, 메타데이터, 파일별 diff를 수집해 서버로 전달해요.
  • Review Web App은 Repository -> Branch -> Commit -> File 계층으로 커밋 데이터를 탐색하고, 파일 단위 diff를 기준으로 LLM 코드 리뷰를 생성하고 저장해요.

또한 단발성 리뷰 생성에 그치지 않고, 사용자가 직접 리뷰 지침을 생성하고 관리할 수 있게 했어요. 생성된 리뷰 결과를 바탕으로 LLM과 대화하며 내용을 보완하거나 확장할 수 있도록도 구성했어요.

다만 구현 시점에는 이미 매우 뛰어난 Agent와 Agentic AI 도구가 시장에 빠르게 등장하고 있었기 때문에, 해당 프로젝트는 실제 서비스로 이어지지 않고 폐기되었어요. 그럼에도 불구하고 코드 리뷰 자동화의 구조와 활용 방식을 직접 설계해본 의미 있는 개인 사이드 프로젝트였어요.


🛠️ 기술 스택

구분기술
Backendtypescript, Next JS
Frontendtypescript, Next JS, prisma
InfraDocker, Docker-Compose, PostgreSQL

✨ 주요 기능

  • CLI에서 로컬 커밋, 메타데이터, 파일별 diff 정보를 수집하고 서버로 전송해요.
  • Repository -> Branch -> Commit -> File 계층으로 커밋 이력을 탐색할 수 있어요.
  • 파일별 diff 코드를 조회할 수 있어요.
  • 저장된 리뷰 지침을 바탕으로 파일 단위 AI 코드 리뷰를 생성하고 결과를 저장해요.
  • 지침을 생성, 수정, 삭제하며 다양한 리뷰 관점을 관리할 수 있어요.
  • LLM과 대화하며 리뷰 결과를 보완하고 확장할 수 있어요.

💼 담당한 일

이 프로젝트에서는 CLI와 애플리케이션 서버 흐름을 중심으로, 코드 리뷰 자동화 파이프라인 전반을 설계하고 구현했어요.

  • git_module에서 로컬 commit과 파일 단위 diff 정보를 수집하는 흐름을 구현했어요.
  • CLI에서 애플리케이션 서버로 코드 변경 정보와 메타데이터를 전송하는 구조를 만들었어요.
  • 서버에서 레포지토리/브랜치/커밋/파일 계층으로 커밋 정보를 저장하고 조회할 수 있도록 설계했어요.
  • 저장된 리뷰 지침을 기반으로 AI 코드 리뷰를 생성하고 결과를 저장하는 흐름을 구현했어요.
  • 다양한 관점의 점검이 가능하도록 지침 관리 기능을 설계했어요.
  • 사용자가 로컬에서 쉽게 실행할 수 있도록 fe + be + db 구성을 docker compose로 패키징했어요.
  • 리뷰 결과를 LLM과의 추가 대화로 보완·확장할 수 있는 구조를 함께 구성했어요.

🧩 해결했던 과제

이 프로젝트를 진행하면서 가장 중요했던 과제는 리뷰 자동화 자체보다 팀 기준을 일관되게 반영하는 시스템을 만드는 것이었어요.

  • CLI -> Server -> DB -> AI 흐름에서 코드 변경 맥락이 끊기지 않도록 데이터 구조를 설계했어요.
  • 단순 모델 호출이 아니라 팀 컨벤션과 리뷰 철학을 지침으로 관리하는 방식으로 정리했어요.
  • PR 이전 단계에서 반복적인 컨벤션 피드백을 먼저 줄여 실제 리뷰가 더 본질적인 논의에 집중되도록 설계했어요.
  • 리뷰 결과가 일회성으로 끝나지 않고, LLM과의 후속 대화를 통해 점진적으로 보완될 수 있는 흐름을 고민했어요.
  • 로컬 환경에서 바로 실행 가능한 구조로 패키징해, 개발자의 실제 작업 흐름 안에서 자연스럽게 사용할 수 있도록 했어요.

📝 회고

이 프로젝트를 통해 코드 리뷰의 본질은 자동화 자체보다, 팀 기준을 얼마나 구조적으로 반영할 수 있느냐에 있다는 점을 크게 느꼈어요.

특히 "좋은 리뷰"는 모델 성능만으로 결정되지 않고, 지침 설계와 데이터 관리 방식, 그리고 리뷰를 대화형으로 확장할 수 있는 흐름 설계에 크게 좌우된다는 점이 가장 인상 깊었어요.
결과적으로 리뷰 품질을 높이려면 AI 이전에 먼저 맥락과 기준을 잘 설계해야 한다는 점을 분명히 배웠어요.