[Loopers] 아~ TDD하기 싫어~안해~

HYUN_CODE·2025년 7월 18일
3

[Loopers]

목록 보기
1/4

라고 하면 언젠간 당신의 코드 딱~ 1 줄 추가했을 뿐인데 프로젝트에서 폭죽이 터지는 경험을 할 것이다.

서론

그렇다... 나도 TDD를 한번도 써본 적이 없는 개발자다.
TDD??? Test-Driven Development?? 그게 뭔데?? 그거 쓰면 개발하는데 시간만 오래 걸리고 뭐가 좋은데? 라는 생각을 해온 개발자였다. Loopers에서 배우기 전까진.... 내가 이런 생각이 바뀌게 된 이유를 설명하려고 한다.


TTD란 뭐고 왜 쓰는데❓❓

TDD는 Test-Driven-Development의 약자로, 테스트를 먼저 작성하고, 그 테스트를 통과하는 최소한의 코드를 작성하며....어쩌고 어쩌꼬.... Red -> Green -> Refactor 3단계 사이클을 ...... Mock...spy.......
난 설명을 아무리 봐도 뭐라는지 모르겠다.... 개념부터 공부하는건 너무 재미가 없다. 우~~~ 노잼~ 재미없는건 딱 질색이다.

우선 이걸 왜 쓰는지 부터 알아야 된다.


개발자가 제일 좋아하는게 뭘까? 높은 월급...? 물론 뭐 맞는 말이지만
난 뭐냐고 물어보면 단연코 평생 야근 없는 삶이다.

테스트 코드를 짜면 야근할 확률을 줄여준다.⁉️

👉 난 이거 못참는다.

🕘 왜 우리는 야근을 할까?

내가 생각한 예시들이다.
• 버그가 어디서 나는지 모름
• 개발하다 보니 요구사항이 계속 바뀜
• 어제 되던 게 오늘 안 됨
• 리팩토링했더니 엉뚱한 기능이 망가짐
• 테스트가 없어서 QA에서 대량 이슈 발견

→ 결국, 야근은 “예측 불가능한 실패에 대응하느라” 발생한다.

👼 여기서 오늘의 구원자 TDD 등장 👼

TDD는 “코드보다 테스트가 먼저 나오는 개발 방식”

1. 요구사항을 명확히 하고 개발 시작

TDD는 테스트를 먼저 짜기 때문에, “무엇을 만들어야 하는가?“를 개발 전에 명확하게 정의한다.

2. 하나씩 검증하며 개발

TDD는 작은 단위로 기능을 점검한다.
→ 실패가 생기더라도, 방금 수정한 부분에만 집중하면 된다.
즉, 버그의 범위를 좁혀준다.

✅ “어디서 실패했는지 바로 보이므로, 디버깅 시간이 획기적으로 감소”
✅ “작은 단위로 검증하니 전체를 무너뜨릴 위험이 줄어듦”

3. 자동화된 회귀 방어망을 구축

테스트는 코드가 늘어날수록 더 큰 안정망이 된다.
새로운 기능을 추가하거나 리팩토링할 때 기존 기능이 깨지면 즉시 테스트가 실패한다.

🔁 반복적으로 실행되는 자동 회귀 테스트는 “실패를 빠르게 감지하고, 피드백 루프를 단축시킴”

4. 리팩토링 시도 가능성 증가

테스트가 없으면, “이거 고쳤다가 망가지면 어떡하지?”라는 불안감으로 기존 코드에 손대기를 꺼리게 된다.

하지만 테스트가 있다면???
✔️ “기능은 이미 보장되니까, 구조를 바꿔도 안심”
→ 결과적으로 더 좋은 코드 품질, 더 적은 버그


요약

결국 TDD는 실패를 막는 것이 아니라, 실패를 빠르게, 명확하게 발견하도록 설계된 전략이다. 그래서 결국 예측 가능한 개발 흐름을 만들어주며, 안정적인 코드를 유지하는 데 큰 도움이 된다. 그럼 자연스럽게 야근할 확률도 줄어 들 것이다.

이걸 보고도 TDD를 안 한다....? 난 배우고 야근 안 할거다. 그럼 이만.

profile
hi~hello

1개의 댓글

comment-user-thumbnail
2025년 7월 18일

테스트를 짜면 야근 해방이라고? 이건 못 참지~

답글 달기