2025-09-02 (화)

주니어 개발자들에게 TDD와 리팩토링 이야기를 하면, 비슷한 반응들을 보인다.

'좋다는 얘기는 들었는데 아직 못해봤다' 같은.

'당연히 해야 하는건데, 실천하는 사람은 적은' 것 같은 인상을 받는다.

반은 죄책감 섞인 반응도 있고.

혹자는 그래서 오히려 짜증섞인 반응을 보이기도 한다. '그거 유니콘 같은거다. 사실 그거 해도 효과 없다'라고 하기도.

하지만 TDD와 리팩토링이 SWE 역사에 등장하고 열렬한 팬이 존재했던 시기는 의외로 짧다.

TDD와 리팩토링은 연관이 있으면서도 다른거다. 그 둘을 연결해주는 중간에는 자동화된 단위테스트가 있다. 자동화된 단위테스트를 SWE에 대중화시킨 것은 단연 JUnit이라고 할 수 있다.

그런데 JUnit이 언제 나왔을까? 1997년에 첫 버전이 탄생했고, 2000년대 초반에 널리 펴졌다.

그 전에는 자동화된 회귀테스트로서의 단위테스트라는 개념이 잘 없었다. 이를테면 임베디드 C 개발자들이 개발을 하는 방식도, 따로 단위테스트 코드를 만들지 않고 작성을 하더라.

시작은 그러한데, 지금은 어떤가? 자동화된 단위테스트가 보편화되었나? 내 느낌으로는, 개발에서 중요한 요소가 되었다기보다는, 눈을 흐리는 다른 요소들이 많이 생겨서 중요성만큼 그렇게 강조되고 있지는 않은 것 같다.

느낌상, 2000년에서 2010년 사이쯤에 개발을 했던 사람들 중에, 애자일에 관심이 있던 사람들이나 관심을 가지고 한두번 접해봤을 것 같다.

여러번 얘기하기도 했지만, TDD와 리팩토링은 내 개발 여정을 완전히 바꿔놓은, 비결 중 하나다.

하지만 이 혜택을 받은 사람들은 생각보다 그렇게 많지 않다. 다들 '들어는 봤'지만, 제대로 해본 사람은 의외로 많지 않은 것 같다. 그게 그럴수밖에 없는 시대적인 배경이 있다.

아마 왠지 5년 10년 지나면서 점점 잊혀져가는 지혜가 될 것 같다.

켄트 백이 메타에서 사내 TDD 교육을 열었을 때, 참가자가 몇명 안모였었다는 것처럼.


CategoryDiary, 정수/일기

정수/일기/2025-09-02 (last edited 2025-09-02 12:39:01 by 정수)