Top

Play Framework Cookbook 한국어판 [생산성 높은 자바 웹 개발 플레이 프레임워크]

  • 원서명Play Framework Cookbook (ISBN 9781849515528)
  • 지은이알렉산더 릴젠
  • 옮긴이박재성
  • ISBN : 9788960772724
  • 30,000원
  • 2012년 02월 06일 펴냄
  • 페이퍼백 | 392쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 웹 프로페셔널

책 소개

생산성 높은 자바 웹 개발 프레임워크 플레이(Play) 프레임워크의 진일보한 기능을 활용하는, 실제로 동작하는 애플리케이션 예제를 통해 플레이 프레임워크의 전체적인 윤곽을 단계적으로 차근차근 익힐 수 있는 실용서다. 독자들은 플레이 프레임워크의 전체 영역을 학습할 수 있으며, 많은 예제와 애플리케이션을 통해 깊이 있는 지식을 전달받을 수 있을 것이다. 자바의 기초를 학습한 후에 이 책을 읽는다면 웹 애플리케이션을 개발하기 위해 필요한 기술 요소들이 무엇인지 한눈에 조망할 수 있을 것이다. 점점 더 복잡해져 가는 자바 진영에 몸담은 웹 개발자들이 한 번쯤 꼭 읽어봐야 할 책이다.


[ 소개 ]

진일보한 개념의 플레이 프레임워크를 적극 활용하는
60여 가지 실용 예제를 통한 실전 노하우


『Play Framework Cookbook 한국어판』은 초보자용 문서 이후의 내용을 다룬다. 생산성 높은 자바 웹 개발 프레임워크 플레이(Play) 프레임워크의 진일보한 기능을 활용하는, 실제로 동작하는 애플리케이션 예제를 통해 플레이 프레임워크의 전체적인 윤곽을 단계적으로 차근차근 익힐 수 있는 실용서다. 독자들은 플레이 프레임워크의 전체 영역을 학습할 수 있으며, 많은 예제와 애플리케이션을 통해 깊이 있는 지식을 전달받을 수 있을 것이다.


[ 이 책에서 다루는 내용 ]

■ 커스텀 PDF, RSS와 ATOM 피드 응답을 생성하는 커스텀 포맷을 반환하는 나만의 렌더 메소드를 구현하는 방법
■ 플레이에서 기본으로 제공하는 캐시에 대한 이해와 몇 줄의 소스 코드만으로 나만의 캐시를 구현하는 방법
■ 스프링(spring)과 주스(guice)로 구현된 레거시 애플리케이션을 통합하기 위해 이미 존재하는 모듈을 활용하는 방법
■ 외부 API가 정상적으로 동작하지 않는 동안에도 애플리케이션에 영향을 받지 않도록 외부 API와 통합하는 방법
■ 병목지점을 찾는 작업을 단순화하기 위해 애플리케이션 내부에 모니터링할 수 있는 커스텀 요소들을 추가하는 방법
■ 웹을 기반으로 외부에서 사용할 수 있는 나만의 API를 생성하는 방법


[ 이 책의 대상 독자 ]

이 책은 플레이를 활용해 애플리케이션을 처음 만들어 본 개발자나 플레이에서 제공하는 기본 문서를 읽은 개발자에게 가장 유용한 책이다. 즉 플레이에 대한 좀 더 깊이 있는 지식을 알고자 하는 개발자를 대상으로 집필했다. 자바에 대한 기본 지식과 웹 개발자에게 요구되는 HTML, 자바스크립트 같은 일부 기술을 이해한다면 이 책을 읽는 데 큰 도움이 된다.


[ 이 책의 구성 ]

1장, ‘플레이 기본’에서는 플레이의 기본적인 내용으로, 플레이를 설치한 후 애플리케이션을 생성하고 실행하는 과정을 다룬다. 2장부터 시작하는 본격적인 내용에 앞서 반드시 알아야 할 기본적인 내용을 전달하는 데 중점을 둔다.

