2010/01/08 13:00:01
테스트 주도 개발 책을 읽었다.
( 최근에 훑어읽기.. 했음 )

책 정보 출처 : http://book.naver.com/bookdb/book_detail.nhn?bid=1486282
크게 느낀점을 간략하게 적으면 아래와 같다.
Bottom-Up 개발 방법이 가능하다는 것
초록 막대 테스트를 코드에 심어 놓음으로써 지속된 리펙토링을 통해 견고한 코드가 생긴 다는 것
진정한 테스트 주도 개발 마스터가 되는 것은 끊임 없는 노력을 통한 연습에 결실이라는 것
매우 아쉬운 점이 하나 있다.
그것은... java script나 max script 또는 flash action script등의 별 특이한 script 언어들을 다뤄 봤었지만...
python 스크립트 언어에 대해서는 배워 보고 싶었지만, 기회가 없었다.
하필... 그 python언어를 가지고 테스트 프레임워크를 써주신 켄트벡 형이 약간 밉긴했다. ㅋㅋ
덕분에 python을 한번더 배워보고 싶다는 생각이 들게 된 계기이기도 했다..
그러나.. 현 시점에서 영어가 더 배우고 싶을 뿐만 아니라, 시급하다는 것이다.. ^^
그리고, 스스로에게 놀란점이 있다.
내가 디자인패턴을 학습한 뒤, 모든 사물 및 눈으로 보이는 형상화 된 것을 객체지향적으로 설계를 시도한적이 있다.
참으로 놀라운건.. 모든게, 객체지향적으로 구성될 수 있고, 표현될 수 있고, 사용될 뿐만 아니라, 집약하여 원리를 뽑아 낼수 있다는 것이다. 그 뿐이 아니라, 수학 또는 과학에서 일컫는 [ 원리 ] 라는 이 개념도 적용이 가능하다. 물론, 가장 오래된 건축도 객체지향적으로 풀어낼수있으며, 격투기나 기타 운동관련된 것도 객체지향으로 풀어낼 수 있다. 그 내용이 TDD 책에서 나왔다는 점이다.
( 코드를 예를 드는 것이 편할 것 같다.. )
또한 모든 내용들을 객체지향적으로 풀어낼 뿐 아니라, 복잡하게 꼬여 있는 코드들도 객체지향적으로 리펙이 가능하다는 것이다. 이말을 좀더 학식적(?) 으로 풀어내자면, 일반적으로 설계를 하고 개발진행하는 것은 Top-Down방식인데, Bottom-Up 방식 적용이 가능하다는 것이다.
내가 배울 때, 소프트웨어 공학의 초기에는 안전한 소프트웨어 개발을 위해서는 Top-Down방식을 도입하여, 목표설정을 알맞게 하여, 견고한 소프트웨어를 만들자는 거였다.
그러나.. 객체지향을 제대로 이해한다면, Top-Down이 필수조건이 아니라, 선택 조건이 될수 있다.
Bottom-Up방식을 도입하여, 유연한 소프트웨어를 얼마든지 만들어 낼수 있다. 그와 관련된 내용은 TDD 책 내용의 초반부 ( 1/3 부분 )에 잘 나와있다.
개인적인 생각으로 TDD책 중 가장 어려운 부분이 책 내용의 초반부가 아닐까 하는 생각을 한다.
내 입장에서는 중간 부분 ( 2/3 부분 ) 이 가장 어려웠는데, 이유는.. python의 문법을 몰라서 어려웠지만, 대략 무슨말 하는지는 알 수 잇었다. 다음에 python 문법을 학습하고 TDD 책을 한 번 더 읽어봐야겠다는 생각을 했다.
정리해 보자면, 내 스스로에게 놀라고, 이 책을 보면서 동시에 놀란점은..
이 책을 보기전에, 내 스스로가 테스트 주도 개발을 향하고 있었다는 점이고,
이 책을 보면서 놀란 것은, 객체지향적 사고를 가진다면 누구나 자연스럽게, TDD 찾게 될 것이라는 켄트 벡 형님의 말이었다.
내가 생각하지 못했던 부분들과 정리되지 않았던 생각들을 정리해주는 내용들이 많이 있어서, 이 책을 읽는 시간이 상당히 의미 있는 시간이었다.
이 글은 스프링노트에서 작성되었습니다.
| 002. TDD ( Test Driven Development ) (0) | 2010/01/19 |
|---|
작성자 : LogerC
시간 : 2009/12/29 23:14:25
3시간동안 학습하고, 1시간 동안 견고한 코드를 만들자.
초보 개발자들의 쉽게 하는 행위가
열씸히 삽질해서, 원하는 결과가 나오면, 그 코드를 가지고 사용합니다.
물론 그 방법이 나쁜건 아닙니다.
단지, 프로젝트가 점점 거대해 질수록 버그는 늘어나고, 수정이 불가능해줄뿐 아니라, 예기치 않은 테스트 결과가 나타나게 됩니다.
이를 방지하기 위해서 여러가지 방법들이 도입됩니다.
이런 방법을 알려주는 것이 바로 [ 서적 ] 입니다.
만약 3시간동안 삽질을 하지 않고, 본인이 2시간동안 관련서적을 검색하고
1시간동안 관련 정보를 색인하여, 대충이라도 읽어 보았다면.. 어땟을까요?
마찬가지로 원하는 결과만 나오면, 그 코드를 사용하는 것이죠.
물론, 삽질했던 것보다, 좀 재미없고, 지루하겠죠.
하지만.. 모르는 길을 스스로 개척하는 것보다,
먼저 지나간 사람들이 만들어둔 길을 따라가는 것이
가장 현명한 방법이라고 생각합니다.
물론, 어느 누구도 만들지 않은 길이라면 스스로 개척해야겠죠 ^^
상당히 힘든일이라 생각되지만...
힘든만큼 얻는것도 많다고 생각합니다.
바로 앞에 보이는 달콤한 마시멜로에 넘어가지 마세요.
조금만 참고 견디고, 노력한다면.. 훨씬 큰 보답이 있습니다.
그래서 저는 오늘도,
어느 누구도 알아주지 않는, 스스로를 위한 준비를 하고 있습니다.
이 글은 스프링노트에서 작성되었습니다.
| 030.A. 3시간-학습, 1시간-견고한코드 (0) | 2010/01/19 |
|---|