Skip to content

Commit

Permalink
refactor(docs): change all asterisk to dash, add reviewer manifesto (n…
Browse files Browse the repository at this point in the history
  • Loading branch information
javajigi authored May 6, 2022
1 parent cc577b2 commit 0e5fd18
Show file tree
Hide file tree
Showing 17 changed files with 304 additions and 281 deletions.
16 changes: 8 additions & 8 deletions codereview/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

---
#### git 터미널 환경 세팅
* 윈도우즈 운영체제 사용자: [git for windows](https://gitforwindows.org/)를 설치
* 맥 운영체제 사용자
* 터미널을 실행한 후 `git --version` 명령을 실행한다.
* git이 설치되어 있지 않으면 git을 설치할 것인지 물어보는 화면세어 설치 버튼을 클릭해 설치하면 된다.
* [맥에 Git 설치하기](http://bkcarrier.tistory.com/35) 문서 참고
- 윈도우즈 운영체제 사용자: [git for windows](https://gitforwindows.org/)를 설치
- 맥 운영체제 사용자
- 터미널을 실행한 후 `git --version` 명령을 실행한다.
- git이 설치되어 있지 않으면 git을 설치할 것인지 물어보는 화면세어 설치 버튼을 클릭해 설치하면 된다.
- [맥에 Git 설치하기](http://bkcarrier.tistory.com/35) 문서 참고

---
## 동영상으로 살펴보는 코드리뷰 요청 단계
Expand All @@ -22,6 +22,6 @@

---
## 텍스트와 이미지로 살펴보는 코드리뷰 요청 단계
* [코드리뷰 요청 1단계](./review-step1.md): 미션 진행 후 github에 올리는 단계
* [코드리뷰 요청 2단계](./review-step2.md): 코드리뷰 요청을 보내고, 피드백을 받은 후 피드백 반영 및 merge하는 단계
* [코드리뷰 요청 3단계](./review-step3.md): 다음 단계 미션을 위해 준비하는 단계
- [코드리뷰 요청 1단계](./review-step1.md): 미션 진행 후 github에 올리는 단계
- [코드리뷰 요청 2단계](./review-step2.md): 코드리뷰 요청을 보내고, 피드백을 받은 후 피드백 반영 및 merge하는 단계
- [코드리뷰 요청 3단계](./review-step3.md): 다음 단계 미션을 위해 준비하는 단계
36 changes: 18 additions & 18 deletions codereview/review-step1.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@

---
1. 미션을 시작한다.
* NextStep(https://edu.nextstep.camp) 에 접속해 진행하려는 미션으로 이동한다. **미션 시작** 버튼을 클릭한다.
- NextStep(https://edu.nextstep.camp) 에 접속해 진행하려는 미션으로 이동한다. **미션 시작*- 버튼을 클릭한다.

![start mission](./images/etc/start_mission.png)

* 미션을 시작하는 순간 미션 저장소에 자신의 github id 계정에 해당하는 브랜치가 생성되고 리뷰어가 배정된다.
* **나의 미션** 버튼을 클릭해 미션을 진행할 수 있는 저장소로 이동한다.
- 미션을 시작하는 순간 미션 저장소에 자신의 github id 계정에 해당하는 브랜치가 생성되고 리뷰어가 배정된다.
- **나의 미션*- 버튼을 클릭해 미션을 진행할 수 있는 저장소로 이동한다.

![my mission repository](./images/etc/my_mission_repository.png)

* 자신의 github 계정 브랜치가 생성되어 있으면 다음과 같이 검색이 되어야 한다.
- 자신의 github 계정 브랜치가 생성되어 있으면 다음과 같이 검색이 되어야 한다.

![no branch](./images/etc/branch_github.png)

* 브랜치를 생성한 후 상태는 다음과 같다.
- 브랜치를 생성한 후 상태는 다음과 같다.

![create branch](./images/create_branch.png)

Expand All @@ -26,11 +26,11 @@
>
> fork는 next-step의 저장소를 자신의 계정으로 복사하는 기능이다. 앞으로 모든 미션은 자신의 계정 아래에 있는 저장소를 활용해 진행한다.
* fork는 next-step 저장소 우측 상단의 fork 버튼을 활용한다.
- fork는 next-step 저장소 우측 상단의 fork 버튼을 활용한다.

![fork](./images/etc/fork.png)

* fork를 완료한 후의 상태는 다음과 같다.
- fork를 완료한 후의 상태는 다음과 같다.

![fork my repo](./images/fork_my_repo.png)

Expand All @@ -40,7 +40,7 @@
>
> clone 명령은 github.com에 존재하는 저장소를 자신의 노트북 또는 PC로 복사하는 과정이다.
* 터미널에서 다음 명령을 입력한다.
- 터미널에서 다음 명령을 입력한다.

```
git clone -b {본인_아이디} --single-branch https://github.com/{본인_아이디}/{저장소 아이디}
Expand All @@ -52,7 +52,7 @@ cd {저장소 아이디}
ex) cd java-racingcar
```

* clone을 완료한 후의 상태는 다음과 같다.
- clone을 완료한 후의 상태는 다음과 같다.

![clone repository](./images/clone_repository.png)

Expand All @@ -62,32 +62,32 @@ ex) cd java-racingcar
>
> 브랜치를 생성하는 이유는 실무에서 프로젝트를 진행할 때와 같은 방법으로 기능을 구현하고, 리뷰하는 경험을 전달하기 위함이다.
* 터미널에서 다음 명령을 입력해 브랜치를 생성한다.
- 터미널에서 다음 명령을 입력해 브랜치를 생성한다.

```
git checkout -b 브랜치이름
ex) git checkout -b step1
```

* 브랜치를 생성한 후의 상태는 다음과 같다.
- 브랜치를 생성한 후의 상태는 다음과 같다.

![checkout step1](./images/checkout_step1.png)

---
5. 통합개발도구(Eclipse 또는 IntelliJ)로 가져오기(import)
> 미션 진행을 위해 자신이 사용하고 있는 통합개발도구로 가져오기 한다. 이 문서는 IntelliJ를 기준으로 한다.
* IntelliJ를 시작
* 다음 화면에서 Import Project
- IntelliJ를 시작
- 다음 화면에서 Import Project

![import1](./images/etc/import1.png)

* 앞에서 clone한 폴더를 선택한다.
* 다음 화면과 같이 "Import Project from external model" 선택 -> Gradle을 선택 -> Next
- 앞에서 clone한 폴더를 선택한다.
- 다음 화면과 같이 "Import Project from external model" 선택 -> Gradle을 선택 -> Next

![import2](./images/etc/import2.png)

* 다음 화면에서 Finish 버튼을 클릭해 가져오기를 완료한다.
- 다음 화면에서 Finish 버튼을 클릭해 가져오기를 완료한다.

---
6. 기능 구현
Expand All @@ -103,7 +103,7 @@ git add -A(또는 .) // 변경된 전체 파일을 한번에 반영
git commit -m "메시지" // 작업한 내용을 메시지에 기록
```

* 기능 구현을 완료하고 add, commit 명령을 실행한 후의 상태는 다음과 같다.
- 기능 구현을 완료하고 add, commit 명령을 실행한 후의 상태는 다음과 같다.

![add commit1](./images/add_commit_1.png)

Expand All @@ -116,7 +116,7 @@ git push origin 브랜치이름
ex) git push origin step1
```

* push 명령을 실행한 후의 상태는 다음과 같다.
- push 명령을 실행한 후의 상태는 다음과 같다.

![push1](./images/push1.png)

Expand Down
24 changes: 12 additions & 12 deletions codereview/review-step2.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,29 +11,29 @@
ex) 미션을 진행한 javajigi/java-racingcar step1 브랜치 => next-step/java-racingcar javajigi 브랜치로 pull request를 보낸다.
```

* 브라우저에서 github 저장소에 접근한다.
* 브랜치를 작업 브랜치로 변경한다(앞 단계의 예에서는 step1).
* 브랜치 오른쪽에 있는 "New pull request" 버튼을 클릭한다.
- 브라우저에서 github 저장소에 접근한다.
- 브랜치를 작업 브랜치로 변경한다(앞 단계의 예에서는 step1).
- 브랜치 오른쪽에 있는 "New pull request" 버튼을 클릭한다.

![pull request 보내기](./images/etc/pull_request_1.png)

* 왼쪽 next-step 저장소의 브랜치를 자신의 github 계정 브랜치로 변경한다.
* 현재 미션에서 작업한 내용을 입력하고 "Create pull request" 버튼을 클릭해 pull request를 보낸다.
- 왼쪽 next-step 저장소의 브랜치를 자신의 github 계정 브랜치로 변경한다.
- 현재 미션에서 작업한 내용을 입력하고 "Create pull request" 버튼을 클릭해 pull request를 보낸다.

![pull request 브랜치 변경](./images/etc/pull_request_2.png)

* pull request를 보냈을 때의 상태는 다음과 같다.
- pull request를 보냈을 때의 상태는 다음과 같다.

![pull request](./images/pull_request.png)

---
2. pull request를 보낸 후 리뷰어에게 리뷰 요청을 한다.
* NextStep(https://edu.nextstep.camp) 에 접속해 자신이 수강하고 있는 강의로 이동한다.
* 우측 상단의 `리뷰 요청` 클릭하면 자신에게 배정된 리뷰어에게 리뷰 요청 알림이 간다.
- NextStep(https://edu.nextstep.camp) 에 접속해 자신이 수강하고 있는 강의로 이동한다.
- 우측 상단의 `리뷰 요청` 클릭하면 자신에게 배정된 리뷰어에게 리뷰 요청 알림이 간다.

![리뷰어에게 리뷰 요청](./images/etc/request_review.png)

* 리뷰 요청이 정상적으로 동작하면 리뷰어에게 slack으로 알림 요청이 간다.
- 리뷰 요청이 정상적으로 동작하면 리뷰어에게 slack으로 알림 요청이 간다.

---
3. pull request에 대해 승인이 되지 않고 수정 요청 피드백을 받으면 피드백 받은 내용을 반영한다. 만약, pull request가 승인이 되어 next-step 저장소에 통합(merge)이 된다면 [코드리뷰 요청 3단계](./review-step3.md)를 진행한다.
Expand All @@ -55,18 +55,18 @@ git push origin 브랜치이름
ex) git push origin step1
```

* 새롭게 add, commit을 진행하는 경우 새로운 버전이 생성되어 상태는 다음과 같다.
- 새롭게 add, commit을 진행하는 경우 새로운 버전이 생성되어 상태는 다음과 같다.

![add commit2](./images/add_commit_2.png)

* 새로운 버전을 push한 상태는 다음과 같다.
- 새로운 버전을 push한 상태는 다음과 같다.

![push2](./images/push2.png)

---
5. 몇 번의 피드백을 주고 받은 후 승인이 되어 next-step 저장소에 통합(merge)이 된다면 [코드리뷰 요청 3단계](./review-step3.md)를 진행한다.

* pull request가 승인이 되어 통합이 된 후의 상태는 다음과 같다.
- pull request가 승인이 되어 통합이 된 후의 상태는 다음과 같다.

![approve pr](./images/approve_pr.png)

Expand Down
18 changes: 9 additions & 9 deletions codereview/review-step3.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ ex) git checkout javajigi
ex) git branch -D step1
```

* checkout을 통해 브랜치를 변경한 후 작업 브랜치를 삭제한 후의 상태는 다음과 같다.
- checkout을 통해 브랜치를 변경한 후 작업 브랜치를 삭제한 후의 상태는 다음과 같다.

![checkout delete](./images/checkout_delete.png)

Expand All @@ -30,7 +30,7 @@ ex) git remote add upstream https://github.com/next-step/java-racingcar.git
// 위와 같이 next-step 저장소를 추가한 후 전체 remote 저장소 목록을 본다.
git remote -v
```
* **git remote add** 명령은 최초 1회만 진행하면 된다.
- **git remote add*- 명령은 최초 1회만 진행하면 된다.

![add upstream](./images/add_upstream.png)

Expand All @@ -45,7 +45,7 @@ git fetch upstream {본인_아이디}
ex) git fetch upstream javajigi
```

* fetch 명령을 실행한 후의 상태를 다음과 같다.
- fetch 명령을 실행한 후의 상태를 다음과 같다.

![fetch upstream](./images/fetch_upstream.png)

Expand All @@ -62,7 +62,7 @@ git rebase upstream/본인_아이디
ex) git rebase upstream/javajigi
```

* rebase 명령을 실행한 후의 상태는 다음과 같다.
- rebase 명령을 실행한 후의 상태는 다음과 같다.

![rebase upstream](./images/rebase_upstream.png)

Expand All @@ -77,7 +77,7 @@ git checkout -b 브랜치이름
ex) git checkout -b step2
```

* checkout 명령으로 새로운 브랜치를 생성한 후의 상태는 다음과 같다.
- checkout 명령으로 새로운 브랜치를 생성한 후의 상태는 다음과 같다.

![checkout step2](./images/checkout_step2.png)

Expand All @@ -96,9 +96,9 @@ ex) git checkout -b step2
>
> 충돌을 해결하려면 어떻게 해야 하나요?
* `git checkout 본인_아이디`(예: git checkout javajigi) 명령을 실행해 계정 브랜치로 이동한다.
* `git reset --hard upstream/본인_아이디`(예: git reset --hard upstream/javajigi)
* `git checkout 기능_브랜치`(예: git checkout step2)
* `git merge 본인_아이디`(예: git merge javajigi)
- `git checkout 본인_아이디`(예: git checkout javajigi) 명령을 실행해 계정 브랜치로 이동한다.
- `git reset --hard upstream/본인_아이디`(예: git reset --hard upstream/javajigi)
- `git checkout 기능_브랜치`(예: git checkout step2)
- `git merge 본인_아이디`(예: git merge javajigi)

위 명령을 실행하면 충돌이 발생할 것이다. 충돌을 해결한 후 add, commit, push를 진행하면 PR 충돌이 해결되어 리뷰 요청을 할 수 있다.
4 changes: 2 additions & 2 deletions playground/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ ex) git checkout -b javajigi
4. 통합개발도구(Eclipse 또는 IntelliJ)로 가져오기(import)
> 미션 진행을 위해 자신이 사용하고 있는 통합개발도구로 가져오기 한다. 이 문서는 IntelliJ를 기준으로 한다.
* IntelliJ를 시작
* 다음 화면에서 Open 버튼을 클릭해 앞에서 clone한 폴더를 선택해 프로젝트를 import한다.
- IntelliJ를 시작
- 다음 화면에서 Open 버튼을 클릭해 앞에서 clone한 폴더를 선택해 프로젝트를 import한다.

![import](./images/import.png)

Expand Down
18 changes: 9 additions & 9 deletions precourse/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,17 +52,17 @@ ex) git checkout -b javajigi
4. 통합개발도구(Eclipse 또는 IntelliJ)로 가져오기(import)
> 미션 진행을 위해 자신이 사용하고 있는 통합개발도구로 가져오기 한다. 이 문서는 IntelliJ를 기준으로 한다.
* IntelliJ를 시작
* 다음 화면에서 Import Project
- IntelliJ를 시작
- 다음 화면에서 Import Project

![import1](./images/import1.png)

* 앞에서 clone한 폴더를 선택한다.
* 다음 화면과 같이 "Import Project from external model" 선택 -> Gradle을 선택 -> Next
- 앞에서 clone한 폴더를 선택한다.
- 다음 화면과 같이 "Import Project from external model" 선택 -> Gradle을 선택 -> Next

![import2](./images/import2.png)

* 다음 화면에서 Finish 버튼을 클릭해 가져오기를 완료한다.
- 다음 화면에서 Finish 버튼을 클릭해 가져오기를 완료한다.

---
5. 기능 구현
Expand Down Expand Up @@ -103,13 +103,13 @@ push 명령을 실행한 후의 상태는 다음과 같다.
ex) 미션을 진행한 javajigi/java-baseball javajigi 브랜치 => next-step/java-baseball master 브랜치로 pull request를 보낸다.
```

* 브라우저에서 github 저장소에 접근한다.
* 브랜치를 작업 브랜치로 변경한다(앞 단계의 예에서는 javajigi).
* 브랜치 오른쪽에 있는 "New pull request" 버튼을 클릭한다.
- 브라우저에서 github 저장소에 접근한다.
- 브랜치를 작업 브랜치로 변경한다(앞 단계의 예에서는 javajigi).
- 브랜치 오른쪽에 있는 "New pull request" 버튼을 클릭한다.

![pull request 보내기](./images/pull_request_1.png)

* 현재 미션에서 작업한 내용을 입력하고 "Create pull request" 버튼을 클릭해 pull request를 보낸다.
- 현재 미션에서 작업한 내용을 입력하고 "Create pull request" 버튼을 클릭해 pull request를 보낸다.

![pull request 브랜치 변경](./images/pull_request_2.png)

Expand Down
63 changes: 43 additions & 20 deletions reviewguide/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,41 +10,64 @@

---
#### 피드백 시간 및 백업
* 리뷰 요청 후 24시간 이내에 피드백하는 것을 원칙으로 한다.
* 24시간 이내에 리뷰 요청이 힘든 상황이 발생하면 박재성에게 slack을 통해 리뷰 요청을 한다.
- 리뷰 요청 후 24시간 이내에 피드백하는 것을 원칙으로 한다.
- 24시간 이내에 리뷰 요청이 힘든 상황이 발생하면 박재성에게 slack을 통해 리뷰 요청을 한다.

---
## 리뷰어 가이드(넥스트스텝)
* 한번에 나쁜 습관을 모두 바꾸려는 욕심을 버려라.
* 각 단계별 Request Changes는 2회 이내로 한다.
* 반영할 피드백 내용이 큰 변화가 아니라면 merge 후 다음 단계에서 반영하도록 유도한다.
* 부족한 점이 있더라도 merge함으로써 다음 단계에 도전하도록 유도한다.
* 나쁜 습관을 바꾸는 것보다 포기하지 않도록 동기부여하는 것이 더 중요하다.
- 친절한 답변보다 질문을 하는 것이 리뷰이에게 더 도움이 될 수 있다. 리뷰이의 성장을 위한 질문을 하라
- 한번에 나쁜 습관을 모두 바꾸려는 욕심을 버려라.
- 너무 꼼꼼한 리뷰를 하느라 늦게 피드백하는 것보다 부족함이 있어도 빠른 피드백이 더 의미있을 수 있다.
- 각 단계별 Request Changes는 2회 이내로 한다.
- 반영할 피드백 내용이 큰 변화가 아니라면 merge 후 다음 단계에서 반영하도록 유도한다.
- 부족한 점이 있더라도 merge함으로써 다음 단계에 도전하도록 유도한다.
- 나쁜 습관을 바꾸는 것보다 포기하지 않도록 동기부여하는 것이 더 중요하다.
- 너무 친절한 리뷰어가 있다면 슬랙의 리뷰어 파출소에 신고한다.

---
## 리뷰어 가이드(해외 서비스 자료)
* 코드는 단순하게(Simplify code)
* 떠먹여주지 않는 친절함을 연습하라(Practice kindness)
* 이유와 함께 예시로 설명하라(Explain why&with examples)
* 학습자와의 연결(Connect Learners)
* 코드방식을 통일하라 (Style Consistantly)
* 리뷰를 위한 리뷰를 억지로 하지마라. 대신 피드백할 게 없으면 칭찬하라.
* 구현을 잘한 부분에 대해 칭찬의 메시지를 남겨라.
* 내가 결정하지 말고 상대방이 선택하도록 하라.
- 코드는 단순하게(Simplify code)
- 떠먹여주지 않는 친절함을 연습하라(Practice kindness)
- 이유와 함께 예시로 설명하라(Explain why&with examples)
- 학습자와의 연결(Connect Learners)
- 코드방식을 통일하라 (Style Consistantly)
- 리뷰를 위한 리뷰를 억지로 하지마라. 대신 피드백할 게 없으면 칭찬하라.
- 구현을 잘한 부분에 대해 칭찬의 메시지를 남겨라.
- 내가 결정하지 말고 상대방이 선택하도록 하라.

---
## 리뷰어 선언문
> 이 선문문은 리뷰어가 현장의 개발 업무와 리뷰를 병행할 수 있도록 리뷰의 부담을 줄이기 위함이다.
- 하나! 가급적 질문만 하겠다.
- 둘! 열심히 하는 것 같은 리뷰어를 감시하고 고발하겠다
- 셋! 잘하려는 사람에게 비난을 하겠다.
- 넷! 보이면 내가 먼저 선빵을 날리겠다.
- 다섯! 한 pr의 코드 리뷰에 30분의 시간을 넘게 쓴 것 같으면 신고한다.
- 여섯! 함께 자라기에 이어 함께 버리기
- 일곱! 너무 과하게 친절한 리뷰어를 감시하고, 역질문 스킬을 공유한다.

---
## 리뷰어 파출소(슬랙 채널)에 신고할 목록
- 3회 이상 핑퐁 멈춰! ✋🏻
- 코드를 제외하고 5줄 이상의 친절한 답변 스톱! 🚫
- 스텝1에서 코멘트가 20개 이상 멈춰! 🕺🏻
- 질문채널로 질문을 안보내면 어쩔티비! 📺
- 지나치게 열린 질문 또는 답을 요구하는데 역질문 안한다고!

---
## 리뷰 팁

---
#### IntelliJ에서 PR에다 바로 코드리뷰하기
* GitHub의 PR에서 리뷰할 수도 있지만 IntelliJ에서 PR에다 바로 코드리뷰하는 것이 가능함
* IntelliJ에서 미션 코드도 실행해 보고 코드 리뷰도 가능함
* [IntelliJ에서 PR에다 코드리뷰하기 문서 참고](https://blog.jetbrains.com/idea/2020/05/intellij-idea-2020-2-early-access-program-is-starting)
- GitHub의 PR에서 리뷰할 수도 있지만 IntelliJ에서 PR에다 바로 코드리뷰하는 것이 가능함
- IntelliJ에서 미션 코드도 실행해 보고 코드 리뷰도 가능함
- [IntelliJ에서 PR에다 코드리뷰하기 문서 참고](https://blog.jetbrains.com/idea/2020/05/intellij-idea-2020-2-early-access-program-is-starting)

---
#### 반복적인 피드백 정리하기
* 코드 리뷰를 하다보면 반복적인 코드 리뷰가 발생한다.
* 매번 같은 메시지를 반복적으로 타이핑하기보다 한번 작성한 후에 copy & paste로 해결한다.
- 코드 리뷰를 하다보면 반복적인 코드 리뷰가 발생한다.
- 매번 같은 메시지를 반복적으로 타이핑하기보다 한번 작성한 후에 copy & paste로 해결한다.

**예시**
```
Expand Down
Loading

0 comments on commit 0e5fd18

Please sign in to comment.