2장, ‘컨트롤러 구현’에서는 이미 정의된 범위 내에서 모듈 클래스를 활용해 가능한 한 깔끔하게 컨트롤러를 유지하는 방법을 다룬다.

3장, ‘모듈 활용’은 몇 가지 모듈에 대한 간략한 개요와 모듈을 사용하는 방법을 다룬다. 이미 존재하는 도구와 라이브러리와 통합해야 할 경우, 모듈을 활용하면 개발 속도를 향상시킬 수 있다.

4장, ‘API 추가와 활용’에서는 실무에서 바로 적용 가능한 애플리케이션과 API를 통합하는 방법을 다룬 예제를 설명하며, 데이터 제공자로서 데이터를 제공하려고 할 때 알아야 할 몇 가지 팁을 제공한다. 또한 API를 다른 애플리케이션에 제공하는 방법도 다룬다.

5장, ‘모듈 구현 방법’은 모듈 생성을 위해 알아야 할 모든 내용을 설명한다.

6장, ‘실무에서 적용 가능한 모듈 예제’는 서비스 중인 애플리케이션에서 사용되는 몇 가지 예제를 다룬다. 퍼시스펀스(persistence) 레이어를 다른 모듈로 바꿔 통합하는 방법, 검색 기능의 개선을 위해 솔라(Solr) 모듈을 생성하는 방법, 여러 가지 분산 캐시 구현체 중에서 특정한 분산 캐시 구현체를 만드는 방법을 다룬다.

7장, ‘실 서비스 운영’에서는 사이트를 운영하기 시작할 때의 복잡성을 설명한다. 이 장은 개발자와 시스템 관리자를 대상으로 한다.

부록, ‘플레이 프레임워크에 대한 추가 정보’에서는 플레이를 사용할 때 도움이 되는 내용을 추가적으로 다룬다.

저자/역자 소개

[ 저자 서문 ]

자바 진영의 작은 혁명, 플레이 프레임워크

개발자로서 지난 몇 년 동안의 애플리케이션 개발을 살펴보면, 데스크탑 애플리케이션에서 웹 애플리케이션으로 상당한 변화가 있었음을 알 수 있다. 웹은 애플리케이션 개발의 주요 플랫폼으로 진화해 왔다. 또한 애플리케이션 개발과 일상 생활의 많은 부분에서 중요한 위치를 차지할 것이다. 결과적으로 웹으로의 변화를 가속화할 것이다. 오늘날 휴대전화가 인터넷에 항상 연결된, 마치 강력한 노트북처럼 발전하리라고 10년 전에 누가 상상이나 했겠는가?

인터넷은 소비자와 생산자 사이의 관계를 곧바로 연결할 수 있게 한다. 이는 웹이 애플리케이션 개발자가 사용하기 쉬우며, 다루기도 쉬운 플랫폼임을 의미한다. 주위를 둘러보면, 최근 몇 년 동안 많은 애플리케이션 프레임워크가 인터넷을 중심으로 진화해 왔다. 이들 프레임워크는 10년 전처럼 단순하고 평범한 웹 페이지 이상을 제공하는, 어느 곳에나 존재하는 플랫폼으로 웹을 해석했다. HTTP에 기반을 둔 웹은 업계에서 증명된 프로토콜 중 최고의 데이터 제공자가 되었다. 인터넷(최상위 프로토콜로 HTTP를 가지면서 분산화된, 고도로 활용 가능한 네트워크)은 오늘날 애플리케이션의 주요 부분의 핵심이다. 더불어 다른 개발 영역도 몇 년의 시간이 지나면서 웹으로 대체됐다. 또한 브라우저는 운영체제를 대체하고 있다. 데스크탑 애플리케이션처럼 동작하는 구글 문서도구(docs)처럼, 필요한 기능을 모두 갖춘 웹 애플리케이션이 점점 더 큰 인기를 끌고 있다. 구글 V8과 스파이더몽키(SpiderMonkey) 같은 자바스크립트 엔진은 몇 년 전에는 상상하지도 못했던, 상당히 빠른 웹 브라우저 성능을 제공한다. 이는 로컬 시스템에 설치한 애플리케이션과 비슷한 사용자 경험을 웹 애플리케이션이 제공할 수 있는 단계가 되었음을 의미한다.

