이전에 코드 리뷰라는 주제로 포스팅을 한 적이 있었는데요,
저희는 실제로 두 명의 개발자가 서로 작성한 코드에 대해 리뷰를 주고받고 있습니다.
단순히 오류를 지적하는 것이 아니라, 작성자가 놓친 부분을 발견하거나 더 나은 코딩 방식을 제안하기 위한 목적이에요.
이를 통해 코드의 품질을 높이고, 서로의 성장까지 도모하기 위함이죠.
하지만 두 명만으로는 관점이 제한적일 수밖에 없고, 때로는 중요한 부분을 놓칠 수도 있습니다.
그래서 "AI가 우리가 놓친 부분까지 자동으로 리뷰해준다면 어떨까?" 라는 아이디어가 떠올랐습니다.
이번 포스팅에서는 직접 구현한, GitHub PR에 자동으로 AI가 리뷰 코멘트를 남기는 기능의 전체적인 흐름과 구현 과정을 간단히 소개해드릴게요!
간단히 말하면, 누군가 GitHub에 Pull Request를 올리면, AI가 코드의 변경사항을 읽고 자동으로 리뷰 코멘트를 작성해서 남겨주는 기능입니다.
"어떤 부분이 개선될 수 있는지"나, "이건 왜 이렇게 했을까?" 같은 리뷰가 자동으로 달립니다.
(실제로 어떤 종류의 리뷰를 작성할 지는, AI에게 어떻게 프롬프팅 하냐에 따라서 다르게 설정할 수 있어요!)
그럼 이 기능이 실제로 어떻게 동작하는지 하나씩 살펴볼게요.
누군가 특정 repo에 PR을 올린다
GitHub이 내 서버에 webhook 요청을 보낸다
PR 정보 확인 (내 서버)
변경된 코드 내용 가져오기 (내 서버)
AI로 코드 리뷰 생성 (내 서버)
다시 GitHub에 코멘트를 남긴다 🎯 (내 서버에서 -> github api를 통해)
1. GitHub Webhook 이벤트 받기
GitHub에는 웹훅(webhook)이라는 기능이 있어요. 레포지토리에서 어떤 일이 발생했을 때 지정된 URL로 HTTP 요청을 보내주는 기능이죠.
(이 웹훅은 github에서 아래 과정에 따라 추가 가능해요!)
** 원하는 레포지토리 > Settings > Webhooks > Add webhook **
PR이 생성되거나 업데이트되면
GitHub은 저희가 만든 서버의 특정 엔드포인트로 POST 요청을 보냅니다
요청에는 PR 번호, 레포지토리 정보, 파일 목록 등 다양한 정보가 포함돼요
2. 요청의 진짜 여부 확인하기 🔐
요청이 진짜 GitHub에서 온 건지 확인하는 게 중요해요.
그래서 HMAC-SHA256 방식으로 서명(signature)을 검증합니다.
GitHub는 요청과 함께 X-Hub-Signature-256 헤더를 보내줍니다
우리는 같은 방식으로 서명을 계산해서 비교합니다
일치하지 않으면 요청을 거부해요.
3. PR 관련 이벤트만 처리
GitHub에서 보내는 이벤트는 정말 다양해요. 그 중 우리는 PR 관련 이벤트만 관심이 있습니다.
PR이 "열리거나(opened)", "업데이트(synchronize)"되었을 때만 처리합니다
그 외 이벤트는 무시하고 진행하지 않아요!
4. PR 정보 뽑기
이제 PR 번호와 레포지토리 정보를 꺼내야겠죠?
PR 번호 (pr_number)
레포지토리 이름 (repo_full_name)
이 정보는 나중에 GitHub API 호출에 꼭 필요합니다.
5. 리뷰 체인 실행하기 ⚙️
우선 모든 리뷰 과정을 담당하는 클래스를 하나 만들었어요. PRReviewChain
review_chain = PRReviewChain(pr_number, repo_full_name)
review_chain.run()
이 클래스에 pr번호와, 레포지토리 이름을 전달하는 것으로 내부에 있는 다양한 과정들이 시작돼요!
6. GitHub API로 PR 정보 가져오기
GitHub의 공식 API를 사용해서 PR에 어떤 변경이 있었는지 확인합니다.
어떤 파일이 수정됐는지 (get_pull_request_files)
전체 diff 내용은 어떤지 (get_pull_request_diff)
이때 필요한 인증은 GitHub Access Token을 사용해 처리합니다.
7. LangChain + OpenAI로 리뷰 생성 🧠
이제, AI가 리뷰를 생성합니다!
AI로 리뷰를 생성할 때, LangChain이라는 프레임워크를 사용했어요.
(LangChain은 GPT 같은 언어 모델을 다양한 도구와 쉽게 연결해주는 프레임워크에요.
단순히 프롬프트만 보내는 게 아니라, 외부 API 연결, 응답 가공, 히스토리 관리 등등 수많은 API들이 포함되어 있어요!)
아무튼, AI에게 저희가 사전에 설정한 프롬프트를 전달하게 돼요!
프롬프트에는 저희가 사용하는 코딩 컨벤션이나, 어떤 부분을 중점적으로 리뷰해야하는지 등 다양한 정보들을 같이 포함했어요!
8. GitHub PR에 코멘트 달기
이렇게 AI가 생성한 리뷰를 GitHub에 다시 올릴 차례!
전체 리뷰 → PR에 단일 코멘트로 추가
파일별 리뷰 → 각 파일 라인에 코멘트로 추가
이 작업도 GitHub API를 통해 처리됩니다.
이렇게 최종적으로, 실제 GitHub의 Pull-request에는 AI가 남긴 리뷰가 등록이 돼요!
간단하게는 github과 제 서버, 그리고 LLM이 아래와 같은 느낌으로 상호작용하고 있어요!
지금까지 소개해 드렸던 전체적인 흐름도 중요하지만, 사실 이 프로젝트의 가장 중요한 요소는 ‘프롬프트’에요.
어떤 질문을 어떻게 구성해서 AI에게 던질지에 따라, 리뷰의 품질이 완전히 달라지거든요.
예를 들어, “이 코드를 개선해줘”가 아니라, “이 코드에서 보안상 문제가 있는 부분을 알려줘”라고 하면 전혀 다른 리뷰가 나오게 돼요!
그래서 프롬프트를 어떻게 구성하느냐에 따라 리뷰 스타일, 깊이, 방향성을 원하는 대로 조정할 수 있어요.
앞으로 다양한 방식으로 프롬프트를 수정하며, 리뷰의 품질을 저희가 원하는 방향으로 개선해 볼 예정이에요!
링크 드라퍼는 단순한 저장 툴이 아닙니다.
정리하고, 수정하고, 다시 꺼내보게 만드는 링크 관리 도구를 지향하고 있습니다.
• 🔗 빠르고 간편한 링크 저장
• 🧠 저장한 링크를 폴더별로 정리
• 🌐 폴더를 친구에게 공유 가능
• ⚡ 크롬 익스텐션 원클릭 저장
👉 링크 드라퍼 베타 체험하러 가기
👉 크롬 웹스토어에서 설치하기
카카오톡 채널을 통해 빠르게 받아보세요!
SOC 2 (System and Organization Controls 2) certification is a globally recognized standard developed by the American Institute of Certified Public Accountants (AICPA). It evaluates how well a service organization manages data based on five "Trust Services Criteria": security, availability, processing integrity, confidentiality, and privacy. While not mandatory, SOC 2 Certification cost in Singapore is increasingly critical for companies—especially those in the technology, cloud computing, and financial sectors—that handle customer data.
https://www.certvalue.com/soc-2-certification-in-Singapore/
Certvalue is the top SOC 2 Consultants in Singapore for providing SOC 2 Certification in Yishun,Jurong,Woodlands and other major cities in singapore with services of implementation