나는 여태 TDD를 안했다. TDD 방법론이란 것이 있다더라 하는 정도... 실제 테스트 주도 방식으로 개발해 본 적은 없다.
하지만 이제는 해볼라 한다! 왜냐하면!!! 요즘 TDD가 대세인 것 같아서!!!!
해보기 전에 일단 왜 하고 어떻게 해야하는 지에 대해 좀 알아봤다.
TDD가 무엇?
test-code first!
테스트가 개발을 이끌어가는 개발 방법론이다. 테스트를 먼저 짜고, 테스트를 만족하는 코드를 짜고, 그 코드를 이쁘게 만들기를 계속 반복함. Red - Green - Refactor Cycle로 요약할 수 있다고 합니다.
Red - 어떤 결과를 기대하며 실패할 수 밖에 없는 테스트 코드를 짬
Green - Red를 동작하도록 만듦 -> 기대하는 결과를 만족하는 단위의 코드 작성(구현)
Refactor - Green의 코드를 이쁘게 다듬어 줌(특정 디자인 패턴에 맞추거나 할 수도 있다)
테스트 코드로 미리 쭈욱 로직을 설계하고 정상 작동하게 만든 뒤 코드를 다듬는 식인 것 같군. 다듬은 코드는 프로젝트에 포함하고.
더 깊은 이해를 위해서 설명을 잘 해놓으신 분들 글을 참조했다.
gmlwjd9405.github.io/2018/06/03/agile-tdd.html
cloudrain21.com/test-driven-development
어쨌든 테스트는 원래 당연히 해야하는 것이다. 미리 테스트 하면서 개발하면 나중에 테스트에 고통을 좀 덜 받지 않을까?
그리고 테스트 코드를 쓰는 방식은 아니지만, 코딩하면서 postman 같은 도구를 이용해서 잘 되는지 확인하면서 개발하는 것도 테스트라고 할 수 있다. 하지만 TDD에서의 테스트는 테스트 코드도 코드지만 내 생각에는 마음가짐이 다른 것 같다.
원래 해오던 개발은(글쓴이 기준) "이러면 되나?->안되면 이러면 되나?->아니면 이러면 되나?" 코딩 후 "되네?..." 느낌이고
TDD는 "이런 상황에는 이런 결과를 내야함 안되면 집에못감" 코딩 후 "안될 리가 없지!" 정도의 느낌.
확실히 이러면 내가 쓴 코드에 확신이 좀 들지도?...
덤으로 테스트마다 리팩토링이 들어가니 클린-한 코드도 따라오고 안할 이유가 엄따!
그래서 어떻게 하지?
하고는 싶은데 어떻게 해야하는가...? 여기서 많은 푸로그래머들이 막막함을 느끼지 않을까?(내 얘기임)
일단 spring boot에서 테스트 코드를 짜는 요령에 대해서 좀 알아보았다.
spring.io/guides/gs/testing-web/
이 글을 보고는 대충 테스트 코드를 쓸 때 필요한 것들이 뭔지는 좀 알겠는데... 그래서... 그러니까? 어쩌라는거지?
Red - Green - Refactor 돌리기를 한 번 해보면 되려나? 그러려면 기대하는 결과를 하나 생각해 봐야하나? 연습용으로 프로젝트를 하나 만들어 봐야겠다. 그래서 코드를 써 보면서 익숙해지면 될 것 같다. 그럼 다음 포스팅은 test-driven 개발 연습 후기~~
'프로그래밍 > 기타등등' 카테고리의 다른 글
디자인 때문에 눈물 흘려본 프로그래머들아 오라! Figma (3) | 2021.09.30 |
---|---|
TDD를 연습해 보았다... (0) | 2021.04.14 |
ERD Cloud 정말 좋다. (0) | 2021.02.11 |
댓글