오늘날 많은 소프트웨어 개발자들이 웹 개발에도 종사한다. 하지만 이는 상당히 큰 문제를 야기한다. 소프트웨어 개발의 대부분은 추상화, 도구, 프레임워크, 개발자에게서 복잡도를 숨기려고 시도하는 언어(처음에는 좋게 들린다.)에 기반을 둔다. 밀리초 내에 전 세계로 전달되는 IP 패킷에 주의를 기울이는 웹 개발자는 없다. 레이어의 복잡도를 줄이려고 소프트웨어를 추상화하고 레이어를 만들었다. 이로 인해 개발자는 소프트웨어를 지탱하는 기반 프로토콜의 기능을, 의도하지 않았지만 숨겨 버릴 수 있게 됐다. 많은 프레임워크는, 웹에 존재하는 애플리케이션은 제외하고, 마치 데스크탑 애플리케이션 같은 프로그래밍 형태를 닮아가려는 시도를 한다. 하지만 HTTP와 HTTP 기능을 사용해야 하기 때문에 애플리케이션 프레임워크에서 HTTP 기능을 쉽게 감추어 버릴 수 없다.

이는 특히 자바 진영에서 문제가 크다. 자바 진영에서 정의한 표준은 서블릿 스펙이다. 서블릿 스펙에서는 웹 애플리케이션이 표준 방법으로 접근하려면 어떻게 접근해야 하는지를 정의한다. 이는 활용 가능한 대부분의 웹 프레임워크에서 HttpServletRequest, HttpServletResponse, HttpServlet, HttpSession 같은 클래스를 사용한다는 것을 의미한다. 서블릿 스펙은 HTTP 프로토콜의 추상화를 자바 애플리케이션으로 정의한 것으로서, HTTP가 몇몇 부분에서 복잡성을 가지기 때문에 정말 좋은 스펙이다. 하지만 한편, 서블릿 스펙은 프레임워크로 하여금 지금까지 결코 도전하지 못했던 관례를 따를 수밖에 없도록 강제한다.

장고(Django), 레일스(Rails), 심포니(Symfony) 같은 많은 웹 프레임워크는 많은 스펙을 구현해야 한다는 부담을 갖지 않는다. 또한 표준화된 생태계에 맞출 필요도 없다. 대부분 자바 웹 프레임워크는 이와 관련해 결코 의문을 제기하지도 않는다. 자바 진영에는 서블릿 스펙을 구현하는 뛰어난 웹 프레임워크들이 많이 존재한다. 그레일스(Grails), 태피스트리(Tapestry), 구글 웹 툴킷(Google Web Toolkit), 스프링 웹 MVC, 위켓(Wicket) 등이 이에 해당한다. 하지만 플레이에는 한 가지 차이점이 있다. 플레이는 완전히 자바 기반으로 구현하지만, 장고나 레일스처럼 빠른 배포가 가능하다. 플레이 프레임워크가 궁극적으로 제공하고자 하는 기능이 바로 기민한 배포 기능이다.

이 기능이 상당히 인상적이지 않은 것처럼 들리지만 실상은 그렇지 않다. 자바 기반으로 빠른 배포가 가능하다는 사실은 두 가지를 의미한다.

• JVM과 JVM 생태계를 활용: 이는 셀 수 없이 많은 라이브러리, 검증된 스레드, 높은 성능에 접근할 수 있음을 의미한다.
• 개발자 재사용성: 실질적으로 자바 개발자들은 자바 언어를 좋아한다. 나 또한 이 부류에 해당한다. 자바 개발자가 백엔드 언어로 자바스크립트를 사용하도록 설득을 시도해본 적이 있는가? 또는 PHP? 그루비와 스칼라는 매우 좋은 언어다. 하지만 함께 일하는 개발자가 다음 프로젝트에서 새 프레임워크와 새 언어 배우기를 원치 않는다. 나는 동적인 언어의 IDE 지원에 대한 논쟁은 다루지 않겠다.

