파이썬 아키텍처 패턴
2024년 11월 25일 출간
- eBook 상품 정보
- 파일 정보 pdf (19.03MB)
- ISBN 9791161759081
- 지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
-
교보eBook App
듣기(TTS) 가능
TTS 란?텍스트를 음성으로 읽어주는 기술입니다.
- 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를 읽을 수 있습니다.
- 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
PDF 필기가능 (Android, iOS)
이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.
작품소개
이 상품이 속한 분야
시스템 구조 정의
더 작은 단위로 분할
프로세스 간 통신
콘웨이 법칙: 소프트웨어 아키텍처에 미치는 영향
애플리케이션 예: 개요
소프트웨어 아키텍처의 보안 측면
요약
1부. 설계
02장. API 설계
추상화
올바른 추상화 사용
누수 추상화
리소스와 액션 추상화
RESTful 인터페이스
좀 더 실용적인 정의
HTTP 헤더와 상태 코드
리소스 설계
리소스와 파라미터
페이지네이션
RESTful API 프로세스 설계
Open API 명세 사용
인증
HTML 인터페이스 인증
RESTful 인터페이스 인증
API 버전 관리
왜 버전 관리를 하는가?
내부 및 외부 버전 관리
시맨틱 버전 관리
단순화한 버전 관리
프론트엔드와 백엔드
모델-뷰-컨트롤러 구조
HTML 인터페이스
기존 HTML 인터페이스
동적 페이지
싱글 페이지 애플리케이션
하이브리드 접근
API 설계 예시
엔드포인트
설계 및 구현 검토
요약
03장. 데이터 모델링
데이터베이스 유형
관계형 데이터베이스
비관계형 데이터베이스
소규모 데이터베이스
데이터베이스 트랜잭션
분산 관계형 데이터베이스
원본/복제본
샤딩
샤딩의 장점과 단점
스키마 설계
스키마 정규화
비정규화
데이터 인덱싱
카디널리티
요약
04장. 데이터 계층
모델 계층
도메인 주도 설계
ORM 사용
작업 단위 패턴 및 데이터 캡슐화
읽기와 쓰기에서 각기 다른 모델을 사용하는 CQRS
데이터베이스 마이그레이션
하위 호환성
관계형 스키마 변경
스키마를 적용하지 않는 변경
레거시 데이터베이스 다루기
데이터베이스에서 스키마 감지
기존 스키마를 ORM 정의에 동기화
요약
2부. 아키텍처 패턴
05장. Twelve-Factor 앱 방법론
Twelve-Factor 앱 소개
지속적인 통합(CI)
확장성
설정
Twelve-Factor 앱의 요소
한 번 빌드, 여러 번 실행
의존성과 설정
확장성
모니터링과 어드민
Twelve-Factor 앱 컨테이너화
요약
06장. 웹 서버 구조
요청-응답
웹 아키텍처
웹 서버
외부의 정적 파일 서비스
리버스 프록시
로그 저장
고급 사용법
uWSGI
WSGI 애플리케이션
웹 서버와의 상호 작용
프로세스
프로세스 수명 주기
파이썬 워커
장고 MVT 아키텍처
뷰로 요청 라우팅
뷰
미들웨어
장고 REST 프레임워크
외부 계층
요약
07장. 이벤트 기반 구조
이벤트 전달
비동기 작업
작업 세분화
스케줄 작업
큐의 효과
모든 워커의 단일 코드
클라우드 큐와 워커
Celery
Celery 설정
Celery 워커
트리거 작업
작업, 워커들을 연결하기
스케줄 작업
Celery Flower
Flower HTTP API
요약
08장. 고급 이벤트 기반 구조
스트리밍 이벤트
파이프라인
준비
기본 작업
이미지 작업
비디오 작업
작업 연결
태스크 실행
버스 정의하기
더 복잡한 시스템
이벤트 기반 시스템 테스트
요약
09장. 마이크로서비스 대 모노리스
모노리스 아키텍처
마이크로서비스 아키텍처
아키텍처 선택
유사한 설계에 대한 참고
핵심 요소: 팀 커뮤니케이션
모노리스에서 마이크로서비스로의 마이그레이션
마이그레이션 도전 과제
마이그레이션 진행 시 네 가지 고려사항
서비스 컨테이너화
이미지 빌드와 실행
웹 서비스 빌드와 실행
오케스트레이션과 쿠버네티스
요약
3부. 구현
10장. 테스트와 TDD
코드 테스트
다양한 레벨의 테스트
단위 테스트
통합 테스트
시스템 테스트
테스트 철학
훌륭한 테스트를 설계하는 방법
구조화 테스트
테스트 주도 개발
신규 팀에 TDD 소개
문제 및 제한사항
TDD 프로세스 예
파이썬의 단위 테스트 소개
파이썬 unittest
pytest
외부 의존성 테스트
목킹
의존성 주입
OOP에서의 의존성 주입
pytest 고급 기능
그룹 테스트
픽스처 사용
요약
11장. 패키지 관리
새로운 패키지의 생성
파이썬의 일반적인 패키징
파이썬 패키지 생태계
PyPI
가상 환경
환경 준비
파이썬 패키지
패키지 생성하기
개발 모드
순수 파이썬 패키지
사이썬
바이너리 코드가 포함된 파이썬 패키지
PyPI에 패키지 업로드하기
자체 사설 인덱스 생성하기
요약
4부. 지속적인 운영 업무
12장. 로깅
로그 기본 내용
파이썬에서 로그 생성
로그를 통한 문제 감지
예상 에러 감지
예상하지 못한 에러 수집
로그 전략
개발 중 로그 추가
로그 제한
요약
13장. 메트릭
메트릭과 로그
메트릭 종류
프로메테우스를 사용해 메트릭 생성하기
환경 준비
장고 프로메테우스 설정
메트릭 확인
프로메테우스 서버 시작
프로메테우스 쿼리
메트릭을 사용해 능동적으로 작업하기
경고
요약
14장. 프로파일링
프로파일링 기본 내용
프로파일러 유형
소요 시간을 알려주는 프로파일링 코드
내장 cProfile 모듈 사용
라인 프로파일러
부분 프로파일링
소수를 리턴하는 웹 서버의 예
전체 프로세스 프로파일링
요청마다 프로파일링 파일 생성
메모리 프로파일링
memory_profiler 사용
메모리 최적화
요약
15장. 디버깅
결함 감지 및 처리
프로덕션 환경 분석
프로덕션 환경의 문제 이해
요청 ID 로깅
데이터 분석
로깅 추가
로컬 환경 디버깅
파이썬 인트로스펙션 툴
로그를 사용한 디버깅
브레이크포인트를 사용한 디버깅
요약
16장. 지속적인 아키텍처
아키텍처 개선
예정된 다운타임
유지보수 시간
장애
포스트모템 분석
프리모템 분석
부하 테스트
버전 관리
하위 호환성
점진적 변경
중단 없는 배포
기능 플래그
변경에 대한 팀워크 측면
요약
이 책의 대상 독자
경험이 많든 적든 상관없이 복잡한 시스템에 대한 직관을 확장하고 공고히 하기를 원하는 개발자, 배우고 성장하고 싶어 하는 개발자, 소프트웨어 아키텍처에 대한 지식을 확장하고 싶어 하는 소프트웨어 개발자를 대상으로 하는 책이다. 이 책에서는 파이썬으로 작성된 코드를 예로 사용한다. 여러분이 파이썬 전문가일 필요는 없으나, 파이썬에 대한 기본 지식이 있다고 가정하고 작성했다.
이 책의 구성
1장, ‘소프트웨어 아키텍처 소개’에서는 소프트웨어 아키텍처가 무엇인지, 왜 유용한지에 대한 주제를 제시하고 설계 사례를 소개한다.
이 책의 1부에서는 소프트웨어를 작성하기 전의 설계 단계를 설명한다.
2장, ‘API 설계’에서는 작업을 편리하게 추상화할 수 있는 유용한 API를 설계하는 기본 사항을 설명한다.
3장, ‘데이터 모델링’에서는 스토리지 시스템의 특성과 애플리케이션에서 데이터 표현을 적절하게 설계하는 방법에 대해 설명한다.
4장, ‘데이터 계층’에서는 저장된 데이터를 처리하는 코드와 목적에 맞게 데이터 생성 방법을 설명한다.
2부에서는 검증된 구조를 재사용하는 다양한 아키텍처 패턴을 다룬다.
5장, ‘The Twelve-Factor 앱 방법론’에서는 웹 서비스에서 Twelve-Factor 앱 방법론 적용 시 유용할 뿐만 아니라 여러 상황에서 활용할 수 있는 좋은 프랙티스를 소개한다.
6장, ‘웹 서버 구조’에서는 서비스 운영과 소프트웨어 설계를 결정할 때 고려해야 할 웹 서비스 및 다양한 요소에 대해 설명한다.
7장, ‘이벤트 기반 구조’에서는 즉각적인 응답을 리턴하지 않고 비동기로 응답을 수신하는 시스템에 대해 살펴본다.
8장, ‘고급 이벤트 기반 구조’에서는 비동기 시스템의 고급 사용법과 생성할 수 있는 여러 패턴에 대해 설명한다.
9장, ‘마이크로서비스 대 모노리스’에서는 복잡한 시스템을 해결하는 두 아키텍처를 제시하고 차이점을 소개한다.
3부에서는 다음과 같은 코드 작성 방법을 살펴본다.
10장, ‘테스트와 TDD’에서는 테스트의 기초와 테스트 주도 개발(TDD)이 코딩 과정에서 어떻게 사용될 수 있는지 설명한다.
11장, ‘패키지 관리’에서는 재사용 가능한 코드 부분을 생성하는 과정과 코드를 배포하는 방법을 알아본다.
4부에서는 시스템이 작동하는 동시에 개선 및 변경에 대한 모니터링이 필요한 작업을 설명한다.
12장, ‘로깅’에서는 작업 시스템이 실행하는 작업을 로그로 저장하는 방법을 살펴본다.
13장, ‘메트릭’에서는 전체 시스템이 어떻게 작동하는지 확인하기 위해 다양한 값을 집계하는 방법을 설명한다.
14장, ‘프로파일링’에서는 성능을 향상할 수 있는 코드 작성 방법을 쉽게 알아본다.
15장, ‘디버깅’에서는 코드 실행 중에 에러를 찾고 수정할 수 있는 프로세스를 소개한다.
16장, ‘지속적인 아키텍처’에서는 실행 중인 시스템에서 아키텍처 변경사항을 성공적으로 운영하는 방법을 설명한다.
이 책에서 다루는 내용
◆ 소프트웨어 아키텍트처럼 생각하고 소프트웨어 아키텍처 패턴 분석하기
◆ API 설계, 데이터 스토리지, 데이터 표현 방법 살펴보기
◆ 일반적인 아키텍처 구조의 미묘한 차이 살펴보기
◆ 마이크로서비스와 같은 패턴 활용과 상호 작용하기
◆ 품질 코드 테스트 수행을 위한 테스트 주도 개발(TDD) 구현하기
◆ 패키지로 재구성할 수 있는 코드 살펴보기
◆ 이전 버전과의 하위 호환성 유지 및 순차적인 변경사항 배포하기
작가정보
저자(글) 제이미 부엘타
20년 동안 프로그래머로 일했으며, 10년 넘게 파이썬 개발자로 있었다. 이 기간 동안 다양한 산업 분야에 있으면서 업무의 목표 달성을 위해 다양한 기술을 접했다. 항공우주, 산업 시스템, 비디오 게임 온라인 서비스, 금융 서비스, 교육 관련 툴을 개발했다. 또한 2018년부터 『Python Automation Cookbook』(Packt, 2020), 『Hands On Docker for Microservices in Python』(Packt, 2019)을 포함해 실무에서 얻은 교훈을 반영한 기술 서적을 집필하고 있다. 현재 아일랜드 더블린에 살고 있다.
번역 김용환
현재 카카오에서 지극히 평범한 개발자로 일하고 있다. 이제까지 개발 업무를 할 수 있는 것은 훌륭한 IT 책들과 아낌없이 정보를 공유해 준 인터넷 블로그, 스택 오버플로우의 도움이 컸다고 여긴다. 그래서 자신은 물론, 누군가에게 도움이 될 수 있을 것이라는 믿음으로 책의 번역을 시작했다. 네이버와 카카오에서 일하면서 외국의 개발 사례를 소개하는 즐거움이 크다. 현재 카카오사의 커머스 개발부서에서 코틀린 기반 Spark/파이썬 기반 Airflow/SpringWebApp을 사용해 DB 덤프샷 등 데이터 엔지니어링 및 빅데이터 기반 정산 도메인 개발/운영 업무를 수행하고 있다. 주요 번역서로는 에이콘출판사에서 출간한 『Redis 핵심정리』(2016), 『빅데이터 분석을 위한 스칼라와 스파크』(2018), 『앤서블 시작과 실행』(2019) 등이 있다. 좋은 책이 인생을 풍요롭게 하는 데 도움을 준다고 믿고 있으며, 심리학, 철학, 역사 관련 책을 즐겨 보고 있다.
번역 박지현
기획자에서 개발자로, 테스트 엔지니어에서 IT 전문 잡지 및 도서 편집장으로 IT 분야 전반의 업무들을 수행했다. 관련해서 국내외 세미나/콘퍼런스를 기획하고 총괄했으며, 지금은 실무 최전방에서 밀려드는 업무와 씨름하고 있는 이들에게 일말의 도움이 되고자 번역을 하고 있다. 최근 번역 책으로는 『세상을 바꾼 빅테크 SRE 챌린지』(픽셀하우스, 2023)가 있다.
이 상품의 총서
Klover리뷰 (0)
- - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (5,000원 이상 상품으로 변경 예정, 2024년 9월 30일부터 적용)
- - 리워드는 한 상품에 최초 1회만 제공됩니다.
- - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
구매 후 리뷰 작성 시, e교환권 100원 적립
문장수집
- 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
- e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (5,000원 이상 eBook으로 변경 예정, 2024년 9월 30일부터 적용)
- 리워드는 한 상품에 최초 1회만 제공됩니다.
- sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.
구매 후 문장수집 작성 시, e교환권 100원 적립
신규가입 혜택 지급이 완료 되었습니다.
바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!