스크랩

구간

스프링 배치 완벽 가이드 [2/e] 클라우드 환경에서 활용하는 모던 배치 처리

마이클 미넬라 저 | 서경석, 김성윤, 이승룡 역 | 에이콘출판 | 2021년 04월

미리보기 북트리

정가
$80.00
판매가
$58.32 (27%↓) 최저가 보상
적립금
$1.17 (2%P)

품절된 상품입니다.

이 책을 꼭 원하시는 고객님께서는 아래 "상품문의"를 클릭 후 구매의사를
알려주세요. 책이 확보 될 경우 연락 드리겠습니다.

북카트 바로구매 위시리스트

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9791161755168 / 692쪽 188 x 235 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

책 소개

반디앤루니스 리뷰

스프링 배치의 "Hello, World!"부터 최근 플랫폼의 발전에 따른 클라우드 네이티브 기술을 활용한 배치까지 폭넓은 스프링 배치 활용 방법과 이와 관련된 유용한 내용을 다룬다. 또한 스프링 프레임워크 5와 스프링 부트 2를 기반으로 제공되는 배치 예제는 책의 내용을 쉽게 이해할 수 있도록 돕고, 미션 크리티컬한 기업용 배치 처리 개발에 활용할 수 있도록 다양한 시나리오 기반으로 작성돼 있어서 실제 프로젝트에 적용하기에도 매우 유용할 것이다. 배치 처리에 스프링 배치를 사용하는 것을 고려한다면 이 책을 통해서 더욱 쉽고 효율적으로 사용할 수 있을 것이다.

출판사 리뷰

작가의 말 옮긴이의 말 지금도 보이지 않는 어딘가에서 열심히 동작하는 배치 처리는 일반 사용자가 직접 접하기 어려운 까닭에 낯설 수도 있습니다. 하지만 배치 처리는 현대 IT 시스템에서 필수적이고 어디에나 존재하며 누구나 간접적으로 경험합니다. 예를 들어 우리는 주기적으로 이메일을 받기도 하며 매일 특정 시간에 수행되는 은행 정산 배치 처리 등으로 인해 온라인 은행 서비스를 이용할 수 없다는 메시지를 볼 수도 있습니다. 이러한 배치 처리는 목적에 따라 다르기는 하지만 지정된 시각에 수행돼야 하고, 엄청난 양의 데이터를 제한된 시간 내에 완료해야 하며, 처리에 실패했다면 별도의 후속 처리를 해야 하기도 합니다. 대량 데이터를 처리하는 까닭에 성능도 최적화해야 합니다. 스프링 배치를 사용하는 이유는 바로 이러한 다양한 사항을 고려한 배치 처리를 매우 효율적으로 만들 수 있기 때문입니다. 스프링 배치는 배치 처리를 개발할 때 고려해야 하는 많은 개념과 기능을 제공합니다. 단순한 시나리오부터 미션 크리티컬한 시나리오까지 수많은 상황에 대응할 수 있습니다. 그러나 배치라는 분야의 특성상 개념이 생소하기도 하고 참고할 수 있는 자료가 스프링 프레임워크에 비해 많지는 않습니다. 이러한 상황에서 스프링 배치 개발팀의 리더가 직접 저술한 이 책은 매우 유용합니다. 기초 개념의 이해부터 클라우드 네이티브를 활용하는 수준까지 폭넓은 내용을 접할 수 있습니다. 또한 시나리오 기반의 다양한 예제는 책의 내용을 이해하는 데 도움을 주는 것은 물론이고 기업에서 필요한 수준의 배치 처리를 개발하는 데 실제로 활용할 수도 있을 것입니다. 배치 처리에 스프링 배치를 사용하는 것을 고려하고 있다면 이 책을 통해서 더욱 쉽고 효율적으로 사용할 수 있게 될 것이라고 확신합니다.

저자 소개

  • 저자 : 마이클 미넬라
