Etc2009. 1. 7. 23:25
쉬우면 아무나 다 한단다...
그래서 어려운가;;;
방식은 간단하게 코드 작성은 테스트를 도출 하고.....
그담에 테스트를 성공시키기 위해....
코드 구현을 한다......

참;;;; 말은 쉬우나;;;; 습관이라는게;;;;;
테스트에는 보아 하니 먼저 하는 부류와 늦게 하는 부류가 있다...
TDD는 그중에 전자이다......

테스트가 주가 되고 그 테스트에 맞추어서 개발하는 개념인듯;;
물론 테스트가 코드 작성후 만들어졌다고 해서 나쁜다 라는건 아니다..
단지 후자는 TDD철학과는 맞지 않는 것이다.....

헌데.. 둘다 테스트를 중요시 여기는 면에서는 머가 되었던 나쁘지는 않다....

얼마전 마소2002년 11월에 보물찾기라는 카테고리(라고해야하나??) 거시기 밑에 TDD단련하기 라는 제목에 글을 보았다.. 해당 글은 10월 부터 12월까지 연재 되는 글이었고...
어떻게 하다 보니 작성자에게 직접 PDF까지 받게 되는 일도 생기고 ... 어찌되었던;;;
읽다가 이건 머지 이런 느낌이 들었다.. ㅋ

해당 내용에는 ACM이 주최하는 ICPC 2001년 파이널 대회 기출문제를 TDD로 풀어가는 내용이다.. 헌데;; 웃긴건
2006년 12월 .. 정말 JAVA의 J 자도 잘 모르던.. 나에게 사부가 풀어보라면서 준 문제였다. 그당시는 TDD는 커녕 포문 돌리기도 버거울 초보 개발자였고.. 거기다가 영문으로 된 PDF문서를 주면서. "심심하면 한번 풀어봐~" 이말에;;
몇일 걸려 해석하고 이해 해서 ... 풀었던 문제였다.. ;;
기억으론 1주일이 넘게 그문제 하나 들고... 회사에서 시간날때마다 틈틈히 풀었던 기억이 난다...
결국 풀긴 풀었다..; 정말 뿌듯했다.. 그래서 코드를 자알 간직하고 있었고... 2년이 지난 얼마전 그 코드를 다시 열었다..;; 비교해보기 위해서..;;

TDD를 이용하여 문제를 푸는걸 보니 정말이지 머라고 해야하나 어려운 문제를 하나씩 하나씩 풀어가는 느낌? 그당시 나의 회상으론... 이면지에 경우의 수를 계산하면서 sysout로 수없이 도는 포문속에 디버깅을 하고 눈으로 직접 데이터가 변하는 것을 보아가며, 수많은 시행착오를 격으며 푸는 모습이 생생하다..

그런데 이건머 대수롭지 않은듯 풀어나가는 모습을 보니... 글쓰기 전에 사전에 다 풀어보고 계획하에 다듬어져있는 코드가 아닌가 싶을 정도의 체계적임을 느꼈다..

TDD를 공부해본다고 이런저런 책도 보고 자료도 찾아보고 ~ 했지만 실로 와닿을수가 없었다.. 다들 TDD보면서 한마디씩 하는게 개발할 시간도 없는데 언제 테스트 코드를 만들어 ~ 이러지 않느냐...
대다수의 웹프로그래밍은 그렇게 어려운 로직들이 들어가지 않는다.. 그러니.. 테스트의 중요성을 못느끼고 ... 수없이 쏟아져 나오는 오류들 앞에선 해당 개발자가 실력이 영없네;; 제대로 못하네~ 이런 이야기들만 하고 ....

흠..... 지금 다시 봐도 그때 푼 문제는 ... 쓰레기 코드다;;ㅋ 지금 보면 왜 저렇게 했지;; ㅡㅡ; 욕을 바가지로 하고도 남을 정도의 코드다;;
아직은 잘 모른다..... TDD.. 단지 수련을 하려고 입문한 수련생일 뿐이다.....;;
TDD를 수련하고 나면 크게 두종류로 나뉜다더라..... 테스트코드에 중독된 테스트 도리가 되던가.. 아니면 TDD 이게 머야~ 이러고 떠나버리는 사람들........

난 과연 어느편에 속할까? 전자? 후자? .... 아직은 잘 모르겠지만... 둘다 맘에 안든다;ㅋ 그냥 계속 수련해보고 싶다..ㅋ
왠지 끌린다.... 어려운 문제를 척척 풀는 모습이 너무 간지가 흐르기 때문에???? ㅋ

한번 풀어봐라 이문제;; ㅋㅋ
http://icpc.baylor.edu/past/icpc2001/Finals/Problems.pdf

Posted by is윤군
TAG ,

댓글을 달아 주세요