처음 '뇌를 자극하는' 시리즈를 접한 것은 '뇌를 자극하는 하드웨어 입문' 이다. 이런 책을 왜 진작 보지 못했을까 하는 아쉬움이 그리고 이제서라도 만나게 된데 대한 반가움이 묻어나는 책이었다. 학부생 시절 공부를 유난히 게을리 하긴 했었지만 - 나는 학부시절 제어계측을 전공했다 - 그 시절에 하드웨어 기본부터 PCB 제작에 이르기까지의 다양한 부분에 대해 쉽게 풀어주는 책 또는 사람이 존재했었다면 어느 하나 새로 시작하기 막막했던 초행길에 밤새워가며 몸으로 얻는 경험을 하지 않더라도 많은 도움이 되지 않았을까?
과거에 대한 안타까움은 접어 두고 책에 대한 이야기로 돌아가 보면, 뇌를 자극하는 시리즈가 추구하는 책의 흐름은 표지에도 나와 있듯이 '머릿속에 통째로 넣어 드리겠습니다'이다. '머릿속에 넣어 드리겠습니다'와 '통째로'를 구분하여 해석하여 볼 수 있는데, 전자는 읽기 쉽게 서술되어 있어 소설책 읽듯이 책을 읽는 행위만으로도 내용이 머릿속에 들어간다는 얘기이고, 후자는 그 내용이 일부에 국한된 내용이 아닌 전반적인 또는 모든 내용이라는 뜻이다. 이것에 혹여 내용의 깊이에 대한 문제제기의 우려가 있는 것은 아닐까 의심하는 사람들을 위해 이 책, '뇌를 자극하는 JSP & Sevlet'의 리뷰를 시작한다.
서문에서 저자는 서블릿과 JSP라는 분야의 책이 유난히 많이 나오는 요즘, 굳이 이 책을 저술하게 된 이유를 4가지로 요약한다.
1. JSP는 서블릿을 기반으로 하는 기술이며, 서블릿을 자세히 다룬 책은 드물고 특히 이들의 연관성에 대해 이야기하는 책은 없었다.
2. JSP와 서블릿 기술의 사용을 위해 자바프로그래밍 언어를 잘 알아야한다는 필요성을 강조하고 싶었다.
3. JSP는 HTML 문서 내에서 자바코드의 부분삽입 형태로 출발했지만 현재 간결한 익스프레션 언어와 액션이라는 문법이 등장했음에도, 충분히 알려지지도 않고 제대로 사용되고 있지도 않다.
4. 개발자와 웹디자이너들이 모여 공조/협력 할 수 있도록 일관성 유지를 위해 필요한 설계모델과 프레임워크를 제안 한다.
본 리뷰는 저자인 김윤명씨가 소개한 책을 저술한 이유들을 중심으로 진행해 볼까 한다.
첫 번째 특징인 JSP와 서블릿의 설명 그리고 그 둘의 관계에 대해서는 Part.1 JSP와 서블릿의 기초에서 6개의 장, 320여 페이지에 걸쳐 설명하고 있다. 개발 환경 구성을 위한 프로그램 설치 방법부터 동작 원리, 다양한 문법, 변수 사용 등 기초적인 내용들이 기술되어 있으며, 쿠키와 세션 등 들어는 보았으나 직접 접한 적은 별로 없는 것들, 익셉션 처리와 서블릿의 라이프사이클 등 기본적이면서 조금 깊이 있는 내용까지 자세하게 다루고 있다. 첫 번째 파트만 읽고 이해해도 서버를 운용하고, 웹에 게시판을 만들어 볼 수 있을 정도로 상세한 내용들이 놀랍다. - 그도 그럴 것이 이 책은 웹서버라는 것이 무엇인지 어떤 일을 하는 것인지 부터 아주 꼼꼼하게 해설해 주고 있어서 아무것도 모르는 상태에서 읽어도 술술 잘 읽히는 편이며, 책에서 발췌한 홈페이지 화면이나 프로그램의 버전 정보 등 독자가 책을 읽는 시기와 저자의 집필 시기가 상이하여 생길 수 있는 변경 가능한 요소들에 대해서도 섬세하게 설명되어 있다. 또한 요소요소에 독자들에게 생길 수 있는 의문과 실수에 의한 상황에 대한 답과 해결방법도 나와 있는 것은 이 책의 큰 장점이다.
두 번째/세 번째 특징인 프로그래밍, 특히 익스프레션 언어와 액션 등 JSP의 새로운 문법에 대해서는 Part.2에서 설명한다. 앞서 간단하게 설명한 것처럼 JSP가 본래 HTML 문서에 자바코드가 부분적으로 삽입되는 형태의 스크립팅 요소로 부터 출발했지만, 프로그래밍과 디자인 작업의 효율적인 분업화를 위해 그보다 더 간결하고 알아보기 쉬운 문법이 필요했으며 이를 이유로 등장한 것이 7장의 익스프레션 언어와 8, 9, 10장에서 다루는 액션이다. 단, 표준 액션은 모든 JSP 페이지에서 기본적으로 사용할 수 있지만 커스텀 액션은 컨테이너에 별도로 설치해야 사용을 할 수 있으므로 이를 세분화 하여 표준액션 사용방법과, 유용한 커스텀 액션을 모아 놓은 JSTL 라이브러리의 설치 및 사용 방법, 그리고 직접 커스텀 액션을 만들어 사용하는 방법까지 자세하게 소개한다. 또한 이들 사이사이에는 프로그래밍 문법과 툴에 대한 설명뿐만 아니라 기본적인 연산자에 대한 풀이를 해주는 등 역시 초보자도 쉽게 프로그래밍에 접근할 수 있도록 하는 노력을 아끼지 않는다.
마지막 특징으로 협업을 위한 내용들이 Part. 3에서 소개 된다. Part. 3 실무에 필요한 고급 기술에서는 앞서 배운 내용들에서 조금 모자라게 느껴졌던 깊이와 범위에 대한 아쉬움을 충족시켜 줄 내용들로 채워지는데, 11장에서는 공통되는 코드를 한 곳에 작성해 놓고 공통으로 사용할 수 있도록 필터와 래퍼에 대해 설명하고, 12장에서는 서블릿 클래스와 JSP 페이지 안에서 데이터베이스를 연동하는 방법을, 13장에서는 웹사이트를 구성하는 모든 서블릿 클래스와 JSP 페이지들이 일관성을 갖도록 설계모델과 웹템플릿을 설계하고 구현하는 방법을 안내한다. 이들을 통해 좀 더 전문적이고 구조가 탄탄한 안정적인 웹페이지 개발에 한 발 다가설 수 있을 것으로 기대된다.
900페이지나 되는 분량의 책을 읽어 내는 일은 여간 쉬운 일이 아니다. 더군다나 소설책이 아닌 프로그래밍 책을 발췌독이 아니라 정독하는 일은 두말 할 나위가 없다. 그런 면에서 이 책은 지겹거나 졸리지 않고 순수하게 뇌 속으로 들어온다고 느낄 정도로 자연스럽고 깔끔했다. 독자는 이 책을 통해 실용적인 웹페이지가 어떻게 구성되어 있으며 좋은 웹페이지의 시스템의 설계는 어떤 식으로 이루어져 있는지 그 흐름을 이해할 수 있을 것이다.
다만 무엇인가 화려하고 완성된 디자인의 웹페이지 소스 등을 기대했다면 실망하게 될지도 모른다. 이 책은 철저하게 JSP와 서블릿이라는 문법의 기본서를 자처하고 나선 책이므로 내실은 튼튼하되 화려하지는 않으니까. 하긴 어쩌면 그것은 웹디자인 책이 아닌 프로그래밍 책으로서의 당연한 모습일지도 모른다.
부디 이 책을 통해 많은 사람들이 즐거운 마음으로 웹프로그래밍을 할 수 있기를 기대해 본다.
덧. 좋은 책을 읽고 리뷰를 쓸 수 있게 해준 자바/Java/C/C++ 개발자모임 [Code人/코드인] 카페와 한빛미디어에 고마움을 전한다.
과거에 대한 안타까움은 접어 두고 책에 대한 이야기로 돌아가 보면, 뇌를 자극하는 시리즈가 추구하는 책의 흐름은 표지에도 나와 있듯이 '머릿속에 통째로 넣어 드리겠습니다'이다. '머릿속에 넣어 드리겠습니다'와 '통째로'를 구분하여 해석하여 볼 수 있는데, 전자는 읽기 쉽게 서술되어 있어 소설책 읽듯이 책을 읽는 행위만으로도 내용이 머릿속에 들어간다는 얘기이고, 후자는 그 내용이 일부에 국한된 내용이 아닌 전반적인 또는 모든 내용이라는 뜻이다. 이것에 혹여 내용의 깊이에 대한 문제제기의 우려가 있는 것은 아닐까 의심하는 사람들을 위해 이 책, '뇌를 자극하는 JSP & Sevlet'의 리뷰를 시작한다.
서문에서 저자는 서블릿과 JSP라는 분야의 책이 유난히 많이 나오는 요즘, 굳이 이 책을 저술하게 된 이유를 4가지로 요약한다.
1. JSP는 서블릿을 기반으로 하는 기술이며, 서블릿을 자세히 다룬 책은 드물고 특히 이들의 연관성에 대해 이야기하는 책은 없었다.
2. JSP와 서블릿 기술의 사용을 위해 자바프로그래밍 언어를 잘 알아야한다는 필요성을 강조하고 싶었다.
3. JSP는 HTML 문서 내에서 자바코드의 부분삽입 형태로 출발했지만 현재 간결한 익스프레션 언어와 액션이라는 문법이 등장했음에도, 충분히 알려지지도 않고 제대로 사용되고 있지도 않다.
4. 개발자와 웹디자이너들이 모여 공조/협력 할 수 있도록 일관성 유지를 위해 필요한 설계모델과 프레임워크를 제안 한다.
본 리뷰는 저자인 김윤명씨가 소개한 책을 저술한 이유들을 중심으로 진행해 볼까 한다.
첫 번째 특징인 JSP와 서블릿의 설명 그리고 그 둘의 관계에 대해서는 Part.1 JSP와 서블릿의 기초에서 6개의 장, 320여 페이지에 걸쳐 설명하고 있다. 개발 환경 구성을 위한 프로그램 설치 방법부터 동작 원리, 다양한 문법, 변수 사용 등 기초적인 내용들이 기술되어 있으며, 쿠키와 세션 등 들어는 보았으나 직접 접한 적은 별로 없는 것들, 익셉션 처리와 서블릿의 라이프사이클 등 기본적이면서 조금 깊이 있는 내용까지 자세하게 다루고 있다. 첫 번째 파트만 읽고 이해해도 서버를 운용하고, 웹에 게시판을 만들어 볼 수 있을 정도로 상세한 내용들이 놀랍다. - 그도 그럴 것이 이 책은 웹서버라는 것이 무엇인지 어떤 일을 하는 것인지 부터 아주 꼼꼼하게 해설해 주고 있어서 아무것도 모르는 상태에서 읽어도 술술 잘 읽히는 편이며, 책에서 발췌한 홈페이지 화면이나 프로그램의 버전 정보 등 독자가 책을 읽는 시기와 저자의 집필 시기가 상이하여 생길 수 있는 변경 가능한 요소들에 대해서도 섬세하게 설명되어 있다. 또한 요소요소에 독자들에게 생길 수 있는 의문과 실수에 의한 상황에 대한 답과 해결방법도 나와 있는 것은 이 책의 큰 장점이다.
두 번째/세 번째 특징인 프로그래밍, 특히 익스프레션 언어와 액션 등 JSP의 새로운 문법에 대해서는 Part.2에서 설명한다. 앞서 간단하게 설명한 것처럼 JSP가 본래 HTML 문서에 자바코드가 부분적으로 삽입되는 형태의 스크립팅 요소로 부터 출발했지만, 프로그래밍과 디자인 작업의 효율적인 분업화를 위해 그보다 더 간결하고 알아보기 쉬운 문법이 필요했으며 이를 이유로 등장한 것이 7장의 익스프레션 언어와 8, 9, 10장에서 다루는 액션이다. 단, 표준 액션은 모든 JSP 페이지에서 기본적으로 사용할 수 있지만 커스텀 액션은 컨테이너에 별도로 설치해야 사용을 할 수 있으므로 이를 세분화 하여 표준액션 사용방법과, 유용한 커스텀 액션을 모아 놓은 JSTL 라이브러리의 설치 및 사용 방법, 그리고 직접 커스텀 액션을 만들어 사용하는 방법까지 자세하게 소개한다. 또한 이들 사이사이에는 프로그래밍 문법과 툴에 대한 설명뿐만 아니라 기본적인 연산자에 대한 풀이를 해주는 등 역시 초보자도 쉽게 프로그래밍에 접근할 수 있도록 하는 노력을 아끼지 않는다.
마지막 특징으로 협업을 위한 내용들이 Part. 3에서 소개 된다. Part. 3 실무에 필요한 고급 기술에서는 앞서 배운 내용들에서 조금 모자라게 느껴졌던 깊이와 범위에 대한 아쉬움을 충족시켜 줄 내용들로 채워지는데, 11장에서는 공통되는 코드를 한 곳에 작성해 놓고 공통으로 사용할 수 있도록 필터와 래퍼에 대해 설명하고, 12장에서는 서블릿 클래스와 JSP 페이지 안에서 데이터베이스를 연동하는 방법을, 13장에서는 웹사이트를 구성하는 모든 서블릿 클래스와 JSP 페이지들이 일관성을 갖도록 설계모델과 웹템플릿을 설계하고 구현하는 방법을 안내한다. 이들을 통해 좀 더 전문적이고 구조가 탄탄한 안정적인 웹페이지 개발에 한 발 다가설 수 있을 것으로 기대된다.
900페이지나 되는 분량의 책을 읽어 내는 일은 여간 쉬운 일이 아니다. 더군다나 소설책이 아닌 프로그래밍 책을 발췌독이 아니라 정독하는 일은 두말 할 나위가 없다. 그런 면에서 이 책은 지겹거나 졸리지 않고 순수하게 뇌 속으로 들어온다고 느낄 정도로 자연스럽고 깔끔했다. 독자는 이 책을 통해 실용적인 웹페이지가 어떻게 구성되어 있으며 좋은 웹페이지의 시스템의 설계는 어떤 식으로 이루어져 있는지 그 흐름을 이해할 수 있을 것이다.
다만 무엇인가 화려하고 완성된 디자인의 웹페이지 소스 등을 기대했다면 실망하게 될지도 모른다. 이 책은 철저하게 JSP와 서블릿이라는 문법의 기본서를 자처하고 나선 책이므로 내실은 튼튼하되 화려하지는 않으니까. 하긴 어쩌면 그것은 웹디자인 책이 아닌 프로그래밍 책으로서의 당연한 모습일지도 모른다.
부디 이 책을 통해 많은 사람들이 즐거운 마음으로 웹프로그래밍을 할 수 있기를 기대해 본다.
마틴 @ 마틴 블로그 닷 넷
덧. 좋은 책을 읽고 리뷰를 쓸 수 있게 해준 자바/Java/C/C++ 개발자모임 [Code人/코드인] 카페와 한빛미디어에 고마움을 전한다.
본 리뷰는,
네이버 책 http://book.naver.com/bookdb/review_view.nhn?bid=6432326&review.seq=3138836
YES24 http://blog.yes24.com/document/3001553
인터파크도서 http://book.interpark.com/blog/martinblog/1892087
교보문고 http://booklog.kyobobook.co.kr/martinblog/947638
알라딘 http://blog.aladin.co.kr/749953186/4433629 과 함께 합니다.
네이버 책 http://book.naver.com/bookdb/review_view.nhn?bid=6432326&review.seq=3138836
YES24 http://blog.yes24.com/document/3001553
인터파크도서 http://book.interpark.com/blog/martinblog/1892087
교보문고 http://booklog.kyobobook.co.kr/martinblog/947638
알라딘 http://blog.aladin.co.kr/749953186/4433629 과 함께 합니다.
'[ 프로그래밍 ] > 프로그래밍 책' 카테고리의 다른 글
Head First Programming 파이썬으로 처음 배우는 프로그래밍 (0) | 2011.04.19 |
---|---|
자바 세상의 빌드를 이끄는 메이븐 (0) | 2011.04.19 |
엑셀 함수 바이블 (0) | 2011.03.21 |
Do it! bada 모바일 프로그래밍 (0) | 2010.12.15 |