또한 짧은 개발 주기는 경제적인 이슈다. 소프트웨어 개발자는 정말 많은 비용이 든다. 따라서 개발자가 ’컴파일-배포-재시작‘ 주기에 시간을 낭비하기를 원치 않는다. 플레이 프레임워크는 이 문제를 해결한다.

새롭게 등장하는 모든 웹 프레임워크(파이썬의 장고, 루비의 레일스, 자바스크립트 노드제이에스의 익스프레스제이에스expressjs)는 그들 자신만의 아키텍처 스타일을 도입하고 있다. 이들 웹 프레임워크는 HTTP가 최상위 구성요소다. 반면 자바 진영에서 HTTP는 단지 자바 애플리케이션을 실행해야 하는 프로토콜일 뿐이다.

따라서 플레이는 순수하게 자바를 기반으로 하면서, HTTP에 초점을 맞춘 프레임워크이며 더 짧은 반복주기와 더 빠른 배포가 가능하도록 함으로써 개발 속도를 높일 수 있도록 많은 지원 기능을 제공한다.

이 책은 플레이 내용 대부분을 설명한다. 또한 웹 애플리케이션을 구현할 때 플랫폼을 불문하고 어떤 개발자보다도 빠른 개발이 가능하게 하는 데 도움을 줄 것이다.


[ 저자 소개 ]

알렉산더 릴젠 (Alexander Reelsen)
독일 뮌헨에 살고 있는 소프트웨어 개발자이다. 그는 여행 예약 엔진, 홍보 관리와 메시징 시스템, B2B 이커머스 포탈 같은 다양한 소프트웨어 시스템을 개발한 경험이 있다. 그는 2009년부터 플레이 프레임워크를 사용해 왔으며, 순수 자바로 구현된 플레이 프레임워크의 단순함에 매료됐다. 그밖의 관심사는 공유 자원이 없는(shared-nothing) 웹 아키텍처를 통한 확장과 NoSQL 데이터베이스다.
그는 14살에 리눅스를 가지고 놀기 시작하면서부터 대부분 시간을 시스템 개발자로 일해왔다. 알렉산더는 공부를 해나가면서 소프트웨어 개발을 알게 되었으며, 웹 애플리케이션이 시스템 관리보다 더 흥미롭다는 결론을 내렸다.
프로그래밍을 하지 않을 때는 실내 농구나 길거리 농구를 즐긴다.
가끔 http://twitter.com/spinscale에 트윗을 한다. 메일 주소는 alexander@reelsen.net이다.


[ 옮긴이의 말 ]

가끔 미투데이, 페이스북, 메일을 통해 질문을 받을 때가 있다. “제가 자바 기반으로 웹 프로그래밍을 하려고 합니다. 무엇부터 시작하면 좋을까요?” 이 질문을 받았을 때 처음 드는 생각은 막막함이다. 막연하게 “이것부터 시작하면 좋지 않을까?”라는 생각을 하지만 확신이 서지 않는다. 확답을 하지 못하는 이유는, 내가 10년 이상을 자바 기반으로 하는 웹 개발자로 살아가면서 학습하고 사용하는 도구와 언어들이 너무 많기 때문이다. 2000년 전후에 자바 웹 프로그래밍을 시작했다면 자바와 서블릿(JSP 포함)부터 시작하면 사회에 첫발을 내디딜 수 있었다. 하지만 지금은 자바와 서블릿만으로는 어딘지 모르게 부족한 것이 사실이다.

맞다. 아무리 자바 진영에 많은 기술이 등장하더라도 자바와 서블릿부터 시작하는 것이 정석일 것이다. 하지만 사회는 자바, 서블릿 외에 더 많은 것을 요구한다. 스트럿츠2, 스프링, 마이바티스(MyBatis) 같은 프레임워크는 기본이며, 자바스크립트 같은 클라이언트 프로그래밍도 할 수 있기를 기대한다. 한 명의 자바 웹 개발자가 되기 위해 알아야 할 기술 요소가 너무나 많다. 학습해야 할 기술 요소가 많은 것은 어쩔 수 없는 자바 웹 개발자의 숙명이라고 하자. 아니 어쩌면 모든 웹 개발자의 숙명일 수도 있다.

