코드 리뷰

코드 리뷰

ChatGPT 및 Codex 클라이언트에서 코드 변경 사항을 검토합니다

ChatGPT 또는 Codex를 사용해 코드 변경 사항을 이해하고, 잠재적 문제를 조사하고, 리뷰 피드백을 준비하세요.

풀 리퀘스트 리뷰

Code Review 플러그인은 풀 리퀘스트의 설명, 변경된 파일, 댓글, 검사 결과를 보여 줍니다. 승인 전에 잠재적 문제를 조사하는 데 사용하세요.

GitHub 코드 리뷰는 정식으로 제공됩니다. Code Review의 GitLab 병합 요청 지원은 프리뷰 단계입니다. GitLab에서 클라우드 리뷰를 실행하려면 @codex review 또는 자동 병합 요청 리뷰를 사용하세요. 자세한 내용은 Codex로 GitLab 병합 요청 리뷰하기를 확인하세요.

저장소에서 트리거되는 리뷰에 대해서는 GitHub 통합 가이드와 Codex Cloud (Legacy) 환경 설정을 확인하세요.

데스크톱 앱에는 Code Review가 포함되어 있습니다. 설치된 플러그인에서 선택해 앱 사이드바에 고정할 수 있습니다.

풀 리퀘스트 보기

  1. 사이드바에서 Code Review 를 엽니다.
  2. 안내가 표시되면 소스 계정을 연결합니다. 리뷰할 저장소에 접근할 수 있는 계정을 사용하세요.
  3. 사이드바에서 풀 리퀘스트를 선택하거나 검색 필드에 해당 링크를 입력합니다.
  4. 요약 에서 설명, 활동, 댓글, 검사 결과를 확인합니다. 변경 사항 을 열어 diff와 함께 변경된 파일 및 댓글을 확인합니다.

확인이 필요한 리뷰 찾기

개인 받은 편지함에서 여러 저장소의 GitHub 풀 리퀘스트를 찾을 수 있습니다. 본인에게 요청된 리뷰는 나에게 할당됨 을, 팀에 요청된 리뷰는 내 팀에 할당됨 을, 본인이 작성한 변경 사항을 다시 보려면 내가 작성함 을 선택하세요. 리뷰 상태를 확인한 다음 풀 리퀘스트를 열어 피드백과 검사 결과를 살펴보세요.

나중에 리뷰로 돌아오려면 도구 모음에서 핀을 선택하세요. 해당 풀 리퀘스트가 사이드바의 고정됨 아래에 표시됩니다.

변경된 파일과 관련 풀 리퀘스트 살펴보기

변경 사항 에서 파일을 검토한 후 확인한 것으로 표시 를 선택하세요. 이 컨트롤을 다시 선택하면 표시가 해제됩니다. 확인 표시는 현재 표시된 리비전에 적용됩니다.

변경 사항이 서로 의존하는 여러 풀 리퀘스트로 나뉘어 있다면 요약 의 스택 을 사용해 관련 풀 리퀘스트를 열고 diff, 댓글, 검사를 살펴보세요. 이 섹션은 Code Review가 열린 풀 리퀘스트의 스택을 찾으면 표시됩니다.

자동 클라우드 리뷰 읽기

ChatGPT Codex 커넥터와 필요한 저장소 권한을 설정하고 자동 리뷰를 활성화하면, 풀 리퀘스트를 열기 전에 Codex가 GitHub 풀 리퀘스트를 검토할 수 있습니다. 댓글은 GitHub와 Code Review에 표시됩니다.

클라우드 리뷰를 사용하기 위해 클라우드 환경을 만들거나 관리할 필요는 없습니다. 연결 요구 사항, 저장소 설정, 다음 명령으로 시작하는 리뷰에 대한 자세한 내용은 @codex review, GitHub에서 Codex 사용하기를 참고하세요.

리뷰에서 발견된 사항을 diff와 대조해 확인하세요. 자동 클라우드 리뷰는 풀 리퀘스트 채팅에서 시작하는 리뷰와 별개입니다.

변경 사항에 대해 질문하기

풀 리퀘스트 채팅에서 예상 동작을 설명하고 Codex에 변경 사항을 설명하거나 조사해 달라고 요청하세요.

Codex로 리뷰 를 선택하면 새 채팅에서 리뷰가 시작됩니다. 기존 채팅 옆에서 풀 리퀘스트를 보고 있다면 해당 채팅에서 변경 사항에 대해 질문하세요.

설치된 스킬과 연결된 소스를 사용해 Codex에 팀의 리뷰 지침이나 설계 문서를 제공하세요. 변경 사항을 요약하고 위험 요소를 설명해 달라고 요청한 다음, 참조한 맥락과 코드를 확인하세요.

