부제 대규모 시스템 설계를 위한 스트리밍 데이터의 개념과 동작 원리
저자 앤드류 살티스
역자 최원영
출판사 비제이퍼블릭
출간/배본가능일 2023년 1월 25일
정가 27,000원
페이지 260쪽
판형 188*235
ISBN 979-11-6592-194-1(93000)
이제는 '실시간'의 시대다. 사용자의 반응에 빠르게 대응해야 하는 현대 인터넷 환경에서 스트리밍 데이터 파이프라인에 대한 요구는 꾸준히 커지고 있으며, 어느새 실시간 데이터를 잘 다루는 것이 업계에서 승리를 가져갈 수 있는 중요한 요건이 되었다. 하지만 이러한 시대적인 흐름에도 불구하고 아직까지 실시간 데이터를 어떻게 다룰지에 대한 명확한 가이드라인이나 경험이 없어서 도입하지 못한 곳들이 많다. 게다가 많은 개발자가 기존의 ‘동기(Sync) 방식’으로 데이터 처리하는 것에는 익숙하지만 ‘실시간(Streaming)’으로 데이터를 처리하는 데에는 어려움을 느낀다. 현재 업계 내 스트리밍 파이프라인에 대해 잘 알고 있는 전문가는 매우 부족한 실정이며, 책이나 영상 등의 콘텐츠 역시 찾아보기 힘들다.
이 책은 비즈니스 목표를 달성하기 위해 어떤 실시간 데이터 아키텍처로 구성하고 운영해야 할지 명확한 가이드라인을 제시한다. 스트리밍 데이터에 대한 정의부터 시작하여 단계별로 세분화된 아키텍처의 역할, 동작 방식, 각 장단점과 상황에 맞는 선택지를 보여준다. 그리고 스트리밍 데이터 아키텍처에 대해 공부한 지식을 기반으로 코드로 실습해 보는 시간을 가지면서 마무리한다. 기본 개념부터 아키텍처 구성, 코드 실습까지 구성되어 있으므로 실시간 데이터 처리에 대해 고민하는 개발자, 엔지니어, 조직장 등 모든 분들에게 큰 도움이 될 것이다.
소스 코드 다운로드 https://github.com/bjpublic/streaming-data
1부 완전히 새로운 접근법
1장 스트리밍 데이터 소개
1.1 실시간 시스템이란
1.2 실시간 시스템과 스트리밍 시스템의 차이점
1.3 스트리밍 데이터 아키텍처
1.4 스트리밍 시스템의 보안
1.5 서비스를 확장하는 방법
1.6 정리
2장 클라이언트에서 데이터 가져오기: 데이터 수집
2.1 일반적인 통신 패턴
2.1.1 요청/응답 패턴
2.1.2 요청/확인응답 패턴
2.1.3 발행/구독 패턴
2.1.4 단방향 패턴
2.1.5 스트림 패턴
2.2 통신 패턴 확장하기
2.2.1 요청/응답 파생 패턴
2.2.2 스트림 패턴 확장하기
2.3 내결함성
2.3.1 RBML
2.3.2 SBML
2.3.3 HBL
2.4 상용환경에 적용하기
2.5 정리
3장 수집 단계에서 데이터 전송: 데이터 파이프라인 분리
3.1 메시지 큐 단계가 필요한 이유
3.2 핵심 개념
3.2.1 프로듀서, 브로커, 컨슈머
3.2.2 프로듀서와 컨슈머의 격리
3.2.3 메시지의 지속적 저장
3.2.4 메시지 전달 시맨틱
3.3 보안
3.4 장애 허용
3.5 비즈니스 요구사항들에 주요 개념을 적용해 보기
3.6 정리
4장 스트리밍 데이터 분석
4.1 인플라이트 데이터 분석 이해하기
4.2 분산 스트림 프로세싱 아키텍처
4.3 스트림 프로세싱 프레임워크의 핵심 기능들
4.3.1 메시지 전달 시맨틱
4.4 정리
5장 데이터 분석을 위한 알고리즘
5.1 제약 조건 확인 및 완화
5.2 시간에 대한 생각
5.2.1 슬라이딩 윈도우
5.2.2 텀블링 윈도우
5.3 취합 기술들
5.3.1 랜덤 샘플링
5.3.2 데이터 개수 카운트
5.3.3 빈도
5.3.4 멤버십
5.4 정리
6장 분석 또는 수집한 데이터 저장
6.1 장기 스토리지가 필요한 경우
6.2 인메모리 저장소에 저장하기
6.2.1 인메모리/플래시 메모리 기반 데이터베이스
6.2.2 캐싱 시스템
6.2.3 인메모리 데이터베이스와 인메모리 데이터 그리드
6.3 활용 사례 살펴보기
6.3.1 세션 내 개인화 서비스
6.3.2 차세대 에너지 회사
6.4 정리
7장 데이터를 접근 가능하도록 만들기
7.1 네트워크 통신 패턴
7.1.1 데이터 동기화
7.1.2 RMI와 RPC
7.1.3 심플 메시징
7.1.4 발행 - 구독
7.2 클라이언트에 데이터를 전달하는 프로토콜 방식
7.2.1 웹훅
7.2.2 HTTP 롱풀링
7.2.3 SSE
7.2.4 웹소켓
7.3 스트림 필터링
7.3.1 어디서 필터링을 할 것인가
7.3.2 정적 필터링 vs 동적 필터링
7.4 실전 예제 : Meetup RSVP 스트리밍 API 만들기
7.5 정리
8장 컨슈머 디바이스에서 데이터 접근 시 가능성과 한계
8.1 핵심 개념
8.1.1 클라이언트의 읽기 속도가 빠를 경우
8.1.2 데이터 처리 상태 관리
8.1.3 데이터 유실 줄이기
8.1.4 정확히 한 번으로 처리
8.2 실제로 만들어보기: SuperMediaMarket
8.3 웹 클라이언트 소개
8.3.1 스트리밍 API 서버와 통합
8.4 SQL 쿼리 적용
8.5 정리
2부 스트리밍 데이터 아키텍처 구현하기
9장 실시간으로 Meetup RSVP 분석하기
9.1 수집 단계
9.1.1 수집 단계 애플리케이션 데이터 흐름
9.2 메시지 큐 단계
9.2.1 카프카 설정 및 설치
9.2.2 수집 단계 애플리케이션과 카프카 연동
9.3 분석 단계
9.3.1 카프카와 연동하는 스톰 설치
9.3.2 상위 N개의 데이터를 추출하는 스톰 토폴로지 작성
9.3.3 분석 단계 통합
9.4 인메모리 데이터 저장소
9.5 데이터 접근 단계
9.5.1 상용 환경에 적용하기
9.6 정리
스트리밍 시스템 개발 전문가로서 이미 풍부한 경력을 가진 그는, 실시간 데이터에서 인사이트를 찾아내는 애플리케이션 개발에 주력하고 있다. 잠잘 때를 제외한 거의 모든 시간을 스트리밍 시스템에 대한 생각과 구현에 쏟으며, 고객들을 위해 다양한 규모의 스트리밍 시스템을 만들거나 개선한다. 또한 국내외 학술 대회를 통해 스트리밍 관련 내용을 발표하고 있으며, 다른 개발자들을 위한 강의도 진행하고 있다. 여가 시간에는 사랑스러운 아내와 두 명의 아이들과 함께 시간을 보내며, 자투리 시간 대부분은 라크로스를 시청하곤 한다.
카카오 광고추천팀에서 카프카 기반 실시간 데이터 파이프라인을 다루는 데이터 엔지니어. 최근에는 스트림 데이터 거버넌스를 달성하기 위한 아키텍처를 고민하며, 다양한 스트림 프로세싱 방법에 대해 학습하고 개발하고 있다. 궁금증과 도전 그리고 공유를 모토로 삼고 있으며 새로운 것에 호기심이 많으며 항상 적극적으로 탐구하는 개발자로 지내고 있다. 습득한 지식을 지속적으로 사내외로 공유하고자 노력하고 있으며 최근에는 『아파치 카프카 애플리케이션 프로그래밍 with 자바』를 집필했다. 옮긴이와 개발 관련 지식을 논의하고 싶다면 옮긴이가 운영 중인 개발 블로그나 개발 유튜브(데브원영 DVWY)을 방문하는 것을 추천한다.
•개발 블로그 : https://blog.voidmainvoid.net
•개발 유튜브 : https://bit.ly/devwonyoung
엄청난 양과 속도로 생성되는 실시간 데이터를 이해하고 처리해야 하는 '빅데이터 시대'가 도래했습니다. 실시간 위치 데이터를 토대로 주변 맛집을 추천하고, 센서 데이터를 통해 기계의 결함을 추적하고, 고객이 매장을 떠나기 전에 디지털 영수증을 발급하는 등의 놀라운 작업들이 실시간으로 이루어집니다. 하지만 실시간 데이터를 처리하려면 스트리밍 파이프라인을 반드시 구축해야 하며, 스트리밍 파이프라인 구축 방법은 기존 동기 방식 데이터 처리와는 다르기 때문에 개발자들에게 많은 혼동을 야기하고 있습니다.
이 책은 빠르게 흐르는 스트리밍 데이터를 처리하는 방법을 알려 주는 입문서입니다. 풍부한 그림과 함께 실시간 데이터 처리에 필요한 다양한 개념을 설명하며, 예제 코드와 활용 사례들을 통해 스트리밍 데이터를 분석하고 공유 및 저장하는 애플리케이션을 만드는 방법도 학습합니다. 또한 스트리밍 애플리케이션에서 스파크, 스톰, 아파치 카프카, 플링크, 레빗엠큐 등 다양한 기술의 역할을 소개하고, 기술 종류별로 발생할 수 있는 여러 장애물들과 그에 따른 해결 방안을 알려줍니다. 최종적으로 스트리밍 데이터 아키텍처를 그리는 방법과 세부 구축 방법들도 배우게 됩니다. 이 책을 통해 실시간 데이터 수집, 처리, 저장에 대한 아키텍처를 완벽히 이해하고 현업 실무에 적용해 보세요.
<이 책이 필요한 사람>
• 데이터 파이프라인을 개발하고 구축해야 하는 데이터 엔지니어 및 백엔드 엔지니어
• 스트리밍 애플리케이션 기반의 엔터프라이즈 아키텍처를 구축하고 싶은 개발자
• 데이터 플랫폼 팀을 이끌고, 데이터 기반 의사결정을 내려야 하는 기업 임원
• 데이터 기반 엔지니어링 및 데이터 플랫폼 아키텍처에 관심 있는 모든 사람
아이패드로 시작하는 음악 프로듀싱 with 개러지밴드 (1) | 2023.01.26 |
---|---|
파이썬으로 배우는 음성인식 (1) | 2023.01.06 |
데이터를 엮는 사람들, 데이터 과학자 (0) | 2022.12.29 |
댓글 영역