개발/TDD

TDD를 알아보자!

펭귀니 :) 2021. 10. 25. 01:17

이 글을 쓰는 이유는...
그냥 내가 TDD와 어떻게 친해지게 됐는지 나중에는 생각이 나지 않을 것 같아서
기록하기 위해 남긴다.

TDD와 또 친해지고자 하는 사람에게 도움이 된다면야 너무 좋고

TDD를 언젠가부터 들어왔고, 제대로 알아보고 싶은 마음이 있었다.

사실 TDD를 알아보고자 했던 마음에는 테스트에 대해 잘 알고 싶다라는 마음이 선행되긴했다.
'테스트를 잘 하고 싶다. 테스트 코드를 잘 짜고 싶다.'에서 시작한 마음이 TDD까지 오게 되었다.

둘은 분명 상관관계가 있으니 큰 목표를 TDD로 잡고 테스트에 대해 알아보고자 한다.

공부하기 전에 내가 알고 있던 TDD의 모든 것

TDD란 테스트 주도 개발이며,
개발하기 전에 테스트 코드 먼저 작성하는 개발 방식이고
mock이란게 있다.

정도만 알고 있었다.

제대로 알고자 하니 너무 막막했다.
냅다 책부터 사서 펼쳐볼까 했지만, 책을 펼치더라도 내가 TDD에 대해 감각적으로 알고 있는 것들이 우선적으로 있으면 좋겠다는 생각이 들었다.
TDD에 관심이 있어 책을 구매했던 아는 사람한테 TDD에 대해 좀 아냐고 물어봤다.

나도 잘 모르지만 이 영상 한 번 봐봐
https://youtu.be/3LMmPXoGI9Q

하며 영상 하나를 추천 받았다.

위 영상은 매우 짧아서 부담 없었고, 가볍게 테스트란 무엇인가, 왜 해야하는가를 들을 수 있었다.

영상을 다 보니, 추천 영상에 우아한테크세미나에서 자바지기님의 TDD 강의가 뜨더라

https://www.youtube.com/watch?v=bIeqAlmNRrA

홀린 듯이 눌러서 보는 중이다!

보고난 후

내가 강의를 들으면서 이해한 TDD,
그니까 테스트 코드를 먼저 작성하기 전에 우선적으로 되어야 하는게
요구사항이 명확해야한다.

그 명확한 요구사항을 코드로 표현하는 것이 테스트 코드고,
그 다음에 요구사항을 실현할 수 있는 비즈니스 로직을 작성하는 것이 TDD의 핵심인 듯 하다.

먼저 단위테스트(Unit Test)를 해보자!
처음엔 Input과 output이 명확한 걸로 해야 쉽다.

유닛테스트가 익숙해지면
그 다음 TDD를 진행해보자!
단, 웹, 모바일UI나 DB에 의존관게를 가지지 않는 요구사항으로 연습하자.

  1. Test Fails 첫번째 실패하는 테스트를 만들고
  2. Test Passes 테스트를 하고
  3. Refactor 리팩토링하고

영상에는 이런 기술적인 얘기 외에도 개발할 때 조직내에서 가져야할 마음가짐에 대해서도 알려준다.

좋은 세미나였다 :)