본문 바로가기

2015/064

TDD 테스트 주도 개발 프로그래머라면 다음과 같은 코드를 만들어야한다."Clean code that works!"TDD(Test Driven Development)는 이것을 추구하는 가장 현실적인 방법이다.수많은 하드웨어와 소프트웨어, 언어와 개발방법론, 프레임워크 등 끊임없이 쏟아져 나오는 IT업계의 신기술은 이 시대의 프로그래머에게 마냥 좋은 소식만은 아닌 것 같다. 프로그래머란 변화를 수용하지 않고는 가까운 미래마저 보장받기 어려운 직업이기 때문이다. 항상 새로운 것을 배우고 개척해야만 뒤쳐지지 않을 것이라는 부담이 우리를 억누르고 있고, 또한 일정한 나이가 지나면 지금껏 쌓아온 지식과 경험이 대부분 쓸모없는 것이 되어 버릴 것이라는 불안감이 늘 함께한다. 필자의 주관적인 느낌이지만, 여러분이 프로그래머라면 공감하는 부분.. 2015. 6. 13.
F. I.R.S.T - 깨끗한 테스트는 다음 다섯 가지 규칙을 따른다 빠르게 (Fast) : 테스트는 빨라야 한다. 테스트는 빨리 돌아야 한다는 말이다. 테스트가 느리면 자주 돌릴 엄두를 못 낸다. 자주 돌리지 않으면 초반에 문제를 찾아내 고치지 못한다. 코드를 마음껏 정리하지도 못한다. 결국 코드 품질이 망가지기 시작한다. 독립적으로 (Independent) : 각 테스트는 서로 의존하면 안 된다. 한 테스트가 다음 테스트가 실행될 환경을 준비해서는 안 된다. 각 테스트는 독립적으로 그리고 어떤 순서로 실행해도 괜찮아야 한다. 테스트가 서로에게 의존하면 하나가 실패할 때 나머지도 잇달아 실패하므로 원인을 진단하기 어려워지며 후반 테스트가 찾아내야 할 결함이 숨겨진다. 반복가능하게 (Repeatable) : 테스트는 어떤 환경에서도 반복 가능해야 한다. 실제 환경, QA .. 2015. 6. 13.
TDD (Test Driven Development) 법칙 세 가지 첫째 법칙 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 둘째 법칙 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 셋째 법칙 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 2015. 6. 13.
[redirect, forward] java controller method에서 다른 ?.do 를 실행하는 방법 forward @RequestMapping(value="/A.do") public String methodA(HttpServletRequest req) throws Exception{ return "forward:/B.do"; } request(한번 호출) -> A -> B A에서의 request parameter 들을 B에서 사용할 수 있다. redirect @RequestMapping(value="/A.do") public String methodA(HttpServletRequest req) throws Exception{ return "redirect:/B.do"; } request -> A -> request -> B A에서의 request parameter 들을 B에서 사용할 수 없다. 2015. 6. 11.