이 같은 숙명임을 알면서도 자바 웹 개발자가 되기 위해 길을 걷기 시작한다. 하지만 처음부터 길을 막는 요소들이 많다. 그 중에서도 가장 큰 걸림돌은 여러 개의 프레임워크를 조합해 하나의 자바 웹 애플리케이션을 실행하기 위해 필요한 설정이 너무 많고 복잡하다는 것이다. 자바를 시작하는 많은 개발자들은 여기서 좌절감을 맛본다. 검색이나 지인의 도움으로 수많은 삽질 끝에 성공하겠지만 이미 자바 웹 프로그래밍 학습에 대한 열정은 사그라들고 좌절감만 느끼게 된다. “내가 진짜 이 길을 걸을 수 있을까?”라는 회의감. 그러면 주위에 있던 선배 자바 웹 개발자는 “요즘 애들은 너무 끈기가 없어.”, “그 정도 진통은 겪어야 진정한 개발자로 거듭날 수 있지.”라는 말로 후배들을 나무란다.

정말 지금 시작하는 개발자들이 끈기가 없는 것일까? 이 같은 추세가 사회 현상이기 때문에 일정 부분 공감하는 부분이 있다고 치자. 하지만 2000년에 프로그래밍을 시작한 초보 개발자를 바라보는 경력 10년차 개발자 또한 그 시절에는 세상을 똑같은 관점으로 바라보지 않았을까? 역사는 같은 과정을 되풀이하면서 한걸음씩 나아간다. 이 같은 문제를 사람에서 찾을 것이 아니라 우리가 사용하는 도구와 기술에서 찾아야 하는 것은 아닐까? 자바 또한 역사가 길어지면서 초보자가 넘기 힘든 산이 되어버린 것은 아닐까?

넘기 힘든 산이 되어버린 자바 진영에 또 하나의 프레임워크를 소개하겠다. 지금까지 등장한 수많은 프레임워크 때문에 그렇지 않아도 골치가 아프지만, 또 다른 프레임워크를 소개하려고 한다. 내가 여기서 또 다른 프레임워크를 소개하는 이유는 무엇보다도, 지금 자바 웹 프로그래밍을 시작하려는 초보 개발자들을 위해서다. 그들의 발걸음을 좀 더 가볍게 해줄 수 있는 도구가 되지 않을까라는 믿음 때문이다. 나는 이 책에서 다루는 플레이 프레임워크가 초보 개발자의 모든 문제를 해결해 줄 수 있으리라고는 생각하지 않는다. 플레이 프레임워크를 학습하더라도 웹 프로그래밍을 위해 학습해야 할 지식과 복잡도의 본질은 똑같다. 하지만 플레이 프레임워크는 초보 개발자가 처음에 넘어야 할 산을 좀 더 쉽게 넘을 수 있게 도와준다. 내가 처음 자바 기반으로 웹 프로그래밍을 시작할 때는 학습해야 할 기술 요소가 많지 않아 단계적으로 학습하면서 재미를 느꼈던 것이 지금까지 프로그래밍을 할 수 있는 큰 계기가 됐다. 초보 개발자에게는 단계적인 학습과 재미가 필요하다. 그 하나의 과정으로 플레이 프레임워크를 활용함으로써 자바 기반으로 웹 프로그래밍을 하는 것이 지루한 작업이 아니라 매우 재미있는 작업이라는 사실을 느껴봤으면 하는 바람이다. 그 이후에 좀 더 깊이 있는 주제로 한 단계씩 걸어간다면 지치지 않고 걸어갈 수 있으리라 생각한다.

