Top

스프링 부트 2 레시피 [다양한 예제로 스프링 부트 스타터부터 패키징까지 한 번에 따라하기]

  • 원서명Spring Boot 2 Recipes: A Problem-Solution Approach (ISBN 9781484239629)
  • 지은이마틴 데이넘(Marten Deinum)
  • 옮긴이최정호, 임진욱, 김명훈
  • ISBN : 9791161753478
  • 30,000원
  • 2019년 08월 16일 펴냄
  • 페이퍼백 | 380쪽 | 188*235mm
  • 시리즈 : 프로그래밍 언어

책 소개

요약

스프링 부트를 사용해 가볍고 빠르게 소프트웨어를 개발하고 검증하고자 하는 독자에게 유용한 책이다. 이 책을 통해 스프링 부트를 사용해 기본 애플리케이션 제작 방법, 반응형 웹 애플리케이션 제작 방법, 테스트 및 배포 방법, 인증과 권한관리 방법, 메시지와 로깅 방법 등 다양하게 활용할 수 있는 기능을 확인할 수 있다. 모든 내용은 예제 기반으로 구성돼 초보자도 쉽고 빠르게 습득 및 적용이 가능하다.

이 책에서 다루는 내용

█ 스프링 부트 2의 마이크로 프레임워크의 재사용 가능한 코드 얻기
█ 스프링 부트 2가 다른 스프링 API, 도구, 프레임워크와 어떻게 통합되는지 확인
█ 스프링 MVC, 스프링 웹 플럭스 및 스프링 웹소켓을 사용해 좀 더 간단하게 웹 개발에 접근
█ 웹 서비스 개발을 위한 마이크로서비스 활용 및 스프링 부트 애플리케이션과의 통합
█ 스프링 부트 웹 애플리케이션이 더 많은 작업을 수행하기 위한 퍼시스턴트 영역 및 데이터 계층을 원활하게 추가하는 방법
█ 스프링 부트를 사용해 좀 더 복잡한 자바 애플리케이션을 만드는 엔터프라이즈급 서비스의 통합

이 책의 대상 독자

애플리케이션을 간단히 개발하고 빠르게 작성하고자 하는 개발자를 위한 책이다. 스프링 부트를 사용하면 애플리케이션 구성이 단순해지고 배포와 관리도 단순해진다. 또한 독자가 자바와 스프링, 개발 IDE에 익숙하다고 가정해, 스프링의 모든 내부 구조와 상세한 작업이나 관련 프로젝트는 설명하지 않는다.

이 책의 구성

1장, ‘스프링 부트 – 소개’에서는 스프링 부트의 간단한 개요와 시작 방법을 설명한다.
2장, ‘스프링 부트 – 기본’에서는 빈을 정의 및 구성하고, 스프링 부트로 의존성 주입을 수행하는 방법에 대한 기본 시나리오를 설명한다.
3장, ‘스프링 MVC’에서는 스프링 MVC를 이용한 웹 기반 애플리케이션 개발을 다룬다.
4장, ‘스프링 MVC – 비동기’에서는 스프링 MVC를 사용한 비동기 웹 기반 애플리케이션 개발을 다룬다.
5장, ‘스프링 웹 플럭스’에서는 스프링 웹 플럭스를 사용한 반응형 웹 애플리케이션 개발에 관해 설명한다.
6장, ‘스프링 보안’에서는 스프링 보안을 사용해 스프링 부트 애플리케이션을 보호하는 방법을 알아본다.
7장, ‘데이터 처리’에서는 데이터베이스 또는 몽고DB 같은 데이터 저장소에 접근하는 방법을 설명한다.
8장, ‘자바 엔터프라이즈 서비스’에서는 JMX, 메일, 예약 작업 같은 엔터프라이즈 서비스를 스프링 부트와 함께 사용하는 방법을 소개한다.
9장, ‘메시징’에서는 스프링 부트를 사용해 JMS 및 래빗MQ로 메시징을 수행하는 방법을 소개한다.
10장, ‘스프링 부트 액튜에이터’에서는 스프링 부트 액튜에이터의 상태 및 메트릭 엔드포인트와 같은 운영에서 사용 가능한 기능을 다루는 방법에 대해 설명한다.
11장, ‘패키징’에서는 스프링 부트 애플리케이션을 실행 가능하게 만들거나 도커 컨테이너로 패키지 및 배포 방법을 설명한다.