저자 : 마이클 미넬라
18년 이상의 전문적인 지식과 경험이 있는 소프트웨어 엔지니어이자 저자이며 강사이다. 피보탈(Pivotal)의 스프링 배치(Spring Batch)와 스프링 클라우드 태스크(Spring Cloud Task) 프로젝트를 총괄하는 소프트웨어 엔지니어링 디렉터이기도 하다. 또한 JSR-352(Java Batch) 전문가 그룹에도 참여했다. 자바 챔피언(Java Champion), 자바원 락스타(JavaOne Rockstart)이며 다양한 자바 콘퍼런스에서 국제적으로 강연을 하고 있다. 평상시 업무 외에 정규 팟캐스트 OffHeap(www.javaoffheap.com)에서 활동하고 있다. 또한 정보보안 주제도 열심히 공부하고 있다. 사진(https://500px.com/michael160)과 목공이 취미이며, 삶에서 가장 중요한 일은 에리카의 남편이자 에디슨의 아버지로써의 일이다.

역자 : 서경석
IT 기업에서 오픈 소스 기반의 미들웨어 솔루션 개발 및 컨설팅 업무를 하고 있는 개발자이자 컨설턴트이다. 자바를 기반으로 하는 다양한 프로젝트에 참여했으며, 오픈 소스 기반의 기업용 프레임워크 개발과 모니터링 솔루션 개발에 관심이 많아 관련 업무를 수행했다.

역자 : 김성윤
21세기 직전부터 애플리케이션 개발자, 소프트웨어 아키텍트로 활동하다가 현재는 시민의 일상을 뒷받침하는 대형 시스템을 운영하고 있다. 무엇이든 손으로 직접 해봐야 직성이 풀리며, 운영 중인 업무에서 매일같이 발생하는 거대 데이터를 적절히 활용하는 방법에 관심이 많다.

역자 : 이승룡
오픈플랫폼 개발자 커뮤니티(OPDC)에서 에반젤리스트로 활동하고 있다. 책을 좋아한다.

역자 소개

  • 역자 : 서경석, 김성윤, 이승룡

서경석
IT 기업에서 오픈 소스 기반의 미들웨어 솔루션 개발 및 컨설팅 업무를 하고 있는 개발자이자 컨설턴트이다. 자바를 기반으로 하는 다양한 프로젝트에 참여했으며, 오픈 소스 기반의 기업용 프레임워크 개발과 모니터링 솔루션 개발에 관심이 많아 관련 업무를 수행했다.


김성윤
21세기 직전부터 애플리케이션 개발자, 소프트웨어 아키텍트로 활동하다가 현재는 시민의 일상을 뒷받침하는 대형 시스템을 운영하고 있다. 무엇이든 손으로 직접 해봐야 직성이 풀리며, 운영 중인 업무에서 매일같이 발생하는 거대 데이터를 적절히 활용하는 방법에 관심이 많다.


이승룡
오픈플랫폼 개발자 커뮤니티(OPDC)에서 에반젤리스트로 활동하고 있다. 책을 좋아한다.

 

머리말

★ 옮긴이의 말 ★

지금도 보이지 않는 어딘가에서 열심히 동작하는 배치 처리는 일반 사용자가 직접 접하기 어려운 까닭에 낯설 수도 있습니다. 하지만 배치 처리는 현대 IT 시스템에서 필수적이고 어디에나 존재하며 누구나 간접적으로 경험합니다. 예를 들어 우리는 주기적으로 이메일을 받기도 하며 매일 특정 시간에 수행되는 은행 정산 배치 처리 등으로 인해 온라인 은행 서비스를 이용할 수 없다는 메시지를 볼 수도 있습니다. 이러한 배치 처리는 목적에 따라 다르기는 하지만 지정된 시각에 수행돼야 하고, 엄청난 양의 데이터를 제한된 시간 내에 완료해야 하며, 처리에 실패했다면 별도의 후속 처리를 해야 하기도 합니다. 대량 데이터를 처리하는 까닭에 성능도 최적화해야 합니다. 스프링 배치를 사용하는 이유는 바로 이러한 다양한 사항을 고려한 배치 처리를 매우 효율적으로 만들 수 있기 때문입니다.
스프링 배치는 배치 처리를 개발할 때 고려해야 하는 많은 개념과 기능을 제공합니다. 단순한 시나리오부터 미션 크리티컬한 시나리오까지 수많은 상황에 대응할 수 있습니다. 그러나 배치라는 분야의 특성상 개념이 생소하기도 하고 참고할 수 있는 자료가 스프링 프레임워크에 비해 많지는 않습니다. 이러한 상황에서 스프링 배치 개발팀의 리더가 직접 저술한 이 책은 매우 유용합니다. 기초 개념의 이해부터 클라우드 네이티브를 활용하는 수준까지 폭넓은 내용을 접할 수 있습니다. 또한 시나리오 기반의 다양한 예제는 책의 내용을 이해하는 데 도움을 주는 것은 물론이고 기업에서 필요한 수준의 배치 처리를 개발하는 데 실제로 활용할 수도 있을 것입니다. 배치 처리에 스프링 배치를 사용하는 것을 고려하고 있다면 이 책을 통해서 더욱 쉽고 효율적으로 사용할 수 있게 될 것이라고 확신합니다.

 

목차

1장. 배치와 스프링
__배치 처리의 역사
__배치가 직면한 과제
__왜 자바로 배치를 처리하는가?
__스프링 배치의 기타 사용 사례
__스프링 배치 프레임워크
____스프링으로 잡 정의하기
____잡 관리하기
____로컬 및 리모트 병렬화
____I/O 표준화하기
____나머지 스프링 배치 에코 시스템
____그리고 스프링의 모든 기능
__이 책의 진행 방식
__요약

2장. 스프링 배치
__배치 아키텍처
____잡과 스텝
____잡 실행
____병렬화
____문서
__프로젝트 초기 설정
____스프링 배치 내려받기
__Hello, World! 법칙
__잡 실행하기
__요약

3장. 예제 잡 애플리케이션
__애자일 개발 이해하기
____사용자 스토리로 요구 사항 포착하기
____테스트 주도 개발로 설계하기
____버전 관리 시스템 사용하기
____좋은 개발 환경에서 작업하기
__은행 거래명세서 잡의 요구 사항 이해하기
__배치 잡 설계하기
____잡의 처리 흐름
____데이터 모델 이해하기
__요약

4장. 잡과 스텝 이해하기
__잡 소개하기
____잡의 생명주기 따라 가보기
__잡 구성하기
____잡의 기본 구성
____잡 파라미터
____잡 리스너 적용하기
____ExecutionContext
____ExecutionContext 조작하기
__스텝 알아보기
____태스크릿 처리와 청크 처리 비교
____스텝 구성
____그 밖의 여러 다른 유형의 태스크릿 이해하기
____스텝 플로우
__요약

5장. JobRepository와 메타데이터
__JobRepository란?
____관계형 데이터베이스 사용하기
____인메모리 JobRepository
__배치 인프라스트럭처 구성하기
____BatchConfigurer 인터페이스
____JobRepository 커스터마이징하기
____TransactionManager 커스터마이징하기
____JobExplorer 커스터마이징하기
____JobLauncher 커스터마이징하기
____데이터베이스 구성하기
__잡 메타데이터 사용하기
____JobExplorer
__요약

6장. 잡 실행하기
__스프링 부트로 배치 잡 시작시키기
__REST 방식으로 잡 실행하기
____쿼츠를 사용해 스케줄링하기
__잡 중지하기
____자연스러운 완료
____프로그래밍적으로 중지하기
____오류 처리
__재시작 제어하기
____잡의 재시작 방지하기
____재시작 횟수를 제한하도록 구성하기
____완료된 스텝을 재실행하기
__요약

7장. ItemReader
__ItemReader 인터페이스
__파일 입력
____플랫 파일
____XML
__JSON
__데이터베이스 입력
____JDBC
____하이버네이트
____JPA
____저장 프로시저
____스프링 데이터
__기존 서비스
__커스텀 입력
__에러 처리
____레코드 건너뛰기
____잘못된 레코드 로그 남기기
____입력이 없을 때의 처리
__요약

8장. ItemProcessor
__ItemProcessor 소개
__스프링 배치의 ItemProcessor 사용하기
____ValidatingItemProcessor
____ItemProcessorAdapter
____ScriptItemProcessor
____CompositeItemProcessor
__ItemProcessor 직접 만들기
____아이템 필터링하기
__요약

9장. ItemWriter
__ItemWriter 소개
__파일 기반 ItemWriter
____FlatFileItemWriter
____StaxEventItemWriter
__데이터베이스 기반 ItemWriter
____JdbcBatchItemWrite
____HibernateItemWriter
____JpaItemWriter
__스프링 데이터의 ItemWriter
____몽고DB
____네오4j
____피보탈 젬파이어와 아파치 지오드
____리포지터리
__그밖의 출력 방식을 위한 ItemWriter
____ItemWriterAdapter
____PropertyExtractingDelegatingItemWriter
____JmsItemWriter
____SimpleMailMessageItemWriter
__여러 자원을 사용하는 ItemWriter
____MultiResourceItemWriter
____CompositeItemWriter
____ClassifierCompositeItemWriter
__요약

10장. 예제 애플리케이션
__거래명세서 잡 검토하기
__새 프로젝트 초기 구성하기
__갱신할 고객 정보 가져오기
_____고객 ID 유효성 검사하기
____고객 정보 갱신
__거래 정보 가져오기
____거래 정보 읽어오기
____거래 정보 기록하기
__잔액에 거래 내역 적용하기
____거래 데이터 읽어오기
____계좌 잔액 갱신하기
__월별 거래명세서 생성하기
____거래명세서 데이터 가져오기
____Statement 객체에 계좌 정보 추가하기
____거래명세서 생성하기
__요약

11장. 확장과 튜닝
__배치 처리 프로파일링하기
____VisualVM 알아보기
____스프링 배치 애플리케이션 프로파일링하기
__잡 확장하기
____다중 스레드 스텝
____병렬 스텝
____병렬 스텝 구성하기
____AsyncItemProcessor와 AsyncItemWriter
____파티셔닝
____원격 청킹
__요약

12장. 클라우드 네이티브 배치
__12요소 애플리케이션
____코드베이스
____의존성
____구성
____백엔드 서비스
____빌드, 릴리스, 실행
____프로세스
____포트 바인딩
____동시성
____폐기 가능
____개발/운영 환경 일치
____로그
____관리자 프로세스
__간단한 배치 잡
__서킷 브레이커
__구성 외부화
____스프링 클라우드 컨피그
____유레카를 사용한 서비스 바인딩
__배치 처리 오케스트레이션
____유레카를 사용한 서비스 바인딩
__요약

13장. 배치 처리 테스트하기
__JUnit과 Mockito를 사용한 단위 테스트
____JUnit
____목(Mock) 객체
____Mockito
__스프링 클래스를 사용해 통합 테스트하기
____스프링을 사용해 통합 테스트하기
____스프링 배치 테스트하기
__요약

top