예를 들어, 풀 리퀘스트에서 이슈 보드에 열림 과 닫힘 필터를 추가한다고 가정해 보겠습니다. 전체 가 기본값으로 유지되고 일치하는 이슈가 없으면 빈 상태가 표시되어야 합니다.

Walk me through this pull request. Focus on the default filter and what
happens when there are no matching issues. All should remain the default.

근거를 요청하세요:

Show me the code path and tests for the no-matches case. Explain what is
covered and what still needs verification.

참조된 diff와 테스트를 예상 동작과 대조해 확인하세요.

발견된 사항을 선택하면 변경 사항 에서 설명과 관련 줄을 살펴볼 수 있습니다. 수정이 필요한지 판단하기 전에 최신 diff, 예상 동작, 테스트와 대조해 확인하세요. 진행 중인 리뷰를 중지하려면 리뷰 채팅을 사용하세요.

리뷰 맞춤 설정하기

Codex로 리뷰 옆에 있는 리뷰 지침 톱니바퀴를 선택하세요. 설정 > Code Review 에서도 이 지침을 편집할 수 있습니다.

모든 리뷰에 적용할 기준과 보고 형식을 Codex에 제공하세요. 예를 들면 다음과 같습니다:

Start with a short summary. Prioritize behavior changes, data loss, and
missing edge-case tests. For each finding, explain the triggering input,
expected behavior, and actual behavior. Use our team's concise review style.

이 지침은 모든 저장소에서 Codex로 리뷰 로 시작하는 리뷰에 적용됩니다. 리뷰 진행 중에 변경한 내용은 다음 리뷰부터 적용됩니다. 특정 변경 사항에 관한 질문은 풀 리퀘스트 채팅에서 하세요.

원하는 경우 만화, 시각화, PDF 를 선택해 해당 형식으로 변경 사항을 설명하는 추천 지침을 추가할 수 있습니다. 필요에 따라 텍스트를 편집한 다음, 저장 또는 리뷰 실행 을 선택하세요.

피드백 공유 및 후속 작업하기

채팅에서 풀 리퀘스트를 검토해도 댓글이 게시되거나 풀 리퀘스트가 승인 또는 병합되지는 않습니다. 발견된 사항 중 무엇을 공유할지는 직접 선택합니다.

문제를 확인한 후에는 Codex에 리뷰 댓글 작성을 도와달라고 요청하세요:

Using the team review guidelines we discussed, draft a comment describing
the no-matches behavior we verified, what should happen instead, and the test
that would cover it. Keep the comment as a draft.

게시하기 전에 초안이 참조하는 파일과 줄을 확인하세요. 준비가 될 때까지 초안을 채팅에 보관하세요. 요약 이나 변경 사항 에서 댓글을 게시하면 리뷰 제출 을 기다리지 않고 소스 제공업체에 즉시 전송됩니다.

리뷰 제출 에서 댓글, 승인, 변경 요청 중 하나를 선택하고 소스 제공업체에 리뷰를 전송하세요. 제출하기 전에 선택한 결정과 리뷰 댓글을 확인하세요.

작성자라면 자신의 풀 리퀘스트로 돌아가 Codex에 특정 피드백을 반영해 달라고 요청하세요. 결과로 나온 변경 사항을 살펴보고 관련 테스트를 실행하세요. 승인하거나 병합하기 전에 최신 리비전, 검사 결과, 미해결 피드백을 확인하세요.

이미지가 첨부된 풀 리퀘스트 설명은 Code Review에서 편집할 수 없습니다. 해당 설명을 편집하려면 GitHub에서 풀 리퀘스트를 여세요.

채팅에서 계속하기

요약 에 스레드 가 표시되면 연결된 채팅을 선택해 해당 대화로 돌아가세요. 이 채팅들은 풀 리퀘스트와 연결된 자신의 채팅입니다.

Codex에서 열린 풀 리퀘스트의 검사 에 있는 수정 을 선택하면 실패한 검사가 채팅에 첨부됩니다. 메시지는 작성되지만 전송되지는 않습니다. 프롬프트를 검토하거나 추가한 다음 전송해 Codex에 조사를 요청하세요. 수정 사항을 푸시하기 전에 결과로 나온 변경 사항을 살펴보고 관련 테스트를 다시 실행하세요.

사용할 수 있는 진단 정보는 검사 제공업체에 따라 다릅니다. 타사 CI의 경우, Codex는 GitHub에 보고된 상태와 출력을 사용할 수 있습니다.

로컬 변경 사항 리뷰하기

Codex의 내장 /review 명령은 Git 체크아웃의 변경 사항을 검토하며, Code Review 플러그인은 풀 리퀘스트를 대상으로 작동합니다. 사용 중인 클라이언트를 선택해 해당 절차를 확인하세요.

앱에서 리뷰하기

리뷰 창을 열어 변경된 내용을 파악하고, 줄별 피드백을 제공하며, 스테이징하거나 되돌리거나 커밋하거나 푸시할 항목을 결정하세요.

