김시용
1. 📌 핵심 개념 정리
✅ 요약하기
각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다.
- TDD 법칙 세가지
- 실패 하는 단위 테스트를 작성할 때까지 실제 코드 작성하지 않는다.
- 컴파일은 실패하지 않으면서 실행이 실패하는 저도로만 단위 테스트 작성한다.
- 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.
이렇게 하면 방대한 테스트 코드가 나오므로 심각한 관리 문제를 유발하기도 함
- 깨끗한 테스트 코드
- 테스트 코드는 실제 코드 못지 않게 중요하다.
- 코드에 유연성, 유지보수성, 재사용성을 제공하는 버팀목이 바로 단위 테스트다.
- 테스트 코드는 실제 코드 처럼 가독성을 위해 명료성, 단순성, 풍부한 표현력 필요
- 단, 실제 코드만큼 효율적일 필요는 없다 -> 실제 환경과 테스트 환경은 다르기 때문에
ex) 임베디드 시스템인 경우 자원과 메모리가 많이 제한적이므로 StringBuffer 사용해야하지만 테스트 환경에서는 자원이 제한적일 가능성이 낮기에 테스트 코드는 StringBuffer가 보기 흉하므로 사용을 꺼린다. - 테스트 당 assert 하나, 개념 하나
- F.I.R.S.T
- Fast : 테스트는 빨라야 하다.
- Independent : 각 테스트는 서로 의존하면 안 된다.
- Repeatable : 테스트는 어떤 환경에서도 반복 가능해야 한다.
- Self-Validating : 테스트는 bool값으로 결과 내기
- Timely : 테스트는 적시에 작성해야 한다.
(단위 테스트는 테스트하려는 실제 코드를 구현하기 직전에 구현한다)
2. 🤔 이해가 어려운 부분
🔍 질문하기
책을 읽으며 이해하기 어려웠던 개념이나 명확하지 않았던 내용을 정리합니다.
- 개념 또는 원칙의 이름
- 어려웠던 부분
해당 개념이 헷갈리거나 명확하지 않았던 점을 구체적으로 설명합니다. - 궁금한 점
해당 개념이 어떤 원리로 동작하는지, 실무에서 어떻게 활용되는지 등을 질문 형태로 정리합니다.
- 어려웠던 부분
- 개념 또는 원칙의 이름
- 어려웠던 부분
. - 궁금한 점
.
- 어려웠던 부분
- 개념 또는 원칙의 이름
- 어려웠던 부분
. - 궁금한 점
.
- 어려웠던 부분
3. 📚 참고 사항
📢 논의하기
관련된 자료가 있다면 공유하고, 더 깊이 논의하고 싶은 아이디어나 의견을 정리합니다.
- 관련 자료 공유
- 추가 자료
관련 블로그 글이나 공식 문서 링크를 제공합니다.
- 추가 자료
- 논의하고 싶은 주제
- 주제
논의하고 싶은 내용을 간략히 정리합니다. - 설명
논의하고 싶은 이유를 작성합니다.
- 주제