저자/역자 소개

지은이의 말

환영한다. 이 책은 스프링 부트 2.1과 스프링 보안, 스프링 AMQP 등 지원되는 프로젝트를 사용해 소프트웨어를 개발하는 데 중점을 둔다.

지은이 소개

마틴 데이넘(Marten Deinum)

오픈 소스 스프링 프레임워크 프로젝트 제출자로 콘스펙트(Conspect)의 자바/소프트웨어 컨설턴트이다. 크고 작은 회사에서 주로 자바를 사용해 소프트웨어를 개발하고 설계했다. 또한 열정적인 오픈 소스 사용자이자 오랜 기간 동안 스프링 프레임워크의 팬, 사용자이며 지지자였다. 지금까지 소프트웨어 엔지니어, 개발 책임자, 코치, 자바 및 스프링 트레이너를 비롯해 다양한 직책을 맡았다.

옮긴이의 말

10년이면 강산이 변한다는 말이 있다. 강도 산도 시간의 흐름에 따라 피할 수 없는 많은 변화를 겪고 이겨내며 자연의 모습을 갖춰나간다. 이처럼 시간의 흐름은 다양한 패러다임의 변화를 이끄는 거대한 축이다.
소프트웨어 개발 방법론에서도 마찬가지다. 시간의 흐름에 따라 다양한 방법론이 제시됐고, 사용자의 요구 사항, 개발자의 요구 사항에 따라 그 시대를 이끄는 확고한 개발 패러다임이 존재했다.
과거에는 거대한 시스템을 구성해 최대한 많은 사용자를 수용하고, 다양한 기능을 한꺼번에 제공하기 위해 큰 비용을 들여 장기적으로 사용할 엔터프라이즈급 시스템을 구성하고자 하는 요구 사항이 많았다. 상대적으로 주기가 긴 요구 사항과 빠르지 않은 기술 변화는 거대한 시스템을 개발하고 운영하는 데 무리가 없었다.
반면 최근의 시스템 개발은 여러 가지 측면에서 다른 접근 방식을 요구한다. 시스템 사용자의 요구 사항은 짧은 주기로 변화하고, 개발자가 적용해야 하는 기술은 수도 없이 쏟아지고 발전하고 바뀐다. 그 배경에는 공유 지식의 발달과 그 부산물인 오픈 소스 소프트웨어의 증가가 큰 역할을 했다고 생각한다.
이러한 변화는 소프트웨어 개발 방법론에도 큰 변화를 가져왔다. 장기적 설계를 기반으로 정교하게 짜인 다양한 기능을 한꺼번에 제공하는 복잡한 프레임워크 기반의 개발 방법에서, 누구나 빠르게 단위 기능의 소프트웨어를 개발하고 테스트하는 가볍고 빠른 개발 방식을 선호하는 추세로 바뀌고 있다.
스프링 부트는 이런 개발 방법론에 딱 맞는 프레임워크라 생각한다. 가볍고 간편하게 ‘시연 가능한’ 애플리케이션을 생성할 수 있으면서도 기존의 스프링 프레임워크가 제공하는 기능을 모두 제공한다. 거기에 편리한 테스트와 모니터링 방법을 제공하고, 클라우드 환경에의 적용도 빠르고 편리하다. 그야말로 최근의 시스템 개발 방식에 최적화돼 있는 것이다.
기존의 복잡하고 거대한 시스템을 가볍고 단순한 형태로 전환하고 싶거나, 요구 사항 변경이 요동치는 상황에서의 시스템 개발을 계획하고 있다면, 스프링 부트에 도움의 손길을 요청해보는 것을 추천한다. 이 책은 간단한 예제를 기반으로 상황에 맞는 기능을 찾아보기 쉽게 구성돼 처음 스프링 부트를 빠르게 사용해 보거나, 상황에 맞춰 특별한 기능의 적용 방법을 찾아보고자 하는 독자에게 많은 도움이 되리라 생각한다. 다양한 예제를 통해 더욱 알차게 스프링 부트를 활용해 구현하고자 하는 핵심 기능에 초점을 맞춘 효율적인 개발에 활용하기 바란다.

