Skip to main content

이정우

1. 📌 핵심 개념 정리

✅ 요약하기

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

첫째, 돌려보자

  • SerialDateTest라는 클래스는 단위 테스트 케이스를 몇 개 포함한다.
  • 실패하는 케이스는 없지만 모든 경우를 점검하지 않는다는 사실을 알 수 있다..
  • 저자는 SerialDateTest.java에 있는 모든 테스트 케이스가 통과할 수 있게 만들었다.
  • Clover라는 Code Coverage 분석 도구를 이용해 실행 코드와 실행하지 않는 코드를 확인한 결과 SerialDateTests는 50%의 경우만 테스트함을 확인할 수 있다.
  • SerialDate 클래스를 보면서 빠진 테스트가 없는지까지 확인한다.

둘째, 고쳐보자

  • 쓸모없는 주석은 지운다.
    • 법적인 정보는 필요하기에 라이선스 정보와 저작권은 보존하고 변경 이력, 작성자 등은 불필요하기에 삭제한다.
    • 변수 역사와 의미를 남기는 주석은 좋은 주석이다.
  • import문은 java.text.*java.util.*로 줄인다.
  • 클래스와 함수의 기능을 명확하게 한다.
    • 추상 클래스에 있는 변수가 오직 하나의 클래스에서만 사용한다면 옮기는 것이 좋다.
    • 해당 변수와 그 변수를 사용하는 거리가 좁아지고 실제 코드를 이해하는 도움이 된다.
    • 한 소스 코드에 여러 언어를 사용하면 안된다.
    • 불필요한 상속은 삭제한다.
    • 인수와 변수 선언에서 final 키워드를 모두 없앤다.
      • 실질적인 가치는 없으면서 코드만 복잡하게 만들기 때문이다.
      • final 키워드를 제거하겠다는 결정은 일부 기존 관례와 어긋난다.
    • for 루프 안에 if문이 중복되면 || 연산자를 사용하여 if문 하나로 만든다.

결론

  • 보이스카우트 규칙을 따랐다.
  • 체크아웃한 코드보다 좀 더 깨끗한 코드를 체크인할 수 있게 되었다.
  • 테스트 커버리지 증가, 버그 사항 개선, 코드 크기 감소, 명확한 코드, 코드의 가독성 증가
  • 다음의 코드 개선은 난이도가 조금 더 낮아질 것이다.

2. 🤔 이해가 어려운 부분

🔍 질문하기

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

  1. 개념 또는 원칙의 이름
    • 어려웠던 부분
      해당 개념이 헷갈리거나 명확하지 않았던 점을 구체적으로 설명합니다.
    • 궁금한 점
      해당 개념이 어떤 원리로 동작하는지, 실무에서 어떻게 활용되는지 등을 질문 형태로 정리합니다.

3. 📚 참고 사항

📢 논의하기

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

  1. 관련 자료 공유
    • 추가 자료
      관련 블로그 글이나 공식 문서 링크를 제공합니다.

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