이 책은 플레이 프레임워크의 기본적인 내용은 다루지 않는다. 플레이 프레임워크에서 제공하는 문서가 예제 위주로 매우 잘 정리되어 있기 때문에 굳이 다룰 필요가 없기 때문이다. 내가 플레이에서 제공하는 문서의 예제를 따라 해본 결과 2, 3시간이면 실제로 동작하는 예제를 따라 하면서 기본 내용은 학습할 수 있었다. 물론 10년 이상 개발 경험이 있기 때문일 수도 있겠지만 초보 개발자라도 몇 시간만 투자하면 기본적인 흐름은 이해할 수 있을 것이다. 그 이후에 이 책이 다루는 내용을 학습한다면 웹 애플리케이션을 개발하기 위해 필요한 기술 요소들이 무엇이 있는지 파악할 수 있을 것이다. 플레이 프레임워크를 깊이 있게 이해하고 학습하는 것도 중요하지만 이 책에서 다루는 기술 요소들을 파악하는 것이 무엇보다도 더 중요하다. 이 책의 예제들은 웹 프로그래밍을 위해 필요한 대부분 기술 요소를 포함하고 있기 때문이다. 그 중에서 자신이 관심이 가는 기술들을 찾아 하나씩 학습해 나가면 된다. 특정 기술을 습득하는 것이 중요한 것이 아니라 각각의 기술들이 가지고 있는 개념과 해결하려는 문제가 무엇인지를 파악하는 것이 더욱 중요하다. 그런 의미에서 점점 더 복잡해져가는 자바 진영에 몸담은 웹 개발자가 꼭 한 번쯤 읽어봐야 할 책이다.

플레이 프레임워크를 소개하는 또 하나의 이유는 삽이면 충분한 곳에 포크레인을 사용하지 말았으면 하는 바람 때문이다. 가볍고, 빠른 개발 기간을 요하는 애플리케이션임에도 불구하고 엔터프라이즈 급에서 필요한 도구를 사용할 필요는 없지 않을까? 상황에 따라 적합한 도구를 사용하면 좋을 텐데 국내 개발 현실은 한 가지 도구로 쏠림 현상이 너무 심하다. 예를 들어 스프링 프레임워크가 좋다고 하면 너도 나도 스프링 프레임워크 기반으로 애플리케이션을 개발한다. 굳이 스프링 프레임워크를 사용할 필요가 없음에도 이런 경향이 강하다. 따라서 관리툴이나 프로토타입과 같이 사용자가 많지 않고, 빠른 개발을 요하는 곳에는 플레이 프레임워크를 활용할 만한 충분한 가치가 있다. 물론 루비 같은 언어에 익숙하다면 또 다른 프레임워크를 활용해 더 효율적으로 개발할 수 있다. 하지만 자바에 익숙한 개발자밖에 없다면 플레이 프레임워크가 하나의 대안이 될 수 있다.

현재 프로젝트에서 사용해야 하기 때문에 플레이 프레임워크를 학습해야 하는 것이 아니다. 플레이 프레임워크가 가지는 접근 방식과 사상이 기존과 다르기 때문에 플레이 프레임워크의 학습을 통해 새로운 경험을 할 수 있기를 바라는 마음으로 이 책을 번역했다.


[ 옮긴이 소개 ]

