2010년 12월 22일, 23일 양일간 선릉에서 김창준님이 하시는 TDD 세미나에 다녀왔다. 일단 TDD 방법론은 말만 들어봤지, 사실 그것의 필요성이나 존재가치에 대한 어떠한 생각도 하지 않았다. 왜냐하면, 여태껏 내가 일해왔던 직장에서는 거의 찾아볼 수 없는 문화였고(일부 애자일스런 개발문화를 적용하려고 시도는 했지만 정착이 어려웠었다.), 그것이 필요할 만큼 팀원의 수나 소프트웨어 개발의 비중이 전체 프로젝트에서 상대적으로 크지 않았기 때문이다.
포털 사이트의 특정 기능을 구현하거나 카드회사의 결재정보를 처리하는 부분같이, 수많은 사람들이 사용하고 있는 와중에 그것을 개선하는 아주 조심스런 작업들이 아니었고, 대부분 제한된 사용자만 사용하는 어플리케이션이었기 때문에, TDD가 좋은건 알지만, 굳이 기존코드들을 TDD를 적용하여 다시 개선할 필요성은 느끼지 못했다.
어떻게 생각하면 참 아마추어적인 생각이다라고 생각이 든다. 사용층이 제한적이고 사용방법에 대한 충분히 숙련된 사람이 사용할테니 문제가 발생하지 않을것이라는 예상을 하고 코딩을 하고, 디버깅과정은 원래 필요한 것이다라는 사고방식과, 중복코드의 리팩토링은 소프트웨어의 performance와 동기화 문제로 발생될 수 있는 bottle neck현상으로 항상 좋은것은 아니다라는 근거가 불분명한 생각들을 TDD는 조금 바꿔준것 같다.(완전히는 아니다! 방법의 정답은 없기때문이다.!)
프로그램의 일부가 수정되었을때마다 테스트코드를 작성해서 수정된 부분을 테스트를 하는 과정을 포함시키는 것으로 디버깅과정을 생략(?!)하는 것이고, 처음부터 살아있는(돌아가는) 코드에서 시작한다는 부분이 나에게는 좀 신선하게 다가온 느낌을 받았다.
TDD는 충분히 software oriented된 project이외에도 적용될 수 있다는 얘기를 들었지만, 참가하신 일부 경력있는 실무자분들께서는 가능은 하겠지만, 쉽지는 않다라는 의견이다. 문제 발생을 예상할 수 없는 물리적인 작용이 시스템에 포함되면, 코드만으로는 문제점 해결을 찾기가 어렵기 때문이다. 즉, 하드웨어에 발생되는 간헐적인 문제점을 TDD를 적용한다고 해서 해결되는 것은 아니다. 다만, TDD의 몇가지 Rule에 의거하여 우선순위 결정으로 제한된 일정에서 최상(?)의 결과를 얻어내게 하자는 것이 TDD이니..
TDD가 단순히 프로그래밍 개발 스킬이나 개발 시퀀스만을 말하는 것은 아니다. 발생할 소지가 있는 것들을 예상하고, 계획하고, 수행하고, 요구에 빨리 대응할 수 있도록 하는 개발 방법론이다. 단순히 개발을 서포팅 할 수 있는 툴을 잘 사용하는 것으로 탄탄하고 빠른 결과물을 보여줄 수 있다고 생각하면 잘못된 생각일것이다.
세미나에서 김창준님은 TDD의 룰을 다음과 같이 설명한다.
1. 살리고
2. 번개와 잉크
3. 가설우선
4. 기어바꾸기
5. 순서
6. 분화
7. 몰입
8. TII (That's interesting)
9. SFDPOT
10. Test Point
11. 말하듯이
12. Computer aided test
사실 세미나를 듣지 않으신 분들은 저 말 뜻을 모두 이해하지는 못한다. 뭐 그렇다고.. 저런것들이 어떠한 개발 방법보다 좋다라는 것도 아니기때문에, TDD방법론을 숭배(?)할 필요는 없지만... 나에게 필요한 것이 무엇이고, 그것을 TDD에서 사용하는 방법들을 체득하여 얻으면 된다. That's it!
전체적으로 이틀동안 많은 내용을 전달하기에는 시간이 부족한 면이 많았다고 생각된다. TDD방법론에 입각하여 학습과 Feedback을 중요시하는 것때문에, 주어진 시간내에 좀더 실질적인 것들을 보여줄 필요가 있는 자리가, 참가자들의 수많은 의견과 토론에 집중되어서 시간이 다소 지체되었기 때문이다.
하지만, 좋은 내용 몇개는 건진것 같다. 그것을 내가 하는 일에 적용하는 숙제를 받았는데, 그 숙제를 하지 않는다면 TDD는 그냥 내가 아는 개발방법론중 하나로만 남을것이고, 충분히 연습하고 경험해보려 노력한다면, TDD의 이점을 충분히 내 연구에 반영할 수 있을거라 생각한다.
그 세미나에 이 책을 쓰신 채수원님도 오셨다는...
'Essay > 특별한 날' 카테고리의 다른 글
2012년도가 지나갔다. (0) | 2013.01.01 |
---|---|
블로그 이사갑니다. www.hwanglab.org (2) | 2012.03.28 |
2015년.. (8) | 2010.08.25 |
12월 19일 '째즈 루나틱' 뮤지컬을 보다. (0) | 2009.12.20 |
에버의 소리여행 연극 (0) | 2009.02.23 |