김시용
1. 📌 핵심 개념 정리
✅ 요약하기
각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다.
- 개선 시작 전
SerialDate를 리팩터링하는 과정을 통해 어떻게 깨끗한 코드로 정리해나가는지를 보여준다.- 개선 시작 전, 테스트 코드를 돌려보고 클로버를 이용해 커버리지를 분석 한다.
- 테스트 코드 수정을 통한 커버리지 높이기.
- 개선 시작
- 주석 내용 올바르게 수정
변경 이력 없애기, import문 통합, 여러 언어 사용 HTML태그 부분<pre>
로 감싸기 - SerialDate의 Serial은 삼풍의 일련번호를 뜻하므로 날짜의 의미에 맞게 DayDate로 이름 수정
- month 표현하는 상수 -> enum으로 표현, isValidMonthCode 메서드 불필요해지기에 삭제
- 각종 변수명 DayDate와 어울리게 수정
- 추상 클래스 사용자가 구현 정보를 알아야 하는 딜레마 발생
- DayDate 자체를 훼손하지 않으면서 구현 정보를 전달할 방법 필요
- 부모 클래스는 자식 클래스를 몰라야 한다 -> ABSTRATC FACTORY 패턴인 DayDateFactory 적용
- 메서드 분리하여 SRP 지키기
- 상황에 맞게 각 변수 위치, 접근자 수정 및 필요없는 변수,메서드 제거
- 임시 변수 설명을 사용해 가독성 높이기
- 주석 내용 올바르게 수정
- 결론
- DayDate 코드 커버리지가 감소함 -> 테스트하는 코드가 줄어서가 아니라 클래스 크기가 작아지는 바람에 테스트하지 않는 코드의 비중이 커졌기 때문
- 보이스카우트 규칙을 지켰다
- 테스트 커버리지 증가, 버그 수정, 코드 크기 감소, 코드가 명확해짐
2. 🤔 이해가 어려운 부분
🔍 질문하기
책을 읽으며 이해하기 어려웠던 개념이나 명확하지 않았던 내용을 정리합니다.
- 커버리지
- 어려웠던 부분
코드 커버리지와 테스트 커버리지의 차이 - 궁금한 점
각 커버리지의 의미와 수치가 높아야 좋은것인가?- 코드 커버리지 : 코드의 어느 부분이 테스트 실행 중 실제로 실행되었는지를 측정
- 테스트 커버리지 : 전체 요구사항 또는 테스트 시나리오 중 얼마나 많은 테스트가 수행되었는지 측정
- 둘은 함께 쓰여야 좋은 품질을 보장 가능함
코드 커버리지가 높아도, 잘못된 시나리오만 테스트했다면 의미 없음 테스트 커버리지가 높아도, 코드가 실제로 실행되지 않았다면 버그 발견 못함
- 어려웠던 부분
3. 📚 참고 사항
📢 논의하기
관련된 자료가 있다면 공유하고, 더 깊이 논의하고 싶은 아이디어나 의견을 정리합니다.
- 관련 자료 공유
- 추가 자료
커버리지 관련 정보
- 추가 자료
- 논의하고 싶은 주제
- 주제
논의하고 싶은 내용을 간략히 정리합니다. - 설명
논의하고 싶은 이유를 작성합니다.
- 주제
No Comments