박재성
2000년부터 자바지기(http://www.javajigi.net) 커뮤니티를 운영하면서 자바 개발 환경과 자바 관련한 문서를 공유하고 있다. 최근에는 외부 활동을 쉬면서 어떻게 하면 지속 가능한 프로그래밍과 프로그래머가 될 수 있을까에 대해 고민하는 중이다. 저서로는 『스트럿츠 프레임워크 워크북』(한빛미디어, 2003), 『자바 세상의 빌드를 이끄는 메이븐』(한빛미디어, 2011), 『프로그래머 그 다음 이야기』(로드북, 2011) 외 다수가 있다. 현재 아키에이지 MMORPG게임(제작사: XLGames)의 웹 서비스 개발을 담당하고 있다. 게임의 커뮤니티와 웹의 커뮤니티 통합을 통해 사용자에게 더 큰 가치를 전달하려고 노력 중이다.

목차

목차
  • 0장 플레이 시작
    • 플레이 다운로드와 설치
    • 통합 개발 환경 구축
    • 간단한 Hello World 애플리케이션
    • 단계적으로 학습하는 실제 애플리케이션 개발
  • 1장 플레이 기본
    • 새로운 애플리케이션 생성
    • 요청 URL과 컨트롤러 매핑
    • application.conf 파일을 활용하는 애플리케이션 설정 방법
    • 컨트롤러 구현
    • 모델 구현
    • 초기 데이터 생성을 위해 픽스처 사용
    • 뷰 구현
    • 커스텀 태그 만들기
    • 뷰에서 데이터 형식을 변경하기 위해 자바 익스텐션 사용
    • 애플리케이션 기능을 확장하기 위한 모듈 추가
    • 플레이에서 오라클이나 다른 데이터베이스 사용
    • 서스펜더블 요청에 대한 이해
    • 세션 관리에 대한 이해
    • 소개
  • 2장 컨트롤러 구현
    • 애노테이션을 활용한 URL 라우팅 설정
    • 캐싱 기본
    • HTTP 다이제스트 인증 사용 방법
    • 컨트롤러에서 PDF 문서를 생성하는 방법
    • 객체 바인딩에 커스텀 바인더를 사용하는 방법
    • 애노테이션 기반으로 객체에 대한 유효성 처리
    • 컨트롤러에 애노테이션 기반 권한 체크 기능을 추가하는 방법
    • JSON 데이터를 렌더링하는 방법
    • 나만의 renderRSS 메소드를 구현하는 방법
    • 소개
  • 3장 모듈 활용
    • 스프링을 활용한 의존성 주입
    • 주스를 활용한 의존성 주입
    • 보안 모듈 사용
    • CRUD 모듈에 시큐리티를 추가하는 방법
    • 파일 서비스에 몽고DB/GridFS을 사용하는 방법
    • 소개
  • 4장 API 추가와 활용
    • 태그를 활용해 구글 차트 API를 사용하는 방법
    • 애플리케이션에 트위터 검색을 추가하는 방법
    • 다른 결과 포맷을 관리하는 방법
    • JSON과 XML을 객체로 바인딩하는 방법
    • 소개
  • 5장 모듈 구현 방법
    • 커스텀 모듈을 추가하고 사용하는 방법
    • 회원가입 모듈을 유연하게 구축하는 방법
    • 이벤트에 대한 이해
    • 모듈 의존관계를 관리하는 방법
    • 서로 다른 애플리케이션에서 같은 모델을 사용하는 방법
    • 바이트코드 인핸스먼트에 대한 이해
    • 사설 모듈 저장소를 추가하는 방법
    • 스타일러스를 통합해 컨텐츠를 전처리하는 방법
    • 커맨드라인 옵션을 추가해 도조와 통합
    • 소개
  • 6장 실무에서 적용 가능한 모듈 예제
    • 바이트코드 인핸스먼트를 활용해 애노테이션 추가
    • 커스텀 퍼시스턴스 레이어를 구현하는 방법
    • 메시지 큐와 통합
    • 인덱싱에 솔라를 사용하는 방법
    • 커스텀 캐시 구현체를 만드는 방법
    • 소개
  • 7장 실 서비스 운영
    • 젠킨스를 활용한 테스트 자동화
    • 칼리무초를 활용한 테스트 자동화
    • 분산된 설정 서비스를 생성하는 방법
    • 분산 환경에서 Job을 실행하는 방법
    • 여러 대의 서버에 플레이 인스턴스 하나를 운영하는 방법
    • 지정된 컨트롤러가 SSL을 사용하도록 강제하는 방법
    • 나만의 모니터링 요소를 구현하는 방법
    • 이싱가와 통합
    • 뮤닌과 통합
    • 플레이와 함께 아파치 웹 서버를 사용하도록 설정하는 방법
    • 플레이와 함께 엔진엑스 웹 서버를 사용하도록 설정하는 방법
    • 플레이와 함께 Lighttpd 웹 서버를 사용하도록 설정하는 방법
    • 멀티 노드 배포에 대한 소개
    • 추가 정보

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안