2008.11.21 09:37

3기 스터디 제안 - TDD

2기 스터디를 연장할 것이냐. 정리하고 다음 주제로 넘어갈 것이냐. 고민의 기로에 서있습니다. 저희가 목표로 삼은 것은 "페이지 처리가 가능한 게시판" 입니다. 그 이 외의 주제(로그인, 정렬. 댓글, 태그, 덩덩덩)는 번외로 다루기로 했습니다. 목적은 스프링 활용법에 익숙해 지자는 것이었죠.

아마 아직 두 번이나 남았으니까 충분히 기능 구현하는데 일정상 무리는 없을 것으로 생각합니다. 대신 기능 구현 이외에 "테스트를 어떻게 할 것인지?", "어떤 구조로 설계 해야 하는지?", "스프링 2쩜 대에서는 어떻게 구현했는지?", "스트럿츠와 iBatis로는 어떻게 했는지?". "인터셉터를 어디서 어떤 용도로 사용했는지?" 등등을 보느 재미가 쏠쏠해서 스터디를 계속 이어가고 싶어집니다.

하지만 그렇게 계속 이어 나가다 보면 끝이 없을 것같고 스터디도 자칫 루즈 해지기 마련이니까, 원래 계획대로 스터디를 끝내고 차기 스터디를 진행하면 좋겠습니다.

오늘 아침 토비님의 글 알면서 왜 안할까? TDD를 보면서 든 생각인데, TDD 연습을 해보는 건 어떨까요? 예전에 사부님한테 볼링 점수 계산이나, 양파 껍질 까기 같은 TDD 훈련을 받을 적이 있는데 정말 재밌었습니다. 단순하게 재미만 있었던게 아니라 "어떤걸 테스트 해야 하는지", "테스트를 어떻게 만들것인지" 에 대해 많은 고민을 하게 되고 그런 것에 익숙해지면 실전 개발에서도 TDD까진 아니여도 개발 후에 테스트 코드를 작성할 때 유용하게 써먹을 수 있었습니다.

스터디 방식은 각자가 동일한 문제를 TDD로 풀어오고 코드를 비교해 보는거죠. TDD를 훈련을 하기 전에 필독서로 "Test Driven Development(테스트 주도 개발)"를 반드시 읽기로 하고(금방 읽습니다. 실습까지 하면서 해도 후딱..), 스터디를 하면서는 xUnit Patterns나 JUnit Recipe를 보면서 테스트 기법들을 개인적으로 학습하시다 보면 많은 도움이 될 것 같습니다.

어떤가요? 재밌겠죠? ㅋㅋ 의견을 주세요. 전 청소하러 갑니다~
Trackback 0 Comment 6
  1. 기선 2008.11.21 09:42 신고 address edit & del reply

    참고로 4기 스터디까지 제안하자면, 다시 실전으로 돌아가서 게시판 심화 개발 스터디를 하는 겁니다. TDD까지 해본 뒤라 뭔가 더 달라진 코드와 테스트가 나타나지 않을까 싶네요.

  2. 써니 2008.11.21 10:04 address edit & del reply

    환타스틱! 한 표 던집니다~ 아니, 이 한 몸 던져야 할까요? ^^;

  3. is윤군 2008.11.21 10:24 신고 address edit & del reply

    크하하하.. 흥미로운 주제네욥;;ㅋ이번 2기 스터디를 하면서.. 테스트 코드를 작성하는데.. 제일 힘이들고 있는 중입니다.. 가장 큰 이유는 무지함 때문이었죱;; 푸하하하;; ㅡㅡ; 좋은지 나쁜지 남들의 이야기를 듣는것보다.. 한번 배워서 적용해보고 과연 정말 좋은가? 아님 시간낭비인가를 판단해볼 수 있는 좋은 기회가 될것같아서 좋을듯 싶습니다.. 사설이 길어졌네욥;ㅋ 저도 한표! 입당~

  4. 김재진 2008.11.21 13:59 신고 address edit & del reply

    그러게요 좋습니다. 3기때는 주말출근안하겠죠 ㅠㅠ

  5. Hoyeol 2008.11.21 16:27 신고 address edit & del reply

    으음.. 저는 개인적으로 간단한 게시판 구현에 대한 일이 점점 커지고 있습니다.
    저랑 친구들이 작업하는 이슈 트래커에서 기존의 포럼이 말그대로 아주 기본적인 기능에, View Design마저 잘 되어있지 않은 상황에서
    (원래 목적은 CRUD정도만 구현할 예정이었습니다만..)
    이번에 다시 코딩룰을 재정립하고 작업을 해나가는 상황이라 수정이 많이 일어나고 있습니다.
    실제로 저번에 아주 잠깐 보여드렸던 서비스/DAO의 책임이 분할되지 않은 상태등등의 아주 기초적인 수준에서 갈아엎고 View, Controller, Model , 거의 새로 만든다고 보시면 될겁니다..
    간략히 정리하면..
    1. 기본적인 CRUD,
    2. 기존에 저희 이슈트래커에서 이슈 입력에서 사용하는 FCK editor를 포럼글의 입력에 사용할 생각
    3. paging
    4. file attach
    5. 해당 프로젝트에 기본적인 포럼외에, admin 임의의 용도로 게시판 추가/삭제

    2기 스터디가 2번의 모임후에 끝난다면, 제가 생각하는 완성된 게시판은 보여드리질 못할것같기도 합니다.
    4기까지 된다면 제가 번외로 작업을 계속진행할것이기 때문에 보여드릴수 있을것같습니다.
    어떤 단위로, 어떤 생각을 가지고 테스트를 진행할것인지에 대한 전체적인 경험이 매우 부족하기 때문에 3기 스터디 주제에 대해서는 대환영입니다.

  6. Arawn 2008.11.24 09:38 address edit & del reply

    실제 행한다는게 참으로 어려운 과제죠 ^^;;
    좋은 주제인것 같습니다. 저도 찬성이옵니다.