옮긴이 소개

최정호

삼성SDS에 처음 입사해 공공시스템의 SI 프로젝트에서 자료 전환 및 서비스 구축/운영을 경험하고 대규모 모바일 앱스토어 서비스의 시스템 운영 업무를 맡아왔다. 현재는 삼성SDS의 사내 벤처에서 영상 처리/딥러닝 기반의 영상 분석을 통해 고객에게 인공지능 서비스를 제공하고 있다. 워라벨을 지키기 위해 노력하는 한 가정의 쌍둥이 남매 아빠다.

임진욱

GW-Basic으로 처음 컴퓨터를 입문해 코딩의 매력에 빠져 프로그래밍으로 밥을 먹고 살고 있다. 현재 삼성SDS에서 소프트웨어 아키텍트로 근무 중이며 사내 벤처에서 사용자 추천 서비스 개발을 리딩하고 있다. 스프링과 같은 프레임워크에 관심이 많으며, 평소 함께 일하는 동료들이 편하게 개발할 수 있게 해주고 싶은데, 더 괴롭히고 있는 것 같다.

김명훈

대학에서 산업공학을 전공했으나 프로그래밍이 좋아 프로그래머의 길로 뛰어든 후천적 프로그래머다. 삼성SDS에서 소프트웨어 아키텍트로 근무 중이며 사내 벤처에서 개발 리더로 근무하고 있다. 개발 리더지만 기술 영업에 더 많은 시간을 보내고 있어 직무 변경을 해야 하나 고민하고 있다.

목차

