Skip to main content

김시용

1. 📌 핵심 개념 정리

✅ 요약하기

각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다.

  1. 개선 시작 전
    SerialDate를 리팩터링하는 과정을 통해 어떻게 깨끗코드로 요약정리해나가는지를 내용
보여준다.
  • 개선 시작 , 테스트 코드를 돌려보고 클로버를 이용해 커버리지를 분석 한다.
  • 테스트 코드 수정을 통한 커버리지 높이기.
개선 전 코드

개선 전 코드의 문제점을 작성합니다.

  • 개선 후
개선 후 코드

개선 후의 코드에 대한 설명을 작성합니다.


  1. 한 줄 요약 내용
    .
    .
    .

  1. 개선 시작 요약
    • 주석 내용 올바르게 수정
      .
      변경 .
      이력 .없애기, import문 통합, 여러 언어 사용 HTML태그 부분 <pre>로 감싸기
    • SerialDate의 Serial은 삼풍의 일련번호를 뜻하므로 날짜의 의미에 맞게 DayDate로 이름 수정
    • month 표현하는 상수 -> enum으로 표현, isValidMonthCode 메서드 불필요해지기에 삭제
    • 각종 변수명 DayDate와 어울리게 수정
    • 추상 클래스 사용자가 구현 정보를 알아야 하는 딜레마 발생
      • DayDate 자체를 훼손하지 않으면서 구현 정보를 전달할 방법 필요
      • 부모 클래스는 자식 클래스를 몰라야 한다 -> ABSTRATC FACTORY 패턴인 DayDateFactory 적용
      • 메서드 분리하여 SRP 지키기
      • 상황에 맞게 각 변수 위치, 접근자 수정 및 필요없는 변수,메서드 제거
      • 임시 변수 설명을 사용해 가독성 높이기

  1. 결론
    • DayDate 코드 커버리지가 감소함 -> 테스트하는 코드가 줄어서가 아니라 클래스 크기가 작아지는 바람에 테스트하지 않는 코드의 비중이 커졌기 때문
    • 보이스카우트 규칙을 지켰다
    • 테스트 커버리지 증가, 버그 수정, 코드 크기 감소, 코드가 명확해짐

2. 🤔 이해가 어려운 부분

🔍 질문하기

책을 읽으며 이해하기 어려웠던 개념이나 명확하지 않았던 내용을 정리합니다.

  1. 개념 또는 원칙의 이름커버리지
    • 어려웠던 부분
      해당코드 개념커버리지와 테스트 커버리지의 차 헷갈리거나 명확하지 않았던 점을 구체적으로 설명합니다.
    • 궁금한 점
      해당 개념커버리지의 의미와 수치가 높아야 좋은것인가?
      • 코드 커버리지 : 코드의 어느 부분어떤테스트 원리실행 중 실제동작하실행되었는지, 실무에서측정
      • 어떻게
      • 테스트 활용커버리지 : 전체 요구사항 또는 테스트 시나리오 중 얼마나 많은 테스트가 수행는지 측정
      • 둘은 함께 쓰여야 좋은 품질질문보장 형태가능함
        코드 커버리지가 높아도, 잘못된 시나리오만 테스트했다면 의미 없음 테스트 커버리지가 높아도, 코드가 실제정리합니실행되지 않았.면 버그 발견 못함

  1. 개념 또는 원칙의 이름
    • 어려웠던 부분
      .
    • 궁금한 점
      .

  1. 개념 또는 원칙의 이름
    • 어려웠던 부분
      .
    • 궁금한 점
      .

3. 📚 참고 사항

📢 논의하기

관련된 자료가 있다면 공유하고, 더 깊이 논의하고 싶은 아이디어나 의견을 정리합니다.

  1. 관련 자료 공유

  1. 논의하고 싶은 주제
    • 주제
      논의하고 싶은 내용을 간략히 정리합니다.
    • 설명
      논의하고 싶은 이유를 작성합니다.