제품체험단 및 삶이야기/책에 대한 생각

'TDD 실천법과 도구' 느리지만 빠르게 가는길을 알려준다.

어린왕자같은 식객 2010. 7. 5. 07:30
728x90
반응형

 

 느리지만 빠른길은 항상 요원한 길이다. 거북이와 토끼의 경주만큼 누가 이길지 모르는 그러나 지나봐야 알수 있는 풀리지 않는 숙제같은 느낌을 준다.

 

소프트웨어 업계에 있으면서 특히 SI일이 가장 많은 이 분야에서 느리게 가는 방법은 죄악이나 다름이 없다. 그만큼 한국의 개발환경이 척박하는 말이 되기도 한다. 테스트 주도 개발 TDD라고 해서 언어의 새로운 방법론이나 획기적인 툴을 설명하는것은 아니다.

 

적어도 SW의 개발환경을 이해하려는 저자와 각 분야에서 고생하고 있는 SW개발자들을 위한 괜찮은 책이라는 생각이 든다. 보통 테스트라는것은 개발이 대부분 끝나거나 적어도 프로토타입의 개발이 끝났을 경우에나 적용되는 아주 작은 시간이라고 인식되곤 한다. 물론 현업에서 일하는 개발자나 SE등은 테스트 기간이 개발기간만큼 잡아먹을것이라는것을 누구보다 잘 알고 있지만 대부분 적당한 테스트(언젠가는 문제가 발생할것이라는 예언도 가능한)를 마지막으로 클라이언트에게 넘겨주고 떠나는것도 사실이다.

 

TDD라는것은 말그대로 초기부터..그리고 아주 사소한것부터 테스트를 단계적으로 피드백해나가면서 개발해나가는 방식을 일컫는다. 경영이나 사업계획쪽의 TEC알고리즘과 굉장히 유사한 느낌인데 제대로된 피드백이 중간중간 끊임없이 이어지는 방식이다. 물론 짝 프로그래밍과 같이 진행되면 더욱 좋은 결과물을 볼 수 있다는 가능성이 있지만 현업에서는 쉽지 않은길이긴 하다.

 

책을 전체적으로 리뷰를 하고 나면 아! TDD는 이렇게 시작하는거다라고 딱히 감은 안올수 있지만 적어도 개념적으로 정립은 되는 느낌이다. 테스트 주도개발이 무엇인지 간략하게 소개하는가 싶더니 유용한 툴에 대한 설명과 데이터베이스 테스트의 요령 및 패턴과 개발분야에서의 TDD의 현업에서의 다양한 시각과 실습 예제를 보여주는것은 상당히 유쾌한 경험이라는 생각과 시도해볼만한 방법론이라는 느낌이 든다.

 

저자는 책의 장이 시작할때마다 실패에 대한 많은 유명인들의 명언을 담고 있었다.

만일 당신이 때때로 실패하지 않는다면, 그건 안이하게 살고 있다는 확실한 증거다. -우디 앨런

 

-> 나의 해석 : 실패도 무언가 시도해야 느끼는 법이다. 자기가 잘하는 일만 한다던가 지금까지 하는방법을 고수한다면 실패란 있을수 없고 또한 발전도 없다

 

성공은 열정을 잃지 않고 실패를 거듭하는 와중에 나온다. - 윈스턴 처칠

 

-> 나의 해석 : 어떤 목표를 이루고 싶다는 열정이 있다면 작은 실패는 얼마든지 뛰어넘을 수 있다.

 

실패는 좀 더 현명하게 다시 시작할 수 있는 기회다 - 헨리 포드

 

-> 나의 해석 : 실패에서 무엇을 배울수 있는 사람에게는 실패는 성공으로 가는 디딤돌

 

이런 많은 실패에 대한 유명인들의 발언을 써놓은 이유가 뭘까? 보통 소프트웨어를 개발하면서 작은실패를 두려워하기 때문에 우선 다 만들어놓고 마지막에 밤을 새서 코드를 뒤집는일을 선택하는 경우가 허다하다. 실패란것이 한국사회에서 얼마나 용납이 되지 않으면 그리고 일정이라는것이 개발자를 얼마나 몰아세웠으면 그럴까하는 안타까움이 밀려든다.

 

TDD라는 것은 코드를 작성하다가 실패를 경험하는것이 아니라 나중에 발생할 큰 문제에 대한 작은 피드백일 뿐이다라고 말하고 싶은듯 하다.

 

특히 코드를 작성하고 떠나는 개발자들에게 '최고의 프로그래밍 팁'은 가슴이 서늘하게 해줄 문장이다.

"당신이 사는곳을 아는 어떤 매니악한 연쇄살인범이, 당신이 작성한 코드의 유지보수 작업을 맞게 될 거라고 늘 생각하면서 코딩하세요" 얼마나 섬뜩한가? 그러나 현실에서 전임자 혹은 전 프로젝트의 코드를 받아보면 살인충동이 일어날때를 많이 경험했을 것이다. TDD는 이런 문제에 조금더 현명하게 대처할 수 있지 않을까?

 

마지막으로 옛날에도 읽고 웃었던 묘비명이 이곳에도 쓰여 있었다. "우물쭈물하다가 내 이럴 줄 알았다." 버나드 쇼의 묘비명에서 발췌를 했다는데 얼마나 인생이 짦고 허무한가를 단적으로 드러내는 말이다.

 

당신의 인생은 아무것도 시도하지 않기에는 너무나 짦다. 우물쭈물 하는 당신의 오늘은 이제 해와 함께 넘어가고 있다.

 

반응형