2010/01/08 13:00:01

 

 

테스트 주도 개발 책을 읽었다.

( 최근에 훑어읽기..  했음 )

 


테스트 주도 개발   (Test-Driven Development)
 
8.44 | 네티즌리뷰 18건
켄트 벡  저 김창준 역 인사이트 2005.01.02기본정보 더보기
리뷰쓰기 책찜하기

 

 

 

 

 

책 정보 출처 : 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 찾게 될 것이라는 켄트 벡 형님의 말이었다.

 

마무리 #

내가 생각하지 못했던 부분들과 정리되지 않았던 생각들을 정리해주는 내용들이 많이 있어서, 이 책을 읽는 시간이 상당히 의미 있는 시간이었다.

 

 

 

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.

'2. T. D. D.' 카테고리의 다른 글

002. TDD ( Test Driven Development )  (0) 2010/01/19
Trackback 0 | Comment 0

 

 

작성자 : LogerC

시간 : 2009/12/29 23:14:25

 

3시간동안 학습하고, 1시간 동안 견고한 코드를 만들자.

 

초보 개발자들의 쉽게 하는 행위가

열씸히 삽질해서, 원하는 결과가 나오면, 그 코드를 가지고 사용합니다.

물론 그 방법이 나쁜건 아닙니다.

단지, 프로젝트가 점점 거대해 질수록 버그는 늘어나고, 수정이 불가능해줄뿐 아니라, 예기치 않은 테스트 결과가 나타나게 됩니다.

 

이를 방지하기 위해서 여러가지 방법들이 도입됩니다.

이런 방법을 알려주는 것이 바로 [ 서적 ] 입니다.

 

만약 3시간동안 삽질을 하지 않고, 본인이 2시간동안 관련서적을 검색하고

1시간동안 관련 정보를 색인하여, 대충이라도 읽어 보았다면.. 어땟을까요?

 

마찬가지로 원하는 결과만 나오면, 그 코드를 사용하는 것이죠.

 

물론, 삽질했던 것보다, 좀 재미없고, 지루하겠죠.

 

하지만.. 모르는 길을 스스로 개척하는 것보다,

먼저 지나간 사람들이 만들어둔 길을 따라가는 것이

가장 현명한 방법이라고 생각합니다.

물론, 어느 누구도 만들지 않은 길이라면 스스로 개척해야겠죠 ^^

 

상당히 힘든일이라 생각되지만...

힘든만큼 얻는것도 많다고 생각합니다.

 

 

바로 앞에 보이는 달콤한 마시멜로에 넘어가지 마세요.

조금만 참고 견디고, 노력한다면.. 훨씬 큰 보답이 있습니다.

 

그래서 저는 오늘도,

어느 누구도 알아주지 않는, 스스로를 위한 준비를 하고 있습니다.

 

 

 

 

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.

'1. 개발자의 자세 > 좋은 습관' 카테고리의 다른 글

030.A. 3시간-학습, 1시간-견고한코드  (0) 2010/01/19
Trackback 0 | Comment 0

youGom's Blog is powered by Daum & tistory