한빛리더스 8기 2차 미션 우수 리뷰어 '이재빈' 님의 

 스프링을 이용한 RESTful 웹 서비스 구축하기 : 실전 예제로 배우는 REST 방식의 스프링 웹 서비스

도서 리뷰 입니다. [원본http://souljkei.tistory.com]





스프링을 이용한 RESTful 웹 서비스 구축하기

김강우 지음


드디어 기다리고 기다리던 봄이 왔다. 봄을 너무나도 좋아하던 나로써는 봄이라는 단어만 보면 기분이 좋아질 지경이다. 그런데 책 제목에 아예 스프링(Spring = '봄')이라는 단어가 쓰인 책을 발견하게 되었다. 얼핏 지나가면서 스프링과 스트럿츠에 대해서 들어본 적은 있지만 구체적으로는 무엇인지 알지도 못했었고, 웹 페이지를 꾸밀 때는 APM(Apache + PHP + MySQL) 이나 IIS + JSP + Oracle 정도로만 해봤기 때문에 나에게는 새로운 시도였다. 그러한 호기심에 이끌려 이 책을 선택하게 되었다.


스프링 프레임워크(Spring Framework)는 자바 플랫폼(Java Platform)을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 불린다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 우리나라에서는 공공기관의 웹 서비스 개발 시 사용을 권장하고 있고, 전자정부 표준 프레임워크의 기술로서 쓰이고 있다.

 

스프링은 다른 프레임워크에 비해 다음과 같은 특징을 지닌다.

  • 경량 컨테이너로서 자바 객체를 직접 관리. 각각의 객체 생성, 소멸과 같은 같은 라이프 사이클을 관리하며  스프링으로부터 필요한 객체를 얻어 올 수 있다.
  • 스프링은 POJO(Plain Old Java Object) 방식의 프레임워크. 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속 받을 필요가 없어 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍다.
  • 스프링은 제어 반전(IoC : Inversion of Control)을 지원. 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.
  • 스프링은 의존성 주입(DI : Dependency Injection)을 지원. 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.
  • 스프링은 관점 지향 프로그래밍(AOP : Aspect-Oriented Programming)을 지원. 따라서 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.
  • 스프링은 영속성과 관련된 다양한 서비스 지원. iBatis나 Hibernate 등 이미 완성도가 높은 데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공.
  • 스프링은 확장성이 높음.

 

이러한 스프링을 이용하여 RESTful Web Service를 제공하는 방법에 대해 알려주는 책이다. 이론적인 측면보다 실무 위주이기 때문에 처음에 이해하기 꽤나 힘들었다. 사실 지금도 완벽하게 이해하고 있다고는 말할 수가 없다는 것이 현실...

RESTful Web Service는 HTTP Protocol에서 서비스 할 수 있도록 설계되었다. HTTP의 Read, Update(PUT), Delete에 맞게 되자인 되어 있다.

이전 방식은 SOAP(SImple Object Access Protocol) 방식의 메시지를 이용한 서비스 요청 방식이다. 이 방식은 많은 정보들이 담겨 있어 무겁다. 하지만 REST방식은 URI를 이용하여 리소스를 요청하기 때문에 가볍고 신속하다.



이러한 특징들을 통해 Web Service를 구축하는 전반적인 과정에 대해서 설명해주는 책이 되겠다. 읽으면서 불편했던 점은 이론 부분이 상대적으로 부족해 정확한 개념을 파악하고 들어가기 힘들었다는 점, 전체적인 흐름을 파악하기 힘들었다는 점, 목차 구성에 대한 의문이 들었다는 점이다. 왜 지금 이러한 과정들을 하고 있는 건지 설명이 좀 더 추가적으로 들어가면 좋겠다는 생각이 들었다. 그리고 코드들만 무수하고 중간 중간 결과들이 웹 페이지로 어떻게 보이는지 시각적으로 보여주어야 독자들이 더욱 더 중간에 지치지 않고 잘 따라올 것이라고 생각한다. 본인은 이렇게 작성한 코드가 웹 페이지에서 어떻게 되는지 확인을 할 수가 없어서 많이 답답함을 느꼈다. 또한, 자바를 알고 있지만 스프링과 RESTful에 대해 잘 모른다면 조금은 읽기 힘든 책이라고 생각이 든다. 그러므로 기본 이론이 많이 탑재되어 있는 책을 한 번 읽어보고 따라해보는 것이 더욱 더 좋을 것 같다.

하지만 코딩을 해보면서 실제로 많은 난관에 부딪히는 것을 즐기는(?!) 프로그래머라면 과감히 선택할 것을 추천한다. 그리고 E-Book이라 현재 최신 버전인 Spring 3.5 버전으로 업데이트도 용이할 것이기 때문에 위에 불편한 점들이 고쳐진다면 충분히 소장가치가 있는 E-Book이 되지 않을까 생각한다.

더불어 봄의 향취를 느끼게 해주는 산뜻한 표지는 덤!

+ Recent posts