책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 파이썬
· ISBN : 9791161758640
· 쪽수 : 692쪽
· 출판일 : 2024-08-28
책 소개
목차
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장. 지속적인 아키텍처
__아키텍처 개선
__예정된 다운타임
____유지보수 시간
__장애
____포스트모템 분석
____프리모템 분석
__부하 테스트
__버전 관리
__하위 호환성
____점진적 변경
____중단 없는 배포
__기능 플래그
__변경에 대한 팀워크 측면
__요약