Codex에 변경 사항 검토를 요청하려면 작성란에 /review를 입력하세요. 기준 브랜치와 비교하여 리뷰 또는 커밋되지 않은 변경 사항 리뷰 를 선택합니다. Codex는 작업 트리를 변경하지 않고 우선순위가 지정된 발견 사항을 보고합니다.

리뷰 창을 사용하려면 Git 저장소 안에 프로젝트가 있어야 합니다. 프로젝트가 아직 Git 저장소가 아니면 앱에서 저장소를 생성하라는 메시지를 표시합니다.

리뷰 범위 선택하기

표시되는 변경 사항

리뷰 창에는 Codex가 편집한 내용만이 아니라 Git 저장소의 상태가 반영됩니다. Codex가 만든 변경 사항, 사용자가 직접 만든 변경 사항 및 저장소의 커밋되지 않은 기타 모든 변경 사항이 포함됩니다.

기본적으로 리뷰 창에는 스테이징되지 않음 변경 사항이 표시됩니다. Git 인덱스는 스테이징됨, 선택한 커밋은 커밋, 기준 브랜치와의 차이는 브랜치, 가장 최근 어시스턴트 턴은 마지막 턴 을 사용하세요.

여러 저장소 리뷰하기

로컬 프로젝트에 여러 폴더가 포함되어 있고 각 폴더가 서로 다른 Git 저장소에 연결된 경우 리뷰 창에서 각 저장소의 변경 사항을 표시할 수 있습니다. 현재 리뷰 창을 벗어나지 않고 다른 저장소와 추가되거나 삭제된 줄을 살펴보려면 리뷰 헤더에서 저장소 선택기를 여세요.

연결된 저장소 전체에서 어시스턴트가 최근에 변경한 내용을 보려면 마지막 턴 을 선택하세요. 이 보기에서는 저장소 선택기에 모든 저장소 가 표시됩니다. 스테이징되지 않음, 스테이징됨, 브랜치 와 같은 다른 리뷰 범위는 선택한 저장소에 적용됩니다.

리뷰 결과 활용하기

코드 리뷰 결과

리뷰 발견 사항은 리뷰 창에 인라인 댓글로 표시됩니다.

리뷰는 기본적으로 현재 채팅에서 실행됩니다. 설정 > 일반 > 코드 리뷰 에서 분리 를 선택하면 별도의 리뷰 채팅이 시작됩니다. 개발자 설정을 참고하세요.

리뷰 창에 표시된 인라인 코드 리뷰 댓글

Codex에 발견한 문제의 수정을 요청하면 일반적인 샌드박스 및 승인 설정이 적용됩니다.

리뷰 창 탐색하기

피드백을 위한 인라인 댓글

인라인 댓글을 사용하면 diff의 특정 줄에 피드백을 직접 첨부할 수 있습니다. 이는 Codex가 적절한 수정 방향을 따르도록 안내하는 가장 빠른 방법인 경우가 많습니다.

인라인 댓글을 남기는 방법은 다음과 같습니다.

  1. 리뷰 창을 엽니다.
  2. 댓글을 달려는 줄 위에 포인터를 올립니다.
  3. 표시되는 + 버튼을 선택합니다.
  4. 피드백을 작성하고 제출합니다.
  5. 피드백 작성을 마치면 채팅으로 메시지를 보냅니다.

댓글은 특정 줄에 연결되므로 Codex는 일반적인 지시보다 더 정확하게 응답할 수 있습니다.

Codex는 인라인 댓글을 리뷰 지침으로 처리합니다. 댓글을 남긴 후에는 의도를 명확히 밝히는 후속 메시지를 보내세요. 예: “인라인 댓글을 반영하고 변경 범위는 최소한으로 유지해 주세요.”

파일 스테이징 및 되돌리기

리뷰 창에는 커밋하기 전에 diff를 정리할 수 있는 Git 작업이 포함되어 있습니다.

다음 수준에서 변경 사항을 스테이징하거나 스테이징 해제하거나 되돌릴 수 있습니다.

  • 전체 diff: 리뷰 헤더에서 모두 스테이징 또는 모두 되돌리기 와 같은 작업 버튼을 사용합니다.
  • 파일별: 개별 파일을 스테이징하거나 스테이징 해제하거나 되돌립니다.
  • 청크별: 단일 청크를 스테이징하거나 스테이징 해제하거나 되돌립니다.

작업의 일부를 적용하려면 스테이징을 사용하고, 버리려면 되돌리기를 사용하세요.

스테이징된 상태와 스테이징되지 않은 상태

Git에서는 같은 파일에 스테이징된 변경 사항과 스테이징되지 않은 변경 사항이 모두 있을 수 있습니다. 이 경우 리뷰 창의 두 보기에 동일한 파일이 표시될 수 있습니다. 이는 정상적인 Git 동작입니다.