'EasyMock'에 해당하는 글 1건

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
일반적인 자바 웹 개발 환경에서는 개발중 작은 클래스 파일 하나를 고치더라도 톰캣을 재시작하거나 리로딩 해야 합니다. PHP나 ASP와 같은 개발 환경에 비교해선 매우 비효율적이지요. 특히 제가 일하는 환경에서는 몇가지 이유로 톰캣을 재시작하거나 리로딩 하는 시간이 40초 이상 걸릴 때가 많습니다. 가끔 재시작하는 것을 바라보고 있노라면 지루함으로 인해 머리가 멍해지곤 합니다. 뭔가 해결책이 필요해 보였습니다.

이렇게 고통스런 나날을 보내던 중 JUnit을 이용한 테스트 코드가 보였습니다. 그것은 제게 새로운 가능성을 열어주었습니다. 그 가능성이란 톰캣 없이도 제가 만든 코드의 동작을 확인할 수 있게 해준다는 것입니다. 게다가 톰캣과는 명확하게 구별되는 장점들이 있습니다. 그러한 장점들에 대해 제가 느낀 위주로 소개를 드리고 싶습니다.

여러 장점 중에 첫번째는 속도입니다. 위 사례처럼 톰캣이 시작할 때 꽤 많은 시간을 소요하는 것에 비해, 테스트 코드를 수행할 때는 매우 빠르게 실행이 됩니다. DB연결이 필요한 DAO와 같은 통합 테스트가 아니라면 그야말로 번개같이 실행됩니다. 그 까닭은 톰캣이 시작할 때 전체 웹애플리케이션을 위한 모든 기능에 대해 준비하는 반면에, 테스트 코드는 테스트에 필요한 부분만을 로딩할 수 있기 때문입니다.

두번째는 편의성입니다. 예전에는 브라우저를 띄어놓고 테스트 할 때 여기 저기 눌러보아야 했습니다. 어떤 경우에는 로그인도 해야하고 여러 가지 설정을 힘들게 해야했죠. 하지만 테스트 코드로 잘 만들어 놓는다면 시작버튼만 눌러주면 됩니다. 그럼 테스트 코드가 쭉 실행이 됩니다.

세번째는 기록성입니다. 브라우저에서의 테스트는 기록이 남질 않습니다.(제가 알고 있는 기록하는 툴이 있긴합니다. 하지만 다양한 상황을 잘 다루진 못하는 것 같습니다.) 그에 반해 테스트 코드는 고스란히 남습니다. 이렇게 남은 코드는 이후 언제라도 다시 돌려볼 수 있습니다. 뭔가 수정을 해보고 나면 쭉 돌려봅니다. 녹색불이 켜지면 OK입니다. 제 경험을 말씀드리자면 프로젝트 후반에 가슴이 떨리는 몇몇 변동사항이 있었지만, 테스트 코드와 함께 수월하게 헤쳐나갈 수 있었습니다.

마지막으로 교육성입니다. 때로 테스트 되었던 API의 사용법이 가물 가물 할 때, 테스트 코드를 보며 사용법을 확인할 수 있습니다. 마치 예제코드처럼 활용되는 것이죠. 함께 일하는 분 중 한 분은 이렇게 말씀하시기도 했습니다. "새로 공통 API를 만들면 다른 사람이 사용법을 쉽게 알아볼 수 있게 테스트 코드를 만들어 주세요!"

이렇게 많은 장점이 존재하지만 분명 단점도 있습니다. 그것은 테스트 코드를 작성하는 추가 비용이 든다는 것입니다. 하지만 얻는 이득에 비하면 추가 비용은 매우 작은 부분이 아닐까 생각합니다. 고급 뷔페에 가서 최선의 능력을 발휘하기 위해 화장실 정도는 다녀올 수 있지 않나요? 분명히 화장실 가는 시간 정도야 투자할 수 있을꺼예요. :)

저는 테스트 철학이니 TDD니 이런 것들은 잘 모릅니다. 그렇지만 테스트가 좋습니다. 왜냐하면 테스트는 제가 해야 할 반복적인 일을 줄여주고 제가 좀더 재미있어 하는 문제에 집중할 수 있게 도와주기 때문입니다. 그러므로 제게 있어 테스트는 무척 "실용적"입니다. 저는 테스트를 자신있게 추천합니다.

WRITTEN BY
차민창
르세상스 엔지니어가 사회를 이끌어나가는 상상을 하며!

,