Skip to main content

김주엽

1. 📌 핵심 개념 정리

✅ 요약하기

  1. TDD 법칙 세 가지
  • 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
  • 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.
  • 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.

  1. 깨끗한 테스트 코드 유지하기
    • 테스트 코드가 복잡할수록 실제 코드를 짜는 시간보다 테스트 케이스를 추가하는 시간이 더 걸릴 수 있다.
    • 지저분한 테스트 코드는 개발자 사이에서 점점 큰 불만이 생기게 된다.
    • 테스트 케이스가 없으면 결함율이 높아질 위험이 있다.
    • 실제 코드 못지 않게 테스트 코드는 매우 중요하다.
    • 코드에 유연성, 유지보수성, 재사용성을 제공하는 버팀목은 단위 테스트다.

  1. 깨끗한 테스트 코드
    • 깨끗한 테스트 코드를 작성하는데 가장 중요한 것은 가독성이다.
    • 읽는 사람을 고려해서 테스트 코드를 작성하라.
    • Build - Operate - Check 순서로 테스트를 작성하면 도움이 된다.
      1. 테스트 자료를 생성한다.
      2. 테스트 자료를 조작한다.
      3. 조작한 결과가 올바른지 확인한다.
    • 테스트 코드는 반드시 필요한 자료 유형과 메서드만 사용해야 한다.

  1. 테스트당 assert 하나
    • JUnit으로최대한 하나의 테스트 코드를 짤 때메서드마다하나의 assert문을 단 하나만 사용해야하도록다고 주장하는 이들이 있다.
    • 만약 중복되는 코드가 많아진다면 Template Method 패턴을 사용해서 중복을 줄여라.
    • 테스트당 개념 하나
      • 테스트 하나에 하나의 개념만 테스트하도록 한다.
      • 개념 여러 개를 연속으로 테스트하는 긴 메서드는 피한다.

  1. F.I.R.S.T
    • 빠르게(Fast): 테스트는 빨라야 한다.
      • 테스트가 빨라야 자주 테스트를 돌리고 문제점을 찾아내기 쉽다.
    • 독립적으로(Independent): 각 테스트는 서로 의존하면 안 된다.
      • 테스트가 의존하면 하나가 실패했을 때 나머지도 실패하므로 결함을 찾아내기 어렵다.
    • 반복가능하게(Repeatable): 테스트는 어떤 환경에서도 반복 가능해야 한다.
      • 실제 환경, QA 환경, 집에 가는 중에 사용하는 노트북 환경 등 어느 곳에서든 테스트가 가능해야 한다.
    • 자가검증하는(Self-Validating): 테스트는 bool값으로 결과를 내야 한다.
      • 통과 여부를 알기 위해 로그 파일을 읽게 만들어서는 안 된다.
    • 적시에(Timely): 테스트는 적시에 작성해야 한다.
      • 실제 코드를 구현이후에 요약테스트 내용
        코드를 만들면 실제 코드가 테스트하기 어렵다는 것을 발견할 수 있다.
      • .
      .

2. 🤔 이해가 어려운 부분

🔍 질문하기

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

  1. 개념TDD 또는법칙 원칙의 이름가지
    • 어려웠던 부분
      해당테스트를 개념이작성하기 헷갈리거나전에는 명확실제 코드를 작성하지 않았던 방식구체적으로이해하기 설명합니어려웠다.
    • 궁금한 점
      해당회사의 백엔드발을 혼자 맡거나 고객 빠른 프로토타입 결과물을 요구하는 경우에는
      TDD 법칙을 지키기가 어렵다고 생각하는데 어떤 원리로경우에 동작TDD 법칙을 적용하는지, 실무에서것이 어떻게 활용되는효과적일등을 질문 형태로 정리합니다.

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

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

3. 📚 참고 사항

📢 논의하기

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

  1. 관련 자료 공유

  1. 논의하고 싶은 주제
    • 주제
      논의하고TDD 싶은개발 내용방식간략히언제 정리합니다.사용하는 것이 효과적일까?
    • 설명
      논의하고TDD 개발 방식러닝 커브, 생산성 저하, 테스트 코드 관리 등의 단점유를 작성합니존재한다.
      그렇다면 언제 TDD 개발 방식을 사용하는 것이 효과적일지 궁금하다.