Tdd live spring camp 2013

7,200 views

Published on

스프링캠프 2013의 TDD 라이브 발표 자료
발표 영상은 http://www.youtube.com/watch?v=AE7K-16dEjo 에서 확인하실 수 있습니다.

Published in: Technology

Tdd live spring camp 2013

  1. 1. TDD Live Spring Camp 2013 with Scala 최범균 (madvirus@madvirus.net, 트위터: @madvirus)
  2. 2. 목표 ● TDD 느껴보기 ○ 조금 더 현실에서 볼 만한 예제 ○ 코딩 하는 과정을 지켜보면서 ‘아~’ 하는 느낌 얻기 ● 사전 필요 지식 ○ JUnit, Mock에 대한 기본 지식 필요 ● TDD가 뭔지는 설명하지 않음
  3. 3. TDD ● Test Driven Development 테스트 주도 개발 ○ 제품 코드 만들기 전에 테스트 먼저 작성하기 ● 기본 흐름 (완료할 때 까지 반복) ● 테스트 작성 순서 ○ 쉬운 것, 예외적인 것 → 어려운 것, 정상적인 것 실패 테스트 작성 테스트 성공시키기 코드 청소하기
  4. 4. 구현해 볼 것 ● 웹 로그인 기능 Login Controller Login Command AuthService Authentication UserRepository User
  5. 5. 라이브 1 - AuthService ● 인증 서비스 Login Controller Login Command AuthService Authentication UserRepository User
  6. 6. 라이브 1 - AuthService ● TDD 순서 ○ 테스트 클래스 만들기 ○ 객체 생성하기 (쉬운) ○ ID 값이 비정상인 경우 (쉬운, 정상에서 벗어난) ○ PW 값이 비정상인 경우 (쉬운, 정상에서 벗어난) ○ User가 존재하지 않는 경우 (정상에서 벗어난) ○ ID에 해당하는 User가 존재하는데, PW가 일치하지 않는 경우 (정상에서 벗어난) ○ ID와 PW가 일치하는 경우 (정상) ■ 인증 정보를 리턴
  7. 7. 라이브2 - LoginController ● 웹 요청 처리 Login Controller Login Command AuthService Authentication UserRepository User
  8. 8. 라이브 2 - LoginContrller ● LoginController ○ 비슷한 순서로 진행 ■ 폼 요청 처리 (쉬움) ■ 폼 전송 시, LoginCommand 값 이상, 폼 뷰 리턴 (비정상) ■ 폼 전송 시, ID/PW 불일치, 폼 뷰 리턴 (비정상) ■ 폼 전송 시, ID/PW 일치, 성공 뷰 리턴 (정상) ● 쿠키 생성 확인 * 시간 관계상, 거의 만들어진 코드로 살펴 봄
  9. 9. 라이브 3 - Spring MVC 테스트 ● 웹 관점에서 컨트롤러 테스트 ○ 컨트롤러 설정이 올바른지 확인 ○ 응답 결과(JSON/XML 등)과 올바른지 확인 ● 브라우저/서버 NO! 테스트 코드 YES! ○ spring-mvc-test 사용 ● 여기선 맛 보기만 ○ 더 자세한 내용은 이어지는 세션에서!
  10. 10. 우릴 기다리는 더 많은 이야기... ● 스프링 통합 테스트 ○ @RunWith(SpringJUnit4ClassRunner.class) ● 스프링 MVC 테스트 ○ MockMVC: 바로 다음 세션! ● DB 통합 테스트 ○ DB Unit ● 테스트 계층 구조 ○ @RunWith(Enclosed.class)
  11. 11. 정리 ● TDD 장점 ○ 짧은 호흡 ■ 흐름(컨텍스트)을 유지, 집중력 향상 ■ 문제 찾기 용이 ● 테스트 직전에 작성한 코드에서 문제 발생 가능성 높음 ○ 점진적 코드 완성 ■ 필요한 코드만 쓰도록 유도 ○ 회귀(regression) 테스트 기반 ■ 코드 수정에 대한 자신감, 과감한 리팩토링 가능 ● Mock ○ 외부 시스템 없이 핵심 코드 작성 가능 ○ 필요한 경우 임시 구현 사용
  12. 12. 참고자료 ● TDD 관련 서적 ○ 테스트 주도 개발 (켄트 벡 저) ○ 객체 지향 설계와 실천 (스티브 프리먼 저) ○ Test Driven (Lasse Koskela) ● 본 강의 자료 ○ http://javacan.tistory.com/entry/TDD-Live-in-SpringCamp-2013 ■ 본 발표 자료와 강의 영상 포함 ● TDD 관련 비디오 ○ 백명석님 TDD 강의 자료 (4회) ■ http://youtu.be/wmHV6L0e1sU (TDD 1) ■ http://youtu.be/c-Pv2ia05Ek (TDD 2) ■ http://youtu.be/fFwDMzML7hI (TDD 3) ■ http://youtu.be/X4JtF2BfA0U (TDD 4)
  13. 13. 광고 ● 코드 리뷰 함께 해요! ○ 코드에 대한 리뷰를 받아보고 싶은데 ■ 마땅한 선배 개발자가 없나요? ■ 주변이 다들 바쁜가요? ○ 자리를 만들어서 같이 리뷰해 보아요~ ■ 준비물은 코드를 볼 수 있으면 됨 (노트북, IDE) ○ 연락주세요! ■ 이메일: madvirus@madvirus.net ■ 트위터: @madvirus ○ 그냥 개발 얘기도 합니다.
  14. 14. Q&A

×