😄
Clean Code - TIL 08. 경계 & TIL 09. 단위 테스트
May 07, 2022
TIL 08. 경계
경계 TIL 2줄 요약
- 외부 코드(외부 라이브러리 API)를 사용할 땐, 짐 뉴커크가 얘기한 학습 테스트의 방식으로 초점을 맞추자. (147p)
- 경계에 위치하는 코드는 깔끔히 분리한다. (외부 라이브러리에 의존하지 않게 우리 코드를 작성하라.) (152p)
TIL (Today I Learned) 날짜
2022.05.07
오늘 읽은 범위
8장. 경계
책에서 기억하고 싶은 내용을 써보세요.
- 학습 테스트는 공짜 이상이다.(149p ~ 150p) 학습 테스트를 이용한 학습이 필요하든 그렇지 않든, 실제 코드와 동일한 방식으로 인터페이스를 사용하는 테스트 케이스가 필요하다. 이런 경계 테스트가 있다면 패키지의 새 버전으로 이전하기 쉬워진다. 그렇지 않다면 낡은 버전을 필요 이상으로 오랫동안 사용하려는 유혹에 빠지기 쉽다. 낡은 버전을 필요 이상으로 사용하려는 유혹에 빠지지 않기 위한 방법으로 학습 테스트를 가급적이면 Production 코드와 유사하게 짜는 것이 중요하다 생각하게 하는 내용이었다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
- 앞으로 더 어려운 내용이 있을 수도 있지만, 개인적으로 1장부터 8장까지의 내용 중 이번 8장의 내용이 가장 받아들이기 힘든 내용이라 생각한다. 내 코드를 설계하기 위해 협업하는 다른 팀의 코드의 예상 작성 구도를 생각해야 된다는 내용이라 이해했다. (전체적인 설계뿐만이 아니긴 하지만 말이다.) 내가 설계하려는 프로젝트도 정답일 지 모르겠는 상황에 다른 팀의 API 결과물까지 예상할 수 있으려면 적어도 관련된 도메인 지식, 경험이 풍족할 때 우러나오지 않을까라는 생각을 하게 만든 내용이었다.
궁금한 점?
- Adapter 패턴..에 대해 더 알아야 한다..
TIL 09. 단위 테스트
단위 테스트 TIL 3줄 요약
- 테스트 코드는 사고와 설계와 주의가 필요하기에, 실제 코드 못지 않게 깨끗하게 짜야한다.(157p)
- 테스트 함수 하나 = 개념 하나만 테스트를 가급적 지켜라. (167p)
- F.I.R.S.T를 기억하고 적용하려 노력하라. (167p)
TIL (Today I Learned) 날짜
2022.05.07
오늘 읽은 범위
9장. 단위 테스트
책에서 기억하고 싶은 내용을 써보세요.
- F.I.R.S.T (167p)
- Fast (빠르게) - 테스트는 빨리 돌아야 한다.
- Independent (독립적으로) - 각 테스트는 서로 의존하면 안 된다. 의존된 테스트에서 하나라도 실패하면, 나머지도 실패하며 실패 원인을 진단하기 어려워진다. 또한 후반 테스트가 찾아내야 할 결함이 숨겨질 확률이 높다.
- Repeatable (반복적으로) - 테스트는 어떤 환경에서도 반복 가능해야 한다. 일상 생활뿐만 아니라 네트워크 연결이 없는 환경에서도 테스트를 진행할 수 있어야 한다.
- Self-Validation (자가검증) - 테스트의 결과 값은 True / False 두 가지 중 하나다. 테스트에 긴 로그 파일이 있는 것은 바람직하지 못하다.
- Timely (적시에) - 단위 테스트는 테스트하려는 실제 코드를 구현하기 직전에 구현한다. 순서가 뒤바뀔 경우, 실제 코드를 테스트 하기 위한 단위 테스트 코드 작성이 어려울 수도 있고, 이미 작성된 실제 코드가 단위 테스트를 진행하기에 불가능한 설계일 수도 있다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
- 솔직하게 테스트 코드 작성을 제대로 해 본 적이 없다. 그저 테스트 코드를 어떤 식으로 짜는 것이다라는 걸 알기 위한 강의에서 따라치고, 쉬운 테스트 코드 작성만을 해 봤기 때문이다. 가장 기억하고 싶은 내용 FIRST 원칙에 맞춰 나만의 사이드 프로젝트에서라도 작성을 시작하면 도움되지 않을까… 싶다.