Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

[Book] 스트럿츠 2 프로그래밍

  스트럿츠 2 프로그래밍 

스트럿츠 2 프로그래밍 - 8점
현철주.민상기.정광선 지음/에이콘출판

내가 꿈에도 그리던(?) WAF(Web Application Framework)에 드디어 발을 디밀었다. 스프링이냐 스트럿츠2냐는 어려운 선택이지만 일단 스트럿츠2를 택했다. 국내에 아직 스트럿츠2에 대한 책은 별로 나오지 않았다. 이 책과 다른책 2권인 것으로 알고 있다(현재로서는...) MVC Model 2에 대한 전반적인 개념이해는 충분히 가지고 있었고 최근 프로젝트에서 MVC Model 1으로 진행하면서 어떤게 필요하고 불편한지도 어느정도 느끼고 있던 터였다. 내가 있는 환경에서는 프레임워크를 거의 사용하지 않고 몇몇 사업에서 사용한다고 하더라도 그냥 얹어만 놨지 그 프레임웍에서 제공하고 있는 것을 이용해서 개발하지는 않기 때문에 난 아직 프레임워크를 접할 기회를 갖지 못했었다.

그러다 이번에 진행하는 사업에서 얘기가 진행되다가 "스트럿츠2 올릴까?"해서 주저없이 "예"하고 그 담날부터 이 책을 봤다. 보고난 후의 느낌이라면 "이걸 왜 안써!!" 정도???  아주 대략적인 개념만 가지고 있었지만 보면서 내내 "그래 이렇게 개발해야지"하는 생각이 계속 났다. (물론 이 얘기는 책 얘기가 아니라 스트럿츠2 얘기다.) 처음에는 익숙하지 않아서 좀 해맬수도 있지만 MVC의 완전한 분리, 그리고 가장 좋게 느껴진것은 인터셉터와 예외처리들... 프레임워크라면 당연히 개발방법을 어느 정도 강제함으로써 사람이라면 어쩔수 없이 할수 밖에 없는 실수를 줄여주고 개발의 속도를 높여준다. 

난 실수를 줄여주는 부분에 훨씬 관심이 갔다. 따로 모듈을 만든다고 하더라도 보안처리, 예외처 등을 처리하다보면 개발하는 것 만큼 복잡해지고 또 한번에 하지 못하고 지적받을때마다 하다보면 어딘 추가되고 어딘 안되고 나중엔 어디가 어디까지 처리됐는지도 헷갈려버리는 상황에 처하기 일쑤고 그러면 자연히 누락된 부분이 생길수 밖에 없다. 안생기는게 더 신기할 정도다... 그런 부분을 프레임워크안에서 제공해주는 기능으로 전체관리를 해준다는 것은 정말 매력적으로 보였다.(실제 해보면 또 장점이 있고 단점이 있겠지만... 아~ 그리고 물론 프레임워크 안써도 필터를 쓸수 있기는 하지만.....)



이제 책 얘기를 좀 해볼까? 책의 목차는 상당히 잘 되어 있는 편이다. 대부분 스크린샷을 제공하고 있고 세세한 부분까지 설명해 주기 때문에 개념을 잡고 이해하는데 큰 도움이 된다. 아주 간단한 예제를 통해서 스트럿츠2가 어떤식으로 동작되는 지를 가르쳐준다음 각 고급기능에 대해서 상세하게 설명해 주는 것도 상당히 괜찮았다. 난 책을 읽으면서는 왠만하면 코딩을 잘하지 않는 편인데 이번에는 바로 실무에 써먹어야 되기도 했고 나에겐 새로운 영역이었기 때문에 상당히 많은 예제들을 따라해 보았다. 설명하려고 하는 부분에 대한 이해만 도울수 있는 정도의 적절한 예제가 제공되고 있는 느낌이고 처음엔 무슨 소린가 하더라도 한번 예제를 따라해 보면 대부분 이해를 할 수가 있었다. 백문이불여일타라고 하지 않는가... ㅎㅎㅎ

