HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🍗
[New] 조규현팀
/
🏪
TS Store
/
🛰️
코드 리뷰
🛰️

코드 리뷰

Person
완료율%
상태
완료
나의 블로그
Think Sharing (TS)
🛰️
지속가능한 SW 개발을 위한 코드리뷰
주제목차내용
 

주제

[LIVE] 지속가능한 SW 개발을 위한 코드리뷰 :: 4월 우아한테크세미나
발표, 어떠셨나요? 설문링크]👉https://forms.gle/PMYzDJLxms4s8zZ96왜 코드리뷰를 해야할까요? 왜 코드리뷰는 어려울까요?지속가능한 SW개발을 위해!🙌 효율적인 Pull Request 작성기법과 리뷰기법, 코드리뷰를 잘하기 위해 필요한 기술 등에 대해서...
[LIVE] 지속가능한 SW 개발을 위한 코드리뷰 :: 4월 우아한테크세미나
https://www.youtube.com/watch?v=ssDMIcPBqUE
[LIVE] 지속가능한 SW 개발을 위한 코드리뷰 :: 4월 우아한테크세미나
코드 리뷰 잘하는 방법

목차

  • 팀원들이 봤으면 하는 항목
  • 코드 리뷰의 목적
  • 왜 코드 리뷰가 어려운가?
  • 효율적인 PR 방법
  • 피드백 방법
  • 코드 리뷰를 하는 아주 재밌는 방법
  • 코드 리뷰 문화 정착의 어려움 / 극복방법
  • 코드 리뷰 효과
  • 코드 리뷰를 잘 하기 위해 필요한 기술들
  • FAQ

내용

  • 팀원들이 봤으면 하는 항목
      • 병연님의 PR 템플릿 논제가 여기에 해당하지 않았을까 싶네요. 👀
    • ← [효율적인 PR 방법]
      • 🤔 PR Point나 궁금한 점을 이걸로 활용하면 어떨까요?
    • ← [효율적인 리뷰 방법]
      • 🤔 이것도 리뷰 문화에 추가하면 어떨가요?
    • ← [효율적인 리뷰 방법]
      • 👀 이거는 필요 없을거 같은데? 싶은 내용이네요.
    • , ← [피드백 방법]
      • 🤔 이것도 리뷰 문화에 추가하면 어떨가요?
코드 리뷰의 목적
  • 주목적: 품질 문제 검수(버그, 장애)
  • 더 나은 코드 품질: 아키텍처 속성 개선을 위한 코드 개선(향후 변경 비용 개선)
  • 학습 및 지식 전달: 코드, 해결책 등과 같은 관련된 지식 공유 기여
    • 공유(주고 받는 학습)를 통한 역량 증대 및 성장
      • → 리뷰어들도 어떻게 소통해야 저 사람이 더 잘 받아들이는구나 와 같은 소프트 스킬 지식 Get! (친절한 공감능력, 가르치는 방법 등)
    • 동기 부여
      • → 잘하는 사람 걸 보면 더 잘해야 겠군 하는 동기 부여가 된다.
  • 상호 책임감 증대
    • 집단 코드 오너십 및 결속 증대
    • 내가 하고 있는 일에 관심을 가져주는 것
    • 팀에서 일어나는 일 공유. 내 동료는 무엇을 하나? 팀웍
  • 설계 개선 제안
  • 개발 문화 개선
왜 코드 리뷰가 어려운가?

PR은 작성자를 위함이 아닌 리뷰어 들을 위한 것이다.

  • 좋은 Pull Request 예
    • notion image
    • 프랑스의 수학 철학자 파스칼의 일화
      • “미안합니다. 편지를 짧게 쓸 시간이 없어서 길게 씁니다.”
  • 코드 리뷰는
    • 지식 / 공학적 결정을 공유하는 기회
    • 공유(잘한 것, 아쉬운 것)을 통해 서로의 지식/경험을 나누며 상호 학습을 통한 역량 증대 수단
    • 코드 토의를 개인적 공격으로 받아드리면 물거품
  • 생각을 글로 전달하는 것에 대한 어려움
    • → 오해의 위험이 크다. (음성 톤, 표정의 부재)
      ⇒ 피드백을 조심스럽게 표현하는 것이 중요!
효율적인 PR 방법
  • 지루한 작업은 컴퓨터로 처리
  • 스타일 가이드를 통해 스타일 논쟁을 해소 → 좋은거 하나 골라서 통일 해라..
  • PR을 올릴 때 주석 달기
    • notion image
      👀 PR 포인트나 궁금한 점을 이렇게 작성 할 수 있을듯?
  • 모두를 포함하라
  • 의미있는 커밋으로 분리
  • 코드를 읽는 것은 인지적 부담이 되는 고수준의 집중이 요구되는 작업
    • 컴퓨터가 할 수 있는 일에 이런 노력을 낭비하지 말라
  • Formatting Tool
    • 공백, 들여쓰기 오류 등
    • 별도의 커밋/PR로 분리.
