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