파이썬 아키텍처 패턴
도서+사은품 또는 도서+사은품+교보Only(교보굿즈)
15,000원 미만 시 2,500원 배송비 부과
20,000원 미만 시 2,500원 배송비 부과
15,000원 미만 시 2,500원 배송비 부과
1Box 기준 : 도서 10권
로그아웃 : '서울시 종로구 종로1' 주소 기준
이달의 꽃과 함께 책을 받아보세요!
1권 구매 시 결제 단계에서 적용 가능합니다.
알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.
![파이썬 아키텍처 패턴 상세 이미지](https://contents.kyobobook.co.kr/sih/fit-in/814x0/dtl/illustrate/640/i9791161758640.jpg)
이 책의 총서 (9)
작가정보
저자(글) 제이미 부엘타
(Jaime Buelta)
20년 동안 프로그래머로 일했으며, 10년 넘게 파이썬 개발자로 있었다. 이 기간 동안 다양한 산업 분야에 있으면서 업무의 목표 달성을 위해 다양한 기술을 접했다. 항공우주, 산업 시스템, 비디오 게임 온라인 서비스, 금융 서비스, 교육 관련 툴을 개발했다. 또한 2018년부터 『Python Automation Cookbook』(Packt, 2020), 『Hands-On Docker for Microservices with Python』(Packt, 2019)포함해 실무에서 얻은 교훈을 반영한 기술 서적을 집필하고 있다. 현재 아일랜드 더블린에 살고 있다.
현재 카카오에서 지극히 평범한 개발자로 일하고 있다. 이제까지 개발 업무를 할 수 있는 것은 훌륭한 IT 책들과 아낌없이 정보를 공유해 준 인터넷 블로그, 스택 오버플로우의 도움이 컸다고 여긴다. 그래서 자신은 물론, 누군가에게 도움이 될 수 있을 것이라는 믿음으로 책의 번역을 시작했다. 네이버와 카카오에서 일하면서 외국의 개발 사례를 소개하는 즐거움이 크다. 현재 카카오사의 커머스 개발부서에서 코틀린 기반 Spark/파이썬 기반 Airflow/SpringWebApp을 사용해 DB 덤프샷 등 데이터 엔지니어링 및 빅데이터 기반 정산 도메인 개발/운영 업무를 수행하고 있다. 주요 번역서로는 에이콘출판사에서 출간한 『Redis 핵심정리』(2016), 『빅데이터 분석을 위한 스칼라와 스파크』(2018), 『앤서블 시작과 실행』(2019) 등이 있다. 좋은 책이 인생을 풍요롭게 하는 데 도움을 준다고 믿고 있으며, 심리학, 철학, 역사 관련 책을 즐겨 보고 있다.
작가의 말
시간이 흐를수록 소프트웨어가 계속 진화하고, 이는 시스템은 점점 더 복잡해지고 더 많은 개발자가 필요하며 개발자는 정해진 방식으로 작업해야 함을 의미한다. 소프트웨어의 크기가 커지면서 일반적으로 크기에 맞는 구조가 만들어진다. 따라서 구조를 잘 계획하지 않으면 정말 혼란스러워지고 작업하기 어려울 수 있다.
소프트웨어 아키텍처의 과제는 구조를 계획하고 설계하는 것이다. 잘 설계된 아키텍처를 통해 여러 팀이 서로 상호 작용할 수 있을 뿐만 아니라 동시에 팀의 책임과 목표를 명확하게 이해할 수 있다.
시스템의 아키텍처는 운영이 잘될 수 있는 신중한 수준으로 일상적인 소프트웨어를 개발하도록 설계되어야 한다. 그래서 시스템에 기능을 추가하고 시스템을 확장할 수 있어야 한다. 프로덕션 시스템의 아키텍처도 항상 유동적이며 조정할 수 있다. 또한 확장이 가능해 의도적이고 부드러운 방식으로 다양한 소프트웨어 요소를 재구성할 수 있다.
목차
- 01장. 소프트웨어 아키텍처 소개
__시스템 구조 정의
__더 작은 단위로 분할
____프로세스 간 통신
__콘웨이 법칙: 소프트웨어 아키텍처에 미치는 영향
__애플리케이션 예: 개요
__소프트웨어 아키텍처의 보안 측면
요약
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장. 지속적인 아키텍처
__아키텍처 개선
__예정된 다운타임
____유지보수 시간
__장애
____포스트모템 분석
____프리모템 분석
__부하 테스트
__버전 관리
__하위 호환성
____점진적 변경
____중단 없는 배포
__기능 플래그
__변경에 대한 팀워크 측면
__요약
출판사 서평
◈ 이 책에서 다루는 내용 ◈
◆ 소프트웨어 아키텍트처럼 생각하고 소프트웨어 아키텍처 패턴 분석하기
◆ API 설계, 데이터 스토리지, 데이터 표현 방법 살펴보기
◆ 일반적인 아키텍처 구조의 미묘한 차이 살펴보기
◆ 마이크로서비스와 같은 패턴 활용과 상호 작용하기
◆ 품질 코드 테스트 수행을 위한 테스트 주도 개발(TDD) 구현하기
◆ 패키지로 재구성할 수 있는 코드 살펴보기
◆ 이전 버전과의 하위 호환성 유지 및 순차적인 변경사항 배포하기
◈ 이 책의 대상 독자 ◈
경험이 많든 적든 상관없이 복잡한 시스템에 대한 직관을 확장하고 공고히 하기를 원하는 개발자, 배우고 성장하고 싶어 하는 개발자, 소프트웨어 아키텍처에 대한 지식을 확장하고 싶어 하는 소프트웨어 개발자를 대상으로 하는 책이다.
이 책에서는 파이썬으로 작성된 코드를 예로 사용한다. 여러분이 파이썬 전문가일 필요는 없으나, 파이썬에 대한 기본 지식이 있다고 가정하고 작성했다.
◈ 이 책의 구성 ◈
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장, ‘지속적인 아키텍처’에서는 실행 중인 시스템에서 아키텍처 변경사항을 성공적으로 운영하는 방법을 설명한다.
◈ 옮긴이의 말 ◈
매년 깃허브(Github)에서 발표하는 깃허브 내에서 사용되는 2023년 언어 순위(https://bit.ly/3WwvotY)에 따르면 파이썬은 2015년부터 3위, 2019년부터는 2위다. 언어 순위에서 볼 수 있듯이 파이썬은 쉬운 문법과 가독성, 간결함으로 프로그래밍 입문에 대한 허들이 낮고 누구나 쉽게 빨리 원하는 프로그래밍을 할 수 있어서 웹 서버뿐만 아니라 머신러닝 등 다양한 분야에 활용되고 있다.
실제로, 역자 역시 자바 또는 JVM 기반 언어를 주로 사용하고 있으나 그다음으로 사용하는 언어는 파이썬이다. 파이썬을 Bash 대신 스크립트로 코딩할 때 사용하기도 하고 Airflow나 Flask, FastAPI와 같은 웹 프레임워크 기반에서 코딩할 때 자주 사용하고 있다. 실무자로서 이 책에서 소개하는 아키텍처 패턴은 너무나 자연스럽다. 미리 알아두면 좋은 정보들이 이 책에 수록되어 있다.
또한 프로그래밍하면서 얻을 수 있는 지식뿐만 아니라, 파이썬 오픈소스 솔루션을 사용할 때의 동작 방식에 대한 많은 이해를 제공하고 있다. 즉, 소프트웨어 아키텍처에 대한 기초부터 고급 주제까지 포괄적으로 다룬다. 그렇다고 파이썬 전문가 수준의 지식은 없어도 되니 겁먹지 않아도 괜찮다.
이 책이 좋은 아키텍처를 개발하고자 하는 분들에게 좋은 가이드를 제공하리라 믿는다. 즐거운 코딩이 되길 바란다. 팁을 주자면, 대면 면접 시 아키텍처 관련 질문에 도움이 될 것이다.
기본정보
ISBN | 9791161758640 | ||
---|---|---|---|
발행(출시)일자 | 2024년 08월 28일 | ||
쪽수 | 692쪽 | ||
크기 |
188 * 236
* 36
mm
/ 1404 g
|
||
총권수 | 1권 | ||
시리즈명 |
소프트웨어 아키텍처
|
Klover 리뷰 (1)
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집 (0)
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)
구매 후 리뷰 작성 시, e교환권 100원 적립
-
반품/교환방법
* 오픈마켓, 해외배송 주문, 기프트 주문시 [1:1 상담>반품/교환/환불] 또는 고객센터 (1544-1900) -
반품/교환가능 기간
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내 -
반품/교환비용
-
반품/교환 불가 사유
(단지 확인을 위한 포장 훼손은 제외)
2) 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
예) 화장품, 식품, 가전제품(악세서리 포함) 등
3) 복제가 가능한 상품 등의 포장을 훼손한 경우
예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
4) 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
5) 디지털 컨텐츠인 ebook, 오디오북 등을 1회이상 ‘다운로드’를 받았거나 '바로보기'로 열람한 경우
6) 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
7) 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
8) 세트상품 일부만 반품 불가 (필요시 세트상품 반품 후 낱권 재구매)
9) 기타 반품 불가 품목 - 잡지, 테이프, 대학입시자료, 사진집, 방통대 교재, 교과서, 만화, 미디어전품목, 악보집, 정부간행물, 지도, 각종 수험서, 적성검사자료, 성경, 사전, 법령집, 지류, 필기구류, 시즌상품, 개봉한 상품 등 -
상품 품절
-
소비자 피해보상 환불 지연에 따른 배상
2) 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함
상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)
기분 좋은 발견
이 분야의 베스트
다른 언어 책
이 분야의 신간
-
파이썬으로 배우는 자료구조10% 27,000 원
-
처음이라도 괜찮아, 오토핫키 프로그래밍10% 28,800 원
-
이지 러스트: 실습하며 배우는 빠르고 안전한 코드 작성의 비결10% 34,200 원
-
마이크로 파이썬으로 만드는 드론과 사물인터넷10% 19,800 원
-
공학도를 위한 창의적 컴퓨팅22,000 원