DAY 9
오늘 읽은 범위 : 9장, 단위 테스트
책에서 기억하고 싶은 내용을 써보세요
- 애자일과 TDD 덕택에 단위 테스트를 자동화하는 프로그래머들이 이미 많아졌으면 점점 더 늘어나는 추세다. (p.155)
- TDD가 실제 코드를 짜기 전에 단위 테스트부터 짜라고 요구한다는 사실을 모르는 사실을 모르는 사람은 없으리라(p.155)
- TDD 법칙 세 가지
1. 첫째 법칙 : 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
2. 둘째 법칙 : 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.
3. 셋째 법칙 : 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.
위 세 가지 규칙을 따르면 개발과 테스트가 대략 30초 주기로 묶인다. (p.155) - 테스트 코드는 실제 코드 못지 않게 중요하다. (p.157)
- 테스트 케이스가 없으면 실제 코드를 유연하게 만드는 버팀목도 사라진다. 코드에 유연성, 유지보수성, 재사용성을 제공하는 버팀목이 바로 단위 테스트다. (p.157)
- 깨끗한 테스트 코드를 만들려면? -중략- 가독성, 가독성, 가독성. 어쩌면 가독성은 실제 코드보다 테스트 코드에 더더욱 중요하다. 명료성, 단순성, 풍부한 표현력이 필요하다. 테스트 코드는 최소의 표현으로 많은 것을 나타내야 한다. (p.158)
- 테스트 당 개념 하나 어쩌면 "테스트 함수마다 한 개념만 테스트하라" 는 규칙이 더 낫겠다 .(p.166)
- F.I.R.S.T
1. 빠르게(Fast) : 테스트는 빨라야 한다. 테스트는 빨리 돌아야 한다는 말이다.
2. 독립적으로(Independent) : 각 테스트트 서로 의존하면 안 된다. 한 테스트가 다음 테스트가 실행될 환경을 준비해서는 안된다.
3. 반복가능하게(Repeatable) : 테스트는 어떤 환경에서도 반복 가능해야 한다
4. 자가검증하는(Self-Validationg) : 테스트는 부울(bool) 값으로 결과를 내야 한다.
5. 적시에(Timely) : 테스트는 적시에 작성해야 한다.
오늘 읽은 소감은? 떠오른 생각을 가볍게 적어보세요
- 개인 프로젝트를 할때 어떤 구조변경이 필요해서 구조변경을 했는데 계속 오류가 떠서 머리가 아팠던 적이 있었다. 다시 처음으로 돌려서 하나하나 재구성하면서 어디서 잘못 되었는지 알아내야 하였는데. 이처럼 테스트 케이스를 잘 작성해 놓는다면, 변경 후 테스트 케이스를 돌려 확인 할 수 있으므로 굉장히 도움이 될 것 같다.
- 테스트 케이스를 만드는 방법도 전혀 알지 못해서 막막 했는데 그래도 어느정도 틀을 잡아 주어서 만족스럽다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요
- 애자일이란?
- 도메인에 특화된 언어(DSL)란?
애자일 # 소프트웨어 개발 방법론의 하나로, 처음부터 끝까지 계획을 수립하고 개발하는 폭포수(Waterfall) 방법론과는 달리 개발과 함께 즉시 피드백을 받아서 유동적으로 개발하는 방법이다. 정식 명칭은 애자일 소프트웨어 개발(Agile Software Development). 한국에서는 주로 애자일 방법론이라고 부른다. 켄트 벡이 주창한 익스트림 프로그래밍(XP, Extreme Programming)과 테스트 주도 개발이 대표적이다.
DSL란 # 도메인 특화언어Domain-specific language(DSL)는 특정 기능이나 영역을 위해 만들어진 언어이고 아래와 같은 다양한 작업을 처리하기 위해 소프트웨어 개발에 많이 사용된다.
오늘 읽은 다른 사람의 TIL
Sohyun Lim님의 블로그 : 예제 코드가 많아 읽기 쉽다. 나도 예제코드가 필요하지 않나 고민이 된다.
https://blog.naver.com/d_s_mind/223500674925
[노마드개발자북클럽] 7. 오류 처리
오늘 TIL 3줄 요약 오류 처리를 프로그램 논리와 분리해 작성하는 게 좋다 메소드에서 null은 반환하지...
blog.naver.com
Eichi님의 블로그 : 나는 시간이 쫓겨 읽고 쓰는 것만 해도 힘든데 정리까지 깔끔하게 하시는 것 같아서 좀 부럽다.
https://handh0413.github.io/posts/%ED%81%B4%EB%A6%B0%EC%BD%94%EB%93%9C07%EC%9E%A5/
Clean Code 07장. 오류 처리
TIL(Today I Learn)
handh0413.github.io
Daniel Kim 님의 블로그 : 나도 노션을 이용해서 깔끔하게 작성하고 싶은데 노션에 대한 심적인 진입장벽이 좀 있어서 시도 못하고 있는데 이래저래 보면서 많은 영감을 받고 있다.
https://danielkim328.notion.site/8-2024-07-02-fd992f602025436b914cc114f61f2cb7
#8 2024.07.02. | Notion
오늘 읽은 범위
danielkim328.notion.site
'Today I Learn' 카테고리의 다른 글
[TIL] "클린코드" 11일차 (0) | 2024.07.12 |
---|---|
[TIL] "클린코드" 10일 차 (0) | 2024.07.09 |
[TIL] "클린코드" 8일차 (1) | 2024.07.03 |
[TIL] "클린코드" 7일차 (1) | 2024.07.01 |
[TIL] "클린코드" 6일차 (0) | 2024.06.30 |