GitHub 코드 리뷰 사소한 꿀팁

이호영·2022년 2월 12일
42
post-thumbnail

GitHub으로 코드 리뷰를 하는 몇가지 사소한 팁 공유합니다 :)

코드 범위 지정


대부분 리뷰의 대상이 될 해당 코드 부분에 마우스를 hover하여, 왼쪽에 뜨는 + 버튼을 눌러 리뷰를 작성하고는 하는데요


그렇게 리뷰를 작성하고 나면 위와 같이 해당 코드의 윗부분 일부와 리뷰가 보이게 됩니다. 이처럼 짧은 로직은 다 보이게 되지만 긴 로직에 대해 설명을 부탁하거나, 그에 대한 피드백을 작성할 때 의도를 나타내기엔 충분하지 않습니다. 리뷰하고 싶은 부분의 코드가 길 경우 그 중 일부만 잘려서 보이기 때문입니다.


그럴 때에는 + 버튼을 누르고 드래그를 하면 원하는 코드 부분을 길게 선택할 수 있습니다.


이렇게 선택을 하면 리뷰를 남기고자 하는 코드 길이에 상관 없이 리뷰를 남길 수 있습니다.

코드에 색깔 입히기

이건 다양한 마크다운 에디터에서 사용할 수 있는 공통적인 방법입니다. (심지어 디스코드에서도 됨!)

``` 로 코드를 감싸면 코드 블럭이 되는건 많은 분들이 알고 사용하고 있는데, 단순히 코드 블럭으로 감싸면 코드가 아닌 텍스트 처럼 표기가 됩니다.

```
@GetMapping("/videos")
public ResponseEntity<List<VideoListResponse>> getVideoRandomList() {
    return new ResponseEntity<>(videoService.getRandomVideos(RANDOM_VIDEO_ACCESS_SIZE), HttpStatus.OK);
}
```
URL을 다른 것으로 변경하면 어떨까요?


이런 코드 블럭에 언어를 적어주면, 코드 블럭에 적힌 언어가 어떤 언어인지 에디터가 알 수 있게 됩니다. 그 덕분에 코드에 색깔이 입혀지고 더욱 이쁘게읽기 쉽게 하이라이팅 된 채로 보여줄 수 있습니다.

```java <---- 여기에 해당 언어를 작성하면 된다.
@GetMapping("/videos")
public ResponseEntity<List<VideoListResponse>> getVideoRandomList() {
    return new ResponseEntity<>(videoService.getRandomVideos(RANDOM_VIDEO_ACCESS_SIZE), HttpStatus.OK);
}
```
URL을 다른 것으로 변경하면 어떨까요?

이렇게 작성하면

이렇게 보여집니다.

Suggestion

앞서 말한 팁 두개를 응용하면 코드 리뷰 단계에서 해당 코드를 어떻게 바꾸면 좋을 지 제안을 할 수 있습니다. 코드 수정을 원하는 부분을 드래그 해서 리뷰를 시작하고 수정을 원하는 코드를 작성합니다.

대신, 그 단계에서 앞서 언어를 작성하는 부분(``` 바로 뒤!)에 suggestion 이라고 작성하면 해당 코드를 이렇게 수정하라는 제안을 할 수 있습니다.


이렇게 작성하면

이렇게 보여집니다. 제안을 하면 해당 코드 부분이 어떻게 수정될 건지 diff가 보여지고, 리뷰이는 간단히 버튼을 눌러 해당 제안으로 코드를 변경하는 커밋을 날릴 수 있습니다.

+ 브랜치 병합 규칙

PR을 머지하기 전에 무조건 누군가의 Approve가 있어야만 Merge 할 수 있도록 팀원끼리 규칙을 두는 것도 좋습니다.

Repository에서 Settings → Branches → Brach protection rules → Add rule로 들어가면 Branch 룰을 정의할 수 있습니다. 룰을 적용할 수 있는 브랜치 이름은 * 같은 wildcard를 사용할 수 있는데, 자세한 내용은 문서를 참고해주세요!

모든 브랜치에 적용 시키려면 * 로 이름 지으면 됩니다.

적용할만한 Branch Rule

  • Require a pull request before merging - PR이 머지되기 전 필요한 사항
    • Require approvals - 최소 n명 이상 Approve가 필요함
    • Dismiss stale pull request approvals when new commits are pushed - Approve 새로운 커밋이 push 되었을 때 기존 Approve를 무효화 시킬 것인지
    • Require review from Code Owners - 코드 소유자에게 리뷰를 받아야 하는지
  • Require status checks to pass before merging - 머지되기 전 상태 체크(테스트)를 통과해야 함
  • Require linear history - 머지 커밋을 남기지 않도록 함
profile
안녕하세요!

7개의 댓글

comment-user-thumbnail
2022년 2월 12일

좋은 팁 감사합니다 :)

1개의 답글
comment-user-thumbnail
2022년 2월 12일

너무 좋은 팁이네요!

답글 달기
comment-user-thumbnail
2022년 2월 13일

오 몰랐던 꿀팁이에요 감사합니다

답글 달기
comment-user-thumbnail
2022년 2월 14일

"코드 범위 지정", "Suggestion" 부분을 처음 알게 되었네요!
좋은 글 감사합니다:)

답글 달기
comment-user-thumbnail
2022년 2월 15일

잘 보고 갑니다 !

답글 달기
comment-user-thumbnail
2022년 2월 20일

오오 협업 하고 있는데 감사합니다. 컨벤션 정할 때 언급해봐야겠습니다!

답글 달기