목차
  • 1장. 스프링 부트 - 소개
  • 1-1 메이븐을 사용해 스프링 부트 애플리케이션 만들기
    • 문제점
    • 해결 방법
    • 예제 구현
  • 1-2 그래들을 사용해 스프링 부트 애플리케이션 만들기
    • 문제점
    • 해결 방법
    • 예제 구현
  • 1-3 스프링 초기 구성기를 사용해 스프링 부트 애플리케이션 만들기
    • 문제점
    • 해결 방법
    • 예제 구현
  • 1-4 요약

  • 2장. 스프링 부트 - 기본
  • 2-1 빈 구성
    • 문제점
    • 해결 방법
    • 예제 구현
  • 2-2 속성 외부화
    • 문제점
    • 해결 방법
    • 예제 구현
  • 2-3 테스팅
    • 문제점
    • 해결 방법
    • 예제 구현
  • 2-4 로깅 구성
    • 문제점
    • 해결 방법
    • 예제 구현
  • 2-5 기존 설정 재사용
    • 문제점
    • 해결 방법
    • 예제 구현

  • 3장. 스프링 MVC
  • 3-1 스프링 MVC로 시작하기
    • 문제점
    • 해결 방법
    • 예제 구현
  • 3-2 스프링 MVC로 REST 리소스 노출하기
    • 문제점
    • 해결 방법
    • 예제 구현
  • 3-3 스프링 부트에서 타임리프 사용하기
    • 문제점
    • 해결 방법
    • 예제 구현
  • 3-4 예외 처리 다루기
    • 문제점
    • 해결 방법
    • 예제 구현
  • 3-5 애플리케이션 국제화
    • 문제점
    • 해결 방법
    • 예제 구현
  • 3-6 사용자 언어 결정하기
    • 문제점
    • 해결 방법
    • 예제 구현
  • 3-7 내장된 서버 선택 및 구성
    • 문제점
    • 해결 방법
    • 예제 구현
  • 3-8 서블릿 컨테이너에 SSL 구성하기
    • 문제점
    • 해결 방법
    • 예제 구현

  • 4장. 스프링 MVC - 비동기
  • 4-1 컨트롤러와 TaskExecutor로 비동기 요청 처리
    • 문제점
    • 해결 방법
    • 예제 구현
  • 4-2 응답 작성
    • 문제점
    • 해결 방법
    • 예제 구현
  • 4-3 웹 소켓
    • 문제점
    • 해결 방법
    • 예제 구현
  • 4-4 STOMP와 웹 소켓
    • 문제점
    • 해결 방법
    • 예제 구현

  • 5장. 스프링 웹 플럭스
  • 5-1 스프링 웹 플럭스로 반응형 애플리케이션 개발하기
    • 문제점
    • 해결 방법
    • 예제 구현
  • 5-2 반응형 REST 서비스의 배포와 사용하기
    • 문제점
    • 해결 방법
    • 예제 구현
  • 5-3 템플릿 엔진으로 타임리프 사용하기
    • 문제점
    • 해결 방법
    • 예제 구현
  • 5-4 웹 플럭스와 웹 소켓
    • 문제점
    • 해결 방법
    • 예제 구현

  • 6장. 스프링 보안
  • 6-1 스프링 부트 애플리케이션에서 보안 사용하기
    • 문제점
    • 해결 방법
    • 예제 구현
  • 6-2 웹 애플리케이션 로그인
    • 문제점
    • 해결 방법
    • 예제 구현
  • 6-3 인증 사용자
    • 문제점
    • 해결 방법
    • 예제 구현
  • 6-4 접근 제어 설정
    • 문제점
    • 해결 방법
    • 예제 구현
  • 6-5 웹 플럭스 애플리케이션에 보안 추가하기
    • 문제점
    • 해결 방법
    • 예제 구현
  • 6-6 요약

  • 7장. 데이터 처리
  • 7-1 데이터소스 설정
    • 문제점
    • 해결 방법
    • 예제 구현
  • 7-2 JdbcTemplate 사용
    • 문제점
    • 해결 방법
    • 예제 구현
  • 7-3 JPA 사용
    • 문제점
    • 해결 방법
    • 예제 구현
  • 7-4 순수 하이버네이트 사용하기
    • 문제점
    • 해결 방법
    • 예제 구현
  • 7-5 스프링 데이터 몽고DB
    • 문제점
    • 해결 방법
    • 예제 구현

  • 8장. 자바 엔터프라이즈 서비스
  • 8-1 스프링 비동기 처리
    • 문제점
    • 해결 방법
    • 예제 구현
  • 8-2 스프링 작업 스케줄링
    • 문제점
    • 해결 방법
    • 예제 구현
  • 8-3 이메일 전송
    • 문제점
    • 해결 방법
    • 예제 구현
  • 8-4 JMX MBean 등록
    • 문제점
    • 해결 방법
    • 예제 구현

  • 9장. 메시징
  • 9-1 JMS 설정
    • 문제점
    • 해결 방법
    • 예제 구현
  • 9-2 JMS를 사용한 메시지 전송
    • 문제점
    • 해결 방법
    • 예제 구현
  • 9-3 JMS를 사용한 메시지 수신
    • 문제점
    • 해결 방법
    • 예제 구현
  • 9-4 래빗MQ 설정
    • 문제점
    • 해결 방법
    • 예제 구현
  • 9-5 래빗MQ를 사용한 메시지 전송
    • 문제점
    • 해결 방법
    • 예제 구현
  • 9-6 래빗MQ 사용 메시지 수신
    • 문제점
    • 해결 방법
    • 예제 구현

  • 10장. 스프링 부트 액튜에이터
  • 10-1 스프링 부트 액튜에이터 활성화
    • 문제점
    • 해결 방법
    • 예제 구현
  • 10-2 사용자 정의 상태 체크와 메트릭
    • 문제점
    • 해결 방법
    • 예제 구현
  • 10-3 메트릭 내보내기
    • 문제점
    • 해결 방법
    • 예제 구현

  • 11장. 패키징
  • 11-1 실행 가능 아카이브 생성
    • 문제점
    • 해결 방법
    • 예제 구현
  • 11-2 배포용 WAR 파일 생성
    • 문제점
    • 해결 방법
    • 예제 구현
  • 11-3 씬 런처를 사용해 아카이브의 크기 줄이기
    • 문제점
    • 해결 방법
    • 예제 구현
  • 11-4 도커 사용하기
    • 문제점
    • 해결 방법
    • 예제 구현

도서 오류 신고

도서 오류 신고

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

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

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