2010년 3월 29일 월요일

TDD의 조언들

제가 개발하는 시스템에 TDD(테스트 주도 개발)와 CI를 꼭 적용해 보고 싶습니다. TDD로 이뤄줄 낼 수 있는 객체지향성과 테스트 자동화가 시스템 개발에 큰 도움이 될 수 있다고 생각하기 때문입니다. 이번에 XUnit Patterns를 구매하여 공부할겸 TDD책을 다시 보며 기억을 상기시키고 있습니다.
TDD라는 것이 하나의 방법론인 만큼 그것에 대한 지식만큼 Practice도 중요한 것 같습니다. TDD를 적용해 보고 싶은데 뭔가 잘 안된다면 이런 조언들이 도움이 될 것 같아서 정리해 봅니다.
  • 격리된 테스트 (TDD 재출간판 페이지 206)
    • 테스트간에는 서로 영향이 없어야 한다. 테스트를 전체 애플리케이션으로 하는 것보다 좀 더 작은 단위의 스케일로 한다.
    • 테스트를 격리하기 위한 노력은 결과적으로 응집도는 높고 결합도는 낮은 디자인으로 이끈다.
  • 테스트 목록(p.208)
    • 시작하기 전에 작성해야 할 테스트 목록을 적어보자. 너무 많아질 수 있으니 몇 시간 내로 해결할 것으로 제한하자.
    • 너무 많은 것을 한번에 통과시키려고 하지 말자.
    • 리팩토링이 필요한 것들도 적어놓자.
  • 단언 우선(p.211)
    • 테스트를 작성할 때 단언(assert)을 제일 먼저 쓰고 시작하자.
    • 단언 우선은 '올바른 결과는 무엇인가?', '어떤 식으로 검사할 것인가?'에 집중하게 해준다.
  • 테스트 데이터(p.213)
    • 읽기 쉽고 따라가기 좋은 데이터를 선택하자.
    • 실제 데이터를 구할 수 있다면 사용하자.
  • 한 단계 테스트(p.217)
    • 다음 발 내닫기. 작성된 테스트 목록에서 다음 대상을 고를 때는 새로운 무언가를 가르쳐 줄 수 있으며, 구현할 수 있다는 확신이 드는 것으로 한다.
  • 시작 테스트(p.219)
    • 당신에게 뭔가 가르쳐줄 수 있으면서도 빠르게 구현할 수 있는 테스트를 선택하라.
  • 싸구려 책상, 좋은 의자(p.228)
    • 에어론 의자(Aeron chair)를 구해라.
여기까지 책에서 제공된 TDD에 관한 일반적인 조언이었습니다. 실제적인 내용들은 직접 해보며 그때그때 올리겠습니다.

5주년 4/3일 + ... 캠핑카 여행

2010년은 5번째 4/3일 입니다. 렁사와 저의 기념일이죠. 실제로 5번째는 아니고 날짜를 지정하고 기념한 걸로 계산하면 두 번째구요.
다음 주 주말(4월 3일)에 렁사 + 정여사 + 나 는 동해 망상해수욕장에 있는 오토캠핑장으로 캠핑 아닌 캠핑을 가기로 했습니다. 몇몇 안 좋았던 일도 정리하고 맛난 것도 먹고, 캐러밴 체험도 할겸 해서요. 사실 기념일에 놀러갈 계획은 아니었는데 어떻게 일정이 저렇게 나왔네요. 기념일도 함께 챙겨야 할지 고민입니다.
  • 캠핑카에 대해서는 이전부터 관심이 있었고, 여행 사전조사를 하며 더 알게되고 놀란 사실은 캠핑 관련 사업이 굉장히 번창하고 있다는 것입니다. 한국일보의 기사에도 요즘의 캠핑 열기에 대해서 다룬 걸 봤었지만 막상 예약하려고 했더니 다음 달 예약이 종료되어 있던 것입니다. 원래 자라섬오토캠핑장에서 캐러밴을 예약하려고 했었는데 말이죠. 이렇게 사업이 잘 되는 걸로 봐서는 캠핑 앱을 개발한다던가 돈벌이 대상 목록에 추가하는 것도 괜찮을 것 같습니다.
  • TBS 애청자로서 기억하는 공익광고 중에 '자연을 찾아 나서는 우리는 방사능이나 .. 보다 자연에게 무서운 존재일 수 있습니다.'라는게 있었습니다. 캠핑, 좋지만 깔끔하게 해야겠다고 마음먹었습니다.
  • 일정을 간략히 짜봤는데 역시나 먹고 노는게 다였습니다.
직딩들이라 일하자고 바쁜 가운데 재미있는 여행이 되었으면 좋겠습니다. 다녀와서 후기 남길께요.

2010년 3월 22일 월요일

최근 구매한 도서 목록..

아 그나저나 광화문 교보가 4월부터 5개월간 휴업한다니 참 아쉽습니다. 괜찮은 놀이터였는데 말이죠. 지난 주 금요일 교보문고 바로드림 서비스로 구매한 책까지 해서 최근에 구매한 책들의 목록입니다.
  • 섹스의 진화 : 제러드 다이아몬드(Jared Diamond)가 쓴 책입니다. 그가 쓴 다른 책인 총, 균, 쇠를 읽고 반하여 구매했습니다. 제목부터 노골적으로 저런 단어를 쓴다는건 야한 책이 아니라는 증거입니다. ㅎㅎ
  • 리팩토링 데이터베이스 : 리팩토링 이라면 외부(인터페이스)를 그대로 유지한 체 내부를 재구성하는 방법인데요. 제가 참여한 몇몇 프로젝트에서는 데이터베이스가 변경되면 구현된 코드와 기능들이 송두리째 깨져버리는 일일 종종 발생했습니다. 이런 풍지박산 없이 데이터베이스를 바꾸려면 어떻게 해야할지 배워보려고 구매했습니다. 역시 최근에 구매한 Continuous Integration에서 언급된 책이기도 합니다. 이것도 Martin Fowler Series 인데 정말 이 시리즈의 모든 표지에는 다리(bridge)가 있네요..
  • xUnit 테스트 패턴 : TDD를 좀 더 적극적으로 도입하고 싶은 마음에 어떻게 하면 jUnit을 더 잘 쓸수 있을까 하는 고민에서 구입하였습니다. 폭력적인 두께에 겁이 좀 나기도 합니다. 하지만 그만큼 더 상세히 설명했겠죠?
  • 로마 황제 : 로마인 이야기 이후 역사에 문외한국(國) 무관심시(市)에 살던 제가 역사에 빠지기 시작했습니다. 구성방식이 독특한게 장점이자 단점인 것 같습니다. 지하철 도서할인판매하는 곳에서 샀어요.
  • 앨리스의 이상한 나라(?) : 영화 이상한 나라의 앨리스를 보고 나서 궁금해서 구입했습니다. 정말 이상하더군요! 근데 루이스 캐럴이 소아성애자였는데 진짜인가요?
  • 지속적인 통합 : 프로젝트의 삽질과 개노가다에서 벗어날 수 있는 길이 될 수 있을까요?
대략 여기까지가 올해동안 구매한 책의 목록입니다. 이상한 나라의 앨리스만 다 읽어봤네요 ㅋㅋ. 기록할 가치가 있는 것들은 읽고나서 꼭꼭 포스팅 남겨야지!

삶에 감동

텍스트큐브에는 계정이 없어서 만들었습니다.
몇 번째 블로그인지는 잘 모르겠습니다. egloos -> wordpress -> naver -> blogger ...

이번엔 제대로 해보고 싶습니다. 요즘 여유가 넘치거든요 ㅋㅋ