효율적인 리뷰 방법
  • 코드 리뷰를 높은 우선순위로
    • 저자는 리뷰 종료될 때까지 대기(Blocked)함
    • 빨리 리뷰를 종료해주는 것이 우리 팀원들에게 도움이 된다.
  • 리뷰를 바로 시작하면 선순환됨
    • 바로 시작해서 빨리 끝내면 → 언제, 어떻게 올려야 더 빨리 리뷰 할수 있구나? Get!
    • 이상적으로는 수분 내로... 👀  왓더..헬
  • 리뷰 라운드의 최대 시간은 하루
    • 우선순위 높은 업무로 1일 내 불가하면 다른 리뷰어 지정
    • 월 1회 이상 재지정을 해야 한다면 속도를 줄여서 건강한 개발 관습을 유지할 수 있어야 함.
notion image
  • “If it hurts, do it more often”
    • → 리뷰가 힘듦? 어려움? 그럼 그게 없어질때 까지 하삼.
  • 저 30분 30분 동안 PR 리뷰를 할 수있게 하기 위해서는 변경이 적도록 노력할 것이다.

고수준으로 시작, 저수준으로 내려가라

  • 너무 많으면 ‘내가 이렇게 잘못했다고?`라고 느낄 수 있으니 적당히...

예제 코드 제공에 관대해라

  • 별로 친하지 않은 사람에게 비싼 선물 주면 부담 스럽잖아유?
    • → 너무 긴 예제, 많은 예제들은 자제하자

리뷰의 범위를 존중하라

효율적인 리뷰 방법
notion image
  • 처음하는 사람들이 실수 하는것
    • 리뷰 범위를 벗어난 것은 내비두자. (위의 예제의 9를 eight로 쓴것 마냥)
  • 두 번째꺼는 안의 구문이 사라졌기 때문에 메서드명의 변경이 필요하다.
    • → 요런건 또 넣어라!
해야 될것과 안해야 될것을 구분하라!

태그를 활용

효율적인 리뷰 방법
notion image
  • 우리들끼리 정해서, 중요치 않은 키워드를 작성해서 무시할 수 있도록 할수도 있다.
    • nitpicking? → (미구)사소한 것을 문제시하는(함), 남의 흠을 잡아내는(냄)
  • 그런데 이런 것들도 코드리뷰 통해서 다 고친다고 함..
결함이 아니어도 리뷰어는 항상 더 개선할 수 있는 의견을 자유롭게 남길 수 있어야 한다!
→ 교육적인 목적, 지속적으로 기술을 연마하는 것을 돕는 목적

한두 등급만 코드 레벨을 올리는 것을 목표로

  • A+가 D등급을 보고 ‘왜 A+로 못했냐!?’ 라고 하는 것보다 한단계 올릴것으로 해줘야 한다.

 
피드백 방법

진정한 칭찬을 해라

피드백 방법
notion image
  • 칭찬도 해라

좋은 피드백 예시

피드백 방법
notion image

의견이 아니라 원칙에 기반하여 피드백하라.

피드백 방법
notion image

반복적인 패턴에 대해서 피드백을 제한하라

  • 동일 패턴에 대해서는 2~3개 정도의 예를 언급하삼

교착상태를 적극적으로 처리해라

  • 만나서 예기하라
  • 구글에서 실제로 이거때문에 퇴사한 일이 있다고 함
 
코드 리뷰를 하는 아주 재밌는 방법

코드 리뷰를 하는 아주 재밌는 방법

추가적인 사례
notion image

코드 리뷰 문화 정착의 어려움 / 극복방법
Appendix
notion image

notion image

notion image
  • ‘담배 끊어라’ 예제
  • 모범이 되어라.
    • 백명석님도 라이브 코딩을 할때도 10번정도 연습하고 찍은 것도 있다고 함.
      • → 그만큼 더 노력해야 한다.

좋은 것을 우리 조직에게 전파하고 싶다? 당신이 잘해라!


notion image
  • 새로운 것을 도입한다고 해서 효과가 바로 오는것이 아니다!
코드 리뷰 효과
notion image
 
 
코드 리뷰를 잘 하기 위해 필요한 기술들

리팩터링

리팩터링을 한다고 하면서 이 책을 보지 않는게 이해되지 않는다.
notion image
notion image

Lagacy Code 다루기

notion image
  • 의존성을 깨서 테스트를 쉽게하는 방법들 등이 나온다고 함.

TDD & Clean Code

notion image
 
FAQ
notion image
notion image
notion image
notion image