코드 리뷰
코드 리뷰
ChatGPT 및 Codex 클라이언트에서 코드 변경 사항을 검토합니다
변경 사항을 커밋하거나 푸시하기 전에 ChatGPT 또는 Codex를 사용하여 코드를 점검하세요.
리뷰 시작하기
ChatGPT Work에서 검토할 코드를 업로드하거나 설치된 소스 플러그인을 통해 사용할 수 있게 하세요. 프롬프트에서 pull request, 브랜치, 커밋, 파일 및 검토 기준을 지정하세요.
앱에서 리뷰하기
리뷰 창을 열어 변경된 내용을 파악하고, 줄별 피드백을 제공하며, 스테이징하거나 되돌리거나 커밋하거나 푸시할 항목을 결정하세요.
Codex에 변경 사항 검토를 요청하려면 작성란에 /review를 입력하세요.
기준 브랜치와 비교하여 리뷰 또는 커밋되지 않은 변경 사항 리뷰를 선택합니다. Codex는
작업 트리를 변경하지 않고 우선순위가 지정된 발견 사항을 보고합니다.
리뷰 창을 사용하려면 Git 저장소 안에 프로젝트가 있어야 합니다. 프로젝트가 아직 Git 저장소가 아니면 앱에서 저장소를 생성하라는 메시지를 표시합니다.
/review를 입력하여 CLI 검토 프리셋을 여세요. Codex가 선택한 diff를 읽고 작업 트리를
변경하지 않은 채 우선순위가 지정된 실행 가능한 결과를 보고하는 전용 검토자를
시작합니다.
IDE 확장 프로그램 작성창에 /review를 입력하세요. Review against a base
branch 또는 Review uncommitted changes를 선택하세요. Codex는 작업 트리를
변경하지 않은 채 우선순위가 지정된 결과를 보고합니다.
열린 프로젝트가 Git 저장소 안에 있을 때만 /review 명령이
표시됩니다.
리뷰 범위 선택하기
프롬프트에서 검사할 pull request, 브랜치, 커밋 또는 파일을 지정하세요. 설치된 소스 플러그인을 통해 사용할 수 없는 로컬 파일을 검토하려면 채팅에 업로드하세요.
표시되는 변경 사항
리뷰 창에는 Codex가 편집한 내용만이 아니라 Git 저장소의 상태가 반영됩니다. Codex가 만든 변경 사항, 사용자가 직접 만든 변경 사항 및 저장소의 커밋되지 않은 기타 모든 변경 사항이 포함됩니다.
기본적으로 리뷰 창에는 스테이징되지 않음 변경 사항이 표시됩니다. Git 인덱스는 스테이징됨, 선택한 커밋은 커밋, 기준 브랜치와의 차이는 브랜치, 가장 최근 어시스턴트 턴은 마지막 턴을 사용하세요.
여러 저장소 리뷰하기
로컬 프로젝트에 여러 폴더가 포함되어 있고 각 폴더가 서로 다른 Git 저장소에 연결된 경우 리뷰 창에서 각 저장소의 변경 사항을 표시할 수 있습니다. 현재 리뷰 창을 벗어나지 않고 다른 저장소와 추가되거나 삭제된 줄을 살펴보려면 리뷰 헤더에서 저장소 선택기를 여세요.
연결된 저장소 전체에서 어시스턴트가 최근에 변경한 내용을 보려면 마지막 턴을 선택하세요. 이 보기에서는 저장소 선택기에 모든 저장소가 표시됩니다. 스테이징되지 않음, 스테이징됨, 브랜치와 같은 다른 리뷰 범위는 선택한 저장소에 적용됩니다.
다음 /review 범위 중 하나를 선택하세요.
- Review against a base branch는 병합 기준점을 찾고 브랜치의 diff를 검토합니다.
- Review uncommitted changes에는 스테이징된 파일, 스테이징되지 않은 파일 및 추적되지 않는 파일이 포함됩니다.
- Review a commit은 선택한 커밋의 정확한 변경 집합을 검토합니다.
- Custom review instructions는 제공한 기준에 초점을 맞춰 검토합니다.
다음 /review 범위 중 하나를 선택하세요.
- Review against a base branch는 현재 브랜치를 선택한 브랜치와 비교합니다.
- Review uncommitted changes는 작업 트리의 변경 사항을 검토합니다.
리뷰 결과 활용하기
검토 결과는 웹 채팅에 표시됩니다. 근거를 요청하거나, 범위를 더 좁힌 후속 검토를 요청하거나, ChatGPT에 수정된 파일을 준비해 달라고 요청하세요.
코드 리뷰 결과
리뷰 발견 사항은 리뷰 창에 인라인 댓글로 표시됩니다.
검토는 기본적으로 현재 채팅에서 실행됩니다. Settings > General > Code review에서 Detached를 선택하면 별도의 검토 채팅이 시작됩니다. 개발자 설정을 참조하세요.
검토는 대화 기록에 하나의 턴으로 표시됩니다. 검토에서 현재
세션과 다른 모델을 사용하도록 하려면 config.toml에서
review_model을 설정하세요.
기본적으로 검토는 현재 채팅에서 실행됩니다. /review가 별도의 검토 채팅을
시작하도록 하려면 chatgpt.reviewDelivery를 detached로 설정하세요.
IDE 확장 프로그램 설정 참조를 확인하세요.
ChatGPT에 수정된 파일을 준비하도록 요청하는 경우에도 채팅에 제공된 도구와 작업 공간 권한이 그대로 적용됩니다.
Codex에 발견한 문제의 수정을 요청하면 일반적인 샌드박스 및 승인 설정이 적용됩니다.
리뷰 창 탐색하기
- 파일 이름을 클릭하면 일반적으로 선택한 편집기에서 해당 파일이 열립니다. 기본 편집기는 개발자 설정에서 선택할 수 있습니다.
- 파일 이름의 배경을 클릭하면 diff가 펼쳐지거나 접힙니다.
- Cmd를 누른 상태에서 한 줄을 클릭하면 선택한 편집기에서 해당 줄이 열립니다.
- 변경 사항이 마음에 들면 스테이징하거나 원하지 않는 변경 사항을 되돌릴 수 있습니다.
피드백을 위한 인라인 댓글
인라인 댓글을 사용하면 diff의 특정 줄에 피드백을 직접 첨부할 수 있습니다. 이는 Codex가 적절한 수정 방향을 따르도록 안내하는 가장 빠른 방법인 경우가 많습니다.
인라인 댓글을 남기는 방법은 다음과 같습니다.
- 리뷰 창을 엽니다.
- 댓글을 달려는 줄 위에 포인터를 올립니다.
- 표시되는 + 버튼을 선택합니다.
- 피드백을 작성하고 제출합니다.
- 피드백 작성을 마치면 채팅으로 메시지를 보냅니다.
댓글은 특정 줄에 연결되므로 Codex는 일반적인 지시보다 더 정확하게 응답할 수 있습니다.
Codex는 인라인 댓글을 리뷰 지침으로 처리합니다. 댓글을 남긴 후에는 의도를 명확히 밝히는 후속 메시지를 보내세요. 예: “인라인 댓글을 반영하고 변경 범위는 최소한으로 유지해 주세요.”
풀 리퀘스트 리뷰
Codex에 저장소의 GitHub 액세스 권한이 있고 현재 프로젝트가 풀 리퀘스트 브랜치에 있으면 ChatGPT 데스크톱 앱에서 앱을 벗어나지 않고 풀 리퀘스트 피드백을 처리할 수 있습니다. 사이드바에는 풀 리퀘스트 컨텍스트와 리뷰어의 피드백이 표시되고, 리뷰 창에는 diff와 함께 댓글이 표시되므로 같은 채팅에서 Codex에 문제 해결을 요청할 수 있습니다.
Codex가 풀 리퀘스트 컨텍스트, 리뷰 댓글 및 변경된 파일을 불러올 수 있도록
GitHub CLI(gh)를 설치하고 gh auth login으로 인증하세요. gh이
없거나 인증되지 않으면 풀 리퀘스트 세부 정보가 사이드바 또는 리뷰 창에
표시되지 않을 수 있습니다.
전체 수정 과정을 한곳에서 처리하려면 다음 흐름을 사용하세요.
- 풀 리퀘스트 브랜치에서 리뷰 창을 엽니다.
- 풀 리퀘스트 컨텍스트, 댓글 및 변경된 파일을 검토합니다.
- Codex에 처리하려는 특정 댓글을 수정해 달라고 요청합니다.
- 리뷰 창에서 결과 diff를 점검합니다.
- 준비가 되면 변경 사항을 스테이징하고 커밋한 후 풀 리퀘스트 브랜치에 푸시합니다.
GitHub에서 트리거되는 리뷰는 GitHub에서 Codex 사용하기를 참조하세요.
파일 스테이징 및 되돌리기
리뷰 창에는 커밋하기 전에 diff를 정리할 수 있는 Git 작업이 포함되어 있습니다.
다음 수준에서 변경 사항을 스테이징하거나 스테이징 해제하거나 되돌릴 수 있습니다.
- 전체 diff: 리뷰 헤더에서 모두 스테이징 또는 모두 되돌리기와 같은 작업 버튼을 사용합니다.
- 파일별: 개별 파일을 스테이징하거나 스테이징 해제하거나 되돌립니다.
- 청크별: 단일 청크를 스테이징하거나 스테이징 해제하거나 되돌립니다.
작업의 일부를 적용하려면 스테이징을 사용하고, 버리려면 되돌리기를 사용하세요.
스테이징된 상태와 스테이징되지 않은 상태
Git에서는 같은 파일에 스테이징된 변경 사항과 스테이징되지 않은 변경 사항이 모두 있을 수 있습니다. 이 경우 리뷰 창의 두 보기에 동일한 파일이 표시될 수 있습니다. 이는 정상적인 Git 동작입니다.