brunch

You can make anything
by writing

C.S.Lewis

by anyjava Dec 11. 2023

테스트 코드와의 첫 만남

시작과 성장

최근에 작성한 테스트 관련 글이 조회수가 상당히 높았다.
그러나 처음부터 테스트 코드를 잘 작성했던 것은 아니었다.
이번 기회에 과거를 돌아보며 어떻게 공부했는지 나누고자 한다.

나도 'TDD by Example'이라는 책을 통해 테스트와 처음 만났다. 회사에서 진행한 스터디에 참여하며 테스트에 대한 이해를 높였다.
테스트가 프로그램의 스펙이라는 개념은 새롭게 다가왔다. Java에서는 Junit과 Test 키워드에 익숙했지만, Ruby나 다른 언어 및 테스트 프레임워크에서는 'Spec'을 사용하는 것도 흥미로웠다.


또한, 테스트 코드에 능숙한 동료가 복잡한 부가세 계산을 위한 테스트 케이스를 작성하며 그 실행 과정을 보여주었는데, 이는 매우 인상 깊었다.
당시 CTO께서는 빠른 피드백을 통해 즐거운 개발 환경을 조성한다고 말씀하셨는데, 이러한 변화를 실제로 피부로 느꼈던 것이다. (사실 그당시에 느꼇기 보단. 지금 되돌아 보니 그랫던것 같다. ㅎㅎㅎ)

그 경험 이후, 나는 테스트 코드에 깊이 몰입하게 되었다. 첫 프로젝트에서 테스트 코드 작성을 시도했는데, 이는 내가 존경하는 시니어 개발자와 함께한 매우 만족스러운 작업이었다. 하지만, 나는 테스트 코드에 너무 집중하여 프로젝트 일정이 2주나 지연되는 상황에 이르렀다.

지금 생각해보니, 주니어 개발자로서 자주 저지르는 실수, 바로 주화입마에 빠져 테스트 코드에 과도하게 몰두했던 것 같다. 당시 함께했던 선배 개발자는 참을성을 가지고 나를 기다려 주셨고, 그 덕분에 많이 배울 수 있었다. 그 시간들을 떠올리면 지금도 미안함과 감사함이 교차한다. 프로젝트를 마무리 짓고, 늦은 밤까지 이어진 퇴근길의 대화와 그때의 공간, 분위기는 아직도 선명하게 떠오른다.

설계에 대한 고민은 언제나 필요한 일이죠. 훌륭한 설계를 위해 꾸준히 고민하고 리팩터링하는 것이 중요하다고 생각해요. 


첫 시도에 완벽함을 기대할 수는 없다. 테스트를 하나씩 작성하며 배우고, 실패를 경험하며, 깨달음을 얻으면서 어제보다 더 나은 코드를 만들어 나가는 것이다.


결론적으로, 테스트 코드를 완벽하게 작성하고 TDD로 개발한다고 자신 있게 말할 수는 없다. 여전히 부족함을 느끼고 있고 그래서 나는 테스트 추종자라고 소개할 뿐이다.  

참고로 내가 7년전에 작성했던 글을 공유한다.

https://techblog.woowahan.com/2504/


작가의 이전글 성공한 삶,
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari