월간 지앤선

- 황태원 객원기자 

약력 부경대학교 컴퓨터공학과 졸업 

SW전문교육기관 코드스쿼드 백엔드 과정 수강 중 

 

코드스쿼드 백엔드 과정을 통해 TDD라는 개발 방법에 대해서 알게 되었고 이후로 꾸준히 학습하고 있었습니다. 그래서 현업에서의 TDD 적용 유무 등 많은 의문과 다른 분들은 어떻게 하고 계신지 궁금하여 TDD가 주제인 2018OKKYCON에 참여하게 되었습니다

 

컨퍼런스를 통해 깨달은 점은 3가지입니다

1. 유연한 사고를 바탕으로 TDD를 적용한다

2. 의식적인 연습이 상당히 필요한 부분이다

3. TDD는 종합예술이다

 

첫 째, 유연한 사고를 바탕으로 TDD를 적용한다

당연히 TDD로 개발을 시작한다면 해당 프로젝트 모든 곳에 TDD를 적용해야 하지 않을까? 라고 생각했는데 그렇지 않더군요. TDD가 좋다면 TDD를 사용하는 것이고 그렇지 않다면 사용하지 않아도 됩니다. TDD를 강요하는 것도 아니고 사용하지 않는다고 해서 비난할 필요도 없습니다. 이는 제가 수강 중인 교육과정에서도 늘 듣던 ‘유연한 사고’에 대한 것이었습니다. 개발할 때 왜 그렇게 설계했고, 코딩했으며 그에 합당한 자신만의 기준이 있는지가 중요하다고 들었습니다. 이는 TDD에도 동일하게 적용됩니다. 하나만을 고집하는 경직된 사고가 어떤 일을 불러 올지 아무도 알 수 없습니다. 다시 한 번 개발자가 가져야 하는 유연한 사고와 기준에 대해 상기할 수 있었습니다

 

둘 째, 의식적인 연습이 상당히 필요한 부분이다

TDD를 장기간의 의식적인 연습 없이 단기간에 실무 전체에 적용하려고 한다면 실패할 가능성이 큽니다. 시작부터 프로젝트의 모든 부분을 TDD로 개발하려 하지 말고, 우선 작은 토이 프로젝트를 시작하여 TDD를 훈련하는 데 집중하는 것이 좋습니다. TDD 자체에 익숙해지고 능숙해지는 시간이 필요합니다. 실제로 제가 TDD로 개발하다 보면 작은 부분은 그냥 테스트를 만들지 않고 바로 프로덕션 코드부터 짜고 싶다는 충동이 들기도 하지만, 지금은 연습(훈련)이라는 것을 생각하며 작은 부분이라도 최대한 TDD 사이클에 따라 개발하는 데 집중하게 되었습니다. 연습은 과하게 하는 것이 성장에 도움이 된다고 연사 분 중 한 분이 말했습니다. 대부분 수년간 TDD를 의식적으로 연습하며 수 없이 많은 테스트를 만들며 실패하는 시간을 보내셨을 연사들을 보며 분명 힘들 수 있지만 꼭 해내고 싶다는 마음을 다지는 시간이었습니다

 

셋 째, TDD는 종합예술이다

종합예술이라는 연사의 표현이 와 닿았습니다. TDD가 힘들다면 이미 있는 코드들에 대한 테스트를 작성하는 것부터 연습해야 하며, 테스트가 익숙하고 자연스러워지면 TDD에 도전하는 것입니다. TDD의 테스트 먼저 작성하는 과정에서 설계를 한 번 더 고민하게 되고 요구사항의 논리를 점검하게 된다고 합니다. TDD를 하기 전에 요구사항을 잘게 쪼개어 테스트 목록을 뽑는 것부터 시작하여 테스트, 설계, 리팩토링 등 다양한 것들이 어우러져서 TDD가 마치 종합예술처럼 느껴졌습니다. 종합예술이기에 해야 할 것도 많고 힘들지만 분명 그에 따른 성취감과 역량의 성장은 클 것이라고 생각됩니다


2018OKKYCON이 삼성 마젤란홀에서 진행되었는데, 홀을 가득 채울 만큼 많은 개발자들이 오셨고 오전 일찍부터 진행되어 저녁에 끝나는 것임에도 불구하고 끝까지 자리를 지키는 분들을 보며 각자의 자리에서 더 나은 코드를 위하여 고민하고 있는 그들의 열정을 옅 볼 수 있는 좋은 시간이었습니다. 이번 행사는 저에게 TDD뿐만 아니라 개발자의 자세에 대해서 다시 한 번 생각하게 되는 계기가 되었습니다


감사합니다.