본문 바로가기
개발자 소양 독서 도전기/클린코드

클린코드 8장. 경계, 9장. 단위 테스트

by vitaminFE 2024. 5. 18.

오늘 TIL 3줄 요약

  • 경계
    • 오픈소스 등의 외부코드를 나의 코드에서 호출하는 부분
    • 경계에서는 예상치 못한 일이 있을 수 있으니 최대한 깔끔하게 분리하여 관리하기
  • 단위테스트
    • 테스트코드는 가독성이 중요
    • 테스트 함수마다 한 개념만 테스트하기
    • F.I.R.S.T 원칙 (깨끗한 테스트가 따르는 다섯가지 규칙)

 

TIL (Today I Learned) 날짜

2024.05.16(목)~17(금)

 

오늘 읽은 범위

8장. 경계, 9장. 단위 테스트

 

책에서 기억하고 싶은 부분

8장 경계.

- 학습 테스트는 공짜 이상이다. 패키지 새 버전이 나온다면 학습 테스트를 돌려 차이가 있는지 확인한다. .... 경계 테스트가 있다면 패키지의 . 새버전으로 이전하기 쉬워진다. 그렇지 않다면 낡은 버전을 필요 이상으로 오랫동안 사용하려는 유혹에 빠지기 쉽다.

 

 

9장. 단위 테스트

- TDD 세 가지 법칙

 1) 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.

 2) 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.

 3) 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.

 

- F.I.R.S.T (깨끗한 테스트가 따르는 다섯가지 규칙)

 1) Fast 빠르게 : 테스트는 빨리 돌아야 한다. 테스트가 느리면 자주 돌릴 엄두를 못 낸다

 2) Independent 독립적으로 : 각 테스트는 서로 의존하면 안 된다. 각 테스트는 독립적으로 그리고 어떤 순서로 실행해도 괜찮아야 한다.

 3) Repeatable 반복가능하게 : 테스트는 어떤 환경에서도 반복 가능해야 한다. 테스트가 돌아가지 않는 환경이 하나라도 있다면 테스트가 실패한 이유를 둘러댈 변명이 생긴다.

 4) Self-Validating 자가검증하는 : 테스트는 boolean 값으로 결과를 내야 한다. 성공 아니면 실패

 5) Timely 적시에 : 테스트는 적시에 작성해야 한다. 단위 테스트는 테스트하려는 실제 코드를 구현하기 직전에 구현한다.

 

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요.

9장의 가장 마지막 단락

이 장은 주제를 수박 겉핥기 정도로만 훑었다. 사실상 깨끗한 테스트 코드라는 주제는 책 한 권을 할애해도 모자랄 주제다. 

 

테스트 코드에 대해 경험이 없다보니 책의 내용이 깊이 와닿진 않았다.

리액트의 Jest와 같은 테스트 라이브러리는 들어보기만 했지 구현하고 테스트는 직접 QA를 진행하고 있다.

다른 분들의 소감을 읽어보니 먼 미래에는 기회가 되면 공부해보고 싶다.

 

어려운 개념

새로운 클래스로 경계를 감싸거나 Adapter 패턴을 사용해 우리가 원하는 인터페이스를 패키지가 제공하는 인터페이스로 변환하자

 

오늘 읽은 다른 사람들의 TIL

https://nomadcoders.co/community/thread/3334

 

TIL-8 – 노마드 코더 Nomad Coders

Post on 노마드 코더 Community

nomadcoders.co

8장의 내용과 클린코드의 연관성에 대해 깊은 고찰이 인상깊었다.

 

https://nomadcoders.co/community/thread/3391

 

TIL-9 – 노마드 코더 Nomad Coders

Post on 노마드 코더 Community

nomadcoders.co

위와 동일한 분의 글인데, 깊이있는 글이라 생각이 들어 읽어보았다.

 

https://ash-brother-fd3.notion.site/TIL-CLEAN-CODE-9-a19f48a3dee34fcfac395b46fd475b18

깔끔한 정리

'개발자 소양 독서 도전기 > 클린코드' 카테고리의 다른 글

클린코드 직접 실습하기  (0) 2024.05.23
10장 클래스  (0) 2024.05.21
7장. 오류처리  (1) 2024.05.16
클린코드 6장 객체와 자료구조  (0) 2024.05.13
클린코드 5장. 형식 맞추기  (0) 2024.05.13