오늘은 저번 주에 하지 못한 TDD 스터디를 하고 왔다.
오늘 TDD시간은 저번주에 참여를 못한고 이번 주에 진행한 게 아쉬울 정도로 유익했던 시간이었다.
TDD를 배운지는 오래된 것 같지만 제대로 사용하지 못하고 있다는 느낌을 항상 받았고, 그 느낌이 오늘 TDD시간에 책의 예제를 따라 몹 프로그래밍을 하면서 확신으로 바뀌었다.
TDD를 처음 배울 때 작은 단위부터 내가 컨트롤할 수 있는 범위 안에서만 수정을 시작하면서 빠른 그린을 봐야 하는 것을 배웠는데, 오늘 내가 했던 방법들을 돌이켜 보면 작은 단위로 TDD를 하기보다는 리팩터링 할 때 중간 과정을 많이 뛰어넘고 하고 있었다.
그래서 리팩터링 하다 길을 잃어버리는 경우도 종종 있었다. 근데 오늘 몹 프로그래밍을 하면서 진짜 엄청 작은 단위부터 시작해서 리팩터링 하는 걸 보고 이렇게 까지 작게 고치면서 나아가는구나 라는걸 느꼈다.
그리고 오늘 가장 놀라웠던 건 이때까지 나는 테스트를 먼저 작성할 때 필요할것 같은것들을 먼저 정의해놓고 그것들을 써서 테스트를 통과시켰었는데 오늘 TDD시간에 테스트를 작성할때 아주 구체적으로 해야 할 행동을 먼저 정의하고 그에 필요한 것들을 하나씩 구현하는 방법을 배웠다.
완전 내가 이때까지 작성했던 테스트 방식을 거꾸로 한 방식이었다.
사실 이 방식이 처음에는 거부감을 느꼈었는데 그 이유가 정의되지 않은 메서드들도 일단은 그냥 썼었기 때문에 인텔리제이가 빨간색 글자로 경고를 하는 것이 매우 불편했기 때문이다.. 빨간색 글자는 바로바로 없애야 한다고 생각을 했는데...
전혀 아니었다. 일단은 아주 구체적으로 말이 되게 작성을 하고 그에 필요한 메서드들을 하나씩 차례대로 밑에서 위로 작성하는데 코드를 위에서부터 작성해야 한다는 나의 고정관념을 부수는 순간이었다.
밑에서부터 구체적으로 작성해서 필요한 것을 구현해나가는 방식이 매우 유용한 것 같아 당장 지금 만들고 있는 마카오 선물하기 앱에서도 연습해보자.
'성장이야기 > TIL' 카테고리의 다른 글
221004 TIL Failed to create query.... (0) | 2022.10.04 |
---|---|
221003 TIL 문서는 네비게이션 (1) | 2022.10.03 |
221001 TIL 기억보단 기록을 (0) | 2022.10.01 |
220930 TIL 이름 짓기 (0) | 2022.09.30 |
220929 TIL 쿠키(Cookie)와 세션(Session) (1) | 2022.09.29 |