거의 모든 설명의 패턴이 동일하다 처음에 어떤 기능인지를 대략적으로 설명한뒤에 거기에 필요한 부연설명들을 한다. 그리고 이걸 위해서 어떻게 동작할 예제를 만들것인지를 말해주고 동작구조에 대한 그림과 함께 동작방식을 얘기하고 따라할 수 있는 소스를 제공한다. 그리고 그 뒤에 소스에 대한 설명을 한다. 이걸 죽~ 따라하면 이해하는데 전혀 무리가 없을 정도로 자세하다.

각 기능별로 설명과 예제가 함께 있기 때문에 레퍼런스로 활용하기에도 괜찮을듯 하고 많이 쓰는 Ajax, 파일처리, 유효성검사, i18n, 로깅등에 대해서도 자세하게 다루고 있기 때문에 스트럿츠2를 사용하는데 필요한 것은 거의 대부분 담고 있는듯 하다. 그리고 사업들에는 많이 필요할듯한 대표적인 플러그인들도 간단히 예제와 함께 설명해 주고 있다. 물론 플러그인들 부분은 실제로 활용을 하려면 별도의 자료를 찾아봐야 할듯 하다.(이건 뭐 양이 많으니 단점이라고 얘기한것은 아니다.)



이렇게 몇권 나오지 않은 것중에서 고를때는 선택권은 없지만 과연 이중에 좋은 책이 있을가 하는 생각에 망설이게 되는데 스트럿츠2를 입문하기에 적절한 책이라고 생각한다. 다만 아쉬운 점은 이렇게 각 기능을 죽~ 설명한 다음에 대부분의 책에서 마지막으로 나와야 할 종합예제. 더 구체적으로 말하면 서버사이드쪽에서 설명하기도 좋고 이해하는 쪽에서도 좋다고 생각하는 게시판예제!!! 이게 없다. 단편적으로는 거의 이해를 하고 책보면 따라할 수 있을텐데 보는 내내 계속 찜찜하던 것은 개발을 하면 한 페이지에도 수많은 기능들이 필요한데 이렇게 됐을때 이런 것들이 어떻게 유기적으로 구성되어야 하는지가 머릿속에 잘 그려지지가 않았다. 마지막에 게시판 예제같은 것이 하나 제공됐으면 딱 이해됐을텐데....

그 리고 이 책은 마치 매뉴얼처럼 아주 객관적으로만 설명하고 있다. 이게 있지만 이거보단 이렇게 하는게 더 좋다고 생각한다든가 하는 등의 저자의 주관적인(?) 얘기는 거의 들어있지 않다. 그러다 보니 스트럿츠2의 태그라이브러리를 이용하면 Ajax등도 간단하게 쓸 수 있는데 나같이 의심많은 놈은 복잡한 코드를 이렇게 자동으로 찍어주는게 별로 신용이 가지 않았고 결과물을 어느정도까지 커스터마이징이 가능할 지도 감이 잘 오질 않았다. 처음 접하는 입장으로써 이걸 써야되나 말아야 되나 하는 고민들..... 특히 나같은 경우는 prototype.js를 사용하는데 스트럿츠2에서 제공하는 것은 Dojo를 이용하고 있었다. ㅡ..ㅡ

Ajax 에서 많이 사용하는 첫 셀렉트박스를 선택하면 두번째 셀렉트박스의 옵션값이 설정되는 것도 아주 간단히 <s:doubleselect />태그를 이용해서 만들수 있는데 자바스크립트를 직접 다루는 것을 더 좋아하는 나로써는 그냥 이걸 이용하는게 좋을지 하는 등의 고민은 직접 해야한다. ㅡ..ㅡ (물론 책이 모든 고민을 해결해 주는 것은 아니지만...ㅎㅎㅎ)


뭔지 알았으니까 이젠 만들어보면서 이해를... ㅋㅋㅋㅋㅋ

2008/11/15 01:15 2008/11/15 01:15