우테캠 회고-인수 테스트 주도 개발

김병호·2021년 7월 6일
1

ATDD란?

Acceptance test driven development. 구현 전에 인수조건을 정의하고 그것에 맞춰 TDD를 구현한다.

인수조건을 기반으로 개발하기 때문에 코드에 실제 현업에서 사용되는 용어가 사용됨.
도메인 지식을 잘 알고있지않는 이상 TDD를 하기 쉽지않은데, 인수테스트를 작성함으로서
요구사항 파악하고 TDD를 하는 것을 돕는다. 여기서 인수란 인수인계할때의 인수이다.

https://github.com/etff/atdd-subway-admin

이번 미션을 진행함에 있어 ATDD 에서 제안하는 방법을 그대로 실행했다.
인수테스트를 만들고, 내부에서 TDD (controller, service, domain 로직) 구현을 완성하고
인수테스트를 통과했다. TDD를 실천하니 인수조건을 완수했다.

도메인은 지하철이다. 도메인에 대해서 고민할 것들이 많았다. 지하철을 생각하면 필요한게 무엇일까.
역과 노선. 그렇다면 노선과 역의 관계는 무엇일까. 그렇게해서 역 사이 구간(Section)을 도출하고
구간을 노선간의 관계로 다시 맵핑하는 작업들을 했다.

도메인 설계와 더불어 어려웠던 것은 객체지향 생활체조를 잘 지키는 것이었다.
복잡한 비지니스 로직이 나오는 가운데서 원칙을 지키는게 노력이 많이 필요했다.



get을 쓰지말기. 객체에게 메시지만 전달해서 값을 가져오는 것들을 실천해야했다.


필요하지 않으면 Getter로 열어두지 말자.

리뷰를 받으면서 전체적으로 코드에서 GET을 지우는 작업들을 하고 메시지만 전달하려고 노력했다.
원칙을 지키려는 마인드. 그런 것들을 리뷰어를 통해서 느낄 수 있었다.

물론 이번 미션을 통해서 인수테스트를 스스로 실천해보는 모습을 보며 많은 것을 느꼈다.

profile
노력하는 개발자입니다!

0개의 댓글