loop-study
개발 공부할래?
loop-study
전체 방문자
오늘
어제
  • 분류 전체보기 (186)
    • 목표 및 회고 (25)
    • 세미나 & 워크샵 (1)
    • 교육 및 인강 (67)
      • TDD, Clean Code with Java (5)
      • ATDD, 클린 코드 with Spring (6)
      • DDD 세레나데 (3)
      • 인프라 공방 (6)
      • 이규원의 현실 세상의 TDD (19)
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (18)
      • 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 (0)
      • 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한 (8)
      • 코딩으로 학습하는 GoF의 디자인 패턴 (1)
      • 스프링 시큐리티 완전정복 6.x (1)
    • 서적 (62)
      • 객체지향의 사실과 오해 (1)
      • 객체지향과 디자인패턴 (7)
      • 만들면서 배우는 클린 아키텍처 (3)
      • 테스트 주도 개발로 배우는 객체 지향 설계와 실천 (1)
      • 오브젝트: 코드로 이해하는 객체지향 설계 (17)
      • 리팩토링 : 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기 (0)
      • 토비의 스프링 (3)
      • 엔터프라이즈 애플리케이션 아키텍처 패턴 (9)
      • 개발자의 글쓰기 (1)
      • 소프트웨어 장인 (17)
      • Real MySQL 8.0 (2)
      • JVM 밑바닥까지 파헤치기 (0)
    • 개발 & 방법론 (29)
      • Java (13)
      • TDD (5)
      • ATDD (3)
      • DDD (6)
      • 인프라 (2)
      • SQL (0)
    • 개인이야기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 백엔드 로드맵

인기 글

태그

  • ATDD
  • 스프링
  • 김영한
  • 백기선
  • 소프트웨어 장인
  • 이규원
  • DDD 세레나데
  • study
  • 조영호
  • nextstep
  • 현실세상의 TDD
  • 스터디
  • 인프런
  • fastcampus
  • java
  • 엔터프라이즈 애플리케이션 아키텍처 패턴
  • JUnit
  • 넥스트스탭
  • 자바
  • 객체지향
  • 추상화
  • 오브젝트
  • 인프라공방
  • Patterns of Enterprise Application Architecture
  • Test Driven Development
  • 장인정신
  • 모든 개발자를 위한 HTTP 웹 기본 지식
  • TDD
  • 마틴 파울러
  • 테스트 주도 개발

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
loop-study

개발 공부할래?

교육 및 인강/이규원의 현실 세상의 TDD

이규원님의 현실 세상의 TDD 깊은 곳, 8편 : 테스트 주도 개발의 한계

2021. 6. 2. 18:45

테스트 주도 개발의 깊은 곳 8편, 테스트 주도 개발의 한계다.

단점에 대해 설명하는 시간이다. 

📖 자세한 내용이 궁금하면 이규원 님의 TDD 수강하는 걸 추천드립니다. 👍 

 

The RED : 이규원의 현실 세상의 TDD : 안정감을 주는 코드 작성 방법 | 패스트캠퍼스

그동안 우리나라에는 TDD를 제대로 다루는 책도 강의도 없었죠. 그래서 제가 개발 현장에서 활용하는 TDD를 정확하게 알려드리고자 강의를 만들었습니다. 이제 TDD에 대한 잘못된 인식은 버리고, '

fastcampus.co.kr


 

은탄환은 없다

도구의 법칙 

테스트 주도 개발은 유용하고 매력적인 도구지만 남용을 주의해야한다.

-> 다양한 장소를 다녀보면 몇몇 개발자들은 본인이 사용하는 도구만 추구하는 경우가 많이 보인다. 테스트 주도 개발도 마찬가지, 유용한 경우가 많지만 너무 맹목적으로 맹신만 해서는 안된다. 장단점을 알고 상황에 맞게 사용하자. 

 

불안정한 목표

모든 코드의 목표가 안정적이지는 않음, 탐색적으로 목표를 찾아내야 한다면 테스트 코드 작성 비용 부담이 큼.

-> 간단히 생각하자. 세부적인 기획이 나온게 없다면? 뜬구름 잡는 목표만 있다면? 테스트 코드를 넘어서 개발하는게 무의미해질 수가 있 다. 개발자 스스로가 목표를 찾아야할 수 있다.

 

환경 제어

하위 시스템이 다른 하위 시스템, 의존성 중 일부는 제어가 어렵다. 단위 테스트는 결정적일 수록 유용
의존성 중 일부는 매우 느림  단위 테스트는 빠를 수록 유용
의존성 단점을 보완할 대역을 도입하면 가정이 발생 가정으로 인한 안정감 감소 

-> 만약에 테스트하고자 하는 기능의 내부 일부분이 랜덤적이 요소로 매번 결과가 바뀐다면 테스트를 진행할때마다 결과가 달라지는 경우가 생길 수 있다. 

또한 테스트 중 속도가 매우 느리면 테스트를 돌리는 것도 많은 부담이 될 수 있다. 

 

낮은 코드 적응력

- 적응력이 낮으면 단위 테스트하기 어렵다

- 이미 적응력이 낮은 기반에 적용하기 어렵다 

- 적응력을 높이는 것도 어렵다

-> 단위 테스트가 하나도 없는 거대한 레거시에 단위 테스트를 추가해야한다면...?

 


후 기

흔히 정답은 없다는 말을 많이 듣는다. 

이 방법 저 방법 다양하게 시도해볼 수 있고, 상황에 따라 효율이 달라지기 때문이다.

도구의 법칙처럼 사용할 줄 아는 도구가 하나 있다고 그 도구만 추구하지는 말자

다양한 도구가 존재하고 다양한 상황에 따라 알맞는 도구를 찾아보자.  

'교육 및 인강 > 이규원의 현실 세상의 TDD' 카테고리의 다른 글

이규원님의 현실 세상의 TDD 깊은 곳, 10편 : 인수 테스트 주도 개발  (0) 2021.06.04
이규원님의 현실 세상의 TDD 깊은 곳, 9편 : 인터페이스와 테스트  (0) 2021.06.02
이규원님의 현실 세상의 TDD 깊은 곳, 7편 : 테스트 주도 설계  (0) 2021.05.28
이규원님의 현실 세상의 TDD 깊은 곳, 6편 : Should i test private methods  (0) 2021.05.28
이규원님의 현실 세상의 TDD 깊은 곳, 5편 : Mockists vs Classicists  (0) 2021.05.27
    '교육 및 인강/이규원의 현실 세상의 TDD' 카테고리의 다른 글
    • 이규원님의 현실 세상의 TDD 깊은 곳, 10편 : 인수 테스트 주도 개발
    • 이규원님의 현실 세상의 TDD 깊은 곳, 9편 : 인터페이스와 테스트
    • 이규원님의 현실 세상의 TDD 깊은 곳, 7편 : 테스트 주도 설계
    • 이규원님의 현실 세상의 TDD 깊은 곳, 6편 : Should i test private methods
    loop-study
    loop-study
    오늘도 공부하자

    티스토리툴바