테스트 주도 개발
ISBN 9788966261024

테스트가 만능은 아니지만

첫 직장의 선배 프로그래머들이 테스트 코드를 쓰는 방법을 알려주고, 또 유용함을 몸소 보여줬었다.

그런 좋은 기억을 가지고 이직해서, 가장 테스트 코드를 쓰기 좋은 스택중 하나인 ruby on rails 를 하게 되었다. 그때의 경험으로 인해서 테스트의 유용함에 대해 크게 공감했던 것 같다.

OOP + dynamic type + mock 조합으로, 유연하고 딱 원하는 내용을 테스트 할 수 있게 되어 있어서 외부에 의존하지 않는 대부분의 로직에서 확신을 가지고 일 했었다.

'test is always in sync' 라며 테스트의 중요성을 강조하는 문구가 있다. 언제나 의욕이 되는 문구지만, 동시에 2024년 기준으로는 그렇게 in sync 가 언제나 유지되는 테스트를 처음 쌓아올리는 일이 매우 어렵다. 팩토리 / 시드까지 처음에 완성하면 그 다음부터는 한참은(아마 90% 즈음까지는) 탄탄대로지만, 코드 베이스가 크면 거의 몇 주를 써야 하니 섣불리 손대기가 망설여진다.

미래에 AI가 코드를 낱낱이 분해해줘서 테스트가 필요 없는 날이 올 때 쯤 되야 테스트를 안 쓰는 일이 가능하지 않을까.

지금도 테스트 코드와 rx 코드들은 GPT가 잘 못 쓰는 걸 보면 아마 한참 걸릴 것 같다.