오래전에 프로젝트를 할 때 인터페이스 팀이 있었다. 보통은 고객에게 요청받은 화면을 분석하고 설계하고 화면 이벤트에 따른 데이터를 처리하는 웹 개발하는 팀이 대다수였지만 뭔가 형태가 조금 다른 개발을 한다고 느껴졌고 궁금하긴 했는데 나중에 인터페이스와 API 가 무엇인지 알기까지 인터페이스 개발에 대한 막연한 궁금증을 가졌었던 때가 있었다.
다양한 웹 개발을 프로젝트를 하다 보니 어느 순간 인터페이스와 API의 필요성을 느끼게 되었는데. 회사 내부에서만 데이터 처리가 필요하다면 할 필요가 없었겠지만 외부 거래처나 협력회사에서 요청을 받고 데이터를 보내야 하는 경우가 생기다 보니 자연스럽게 인터페이스 개발이 필요하게 되었다. 꼭 외부와 협업이 아니더라도 내부 시스템 간에 데이터 연동이 필요한 경우도 생각보다 빈번했다.
예를 들면 협력 회사에서 제조한 제품을 가져다 판매하는 경우 AS와 설치 판매를 위해 고객 정보나 설치나 배송 상태 정보를 연동해야 하는 경우에도 효과 적일 수 있다는 생각이 들었다. 데이터를 전부 공유할 필요는 없지만 일부 핵심적인 내용에 한 해 통신이 필요한 경우 적합한 기술이라고 생각했다. 서비스 포인트 조회라든지 상태 값 업데이트 등 활용할 곳은 무궁무진한 것 같다.
과거에 개인적으로 접했던 기술은 아파치 톰켓과 자바 JSP 오라클, MSSQL 환경의 인터페이스 였다면 여기서 소개하는 방식은 오픈소스 기반인 SQLite 와 리눅스 그리고 FastAPI 위주였고 불과 몇 년 안되는 시간 동안 기술의 변화가 정말 급격하구나라는 생각이 들었다. 왠지 과거의 길고 긴 소스들에 비해 코드도 짧아진 것 같고 머리를 아프게 했던 인증과 암호화 파트도 간단한 패키지를 통해 구현돼 있었다. 시간이 지날수록 코딩 환경은 간편해지고 편리해 지지만 성능은 또 개선되고 있었다.
책을 읽다 보니 FastAPI에 대한 소개 부분에서도 급격하게 대두된 배경과 성장세를 그래프로 표현한 그림이 있었는데 얼마나 빠르게 성장하였는지 한눈에 알 수 있었다. 아무래도 다른 언어보다 성능이 느리다는 이야기가 왕왕 들리던 파이선이다 보니 Fast라는 이름이 크게 어필 한 모양이다. (아마도 우리나라 사람들은 분명 혹 할만한 이름인 것 같다. 나부터도 그랬으니까)
사실 웹 개발은 인증 부분과 암호화 디비 연동 부분이 핵심적인 부분인 것 같다. 그밖에 데이터 연동에 필수적이고 필요한 파일 전송이나 그래프 형태로 결과를 전송하는 방법 등 다양하게 소개되어 있었는데 전체적으로 장황하고 비대해질만한 콘텐츠를 정말 핵심적인 부분만 축약하고 간결한 소스 예제를 활용하여 빠르게 FastAPI가 무엇인지 소개했다는 인상을 받았다.
지루할 수도 있는 내용이지만 중간중간 이스터에 그(https://www.google.com/teapot) 같은 재미 요소도 소개되어 있었다. 404 Not found는 유명하지만 418 나는 찻 주전자는 이 책을 통해 처음 알았다.
그리고 마지막 생명체와 탐험가 부록을 보며 상상의 동물들은 예제를 뛰어넘은 진심이었다는 생각이 들었고 미소와 함께 책을 덮을 수 있었다.
[PART 1 모던 웹과 파이썬]
CHAPTER 1 모던 웹
1.1 서비스와 API
1.2 동시성
1.3 계층
1.4 데이터
1.5 정리
CHAPTER 2 모던 파이썬
2.1 도구
2.2 시작하기
2.3 API 및 서비스
2.4 변수
2.5 타입 힌트
2.6 데이터 구조
2.7 웹 프레임워크
2.8 정리
[PART 2 빠르게 보는 FastAPI]
CHAPTER 3 FastAPI 둘러보기
3.1 FastAPI 소개
3.2 FastAPI 애플리케이션
3.3 HTTP 요청
3.4 HTTP 응답
3.5 자동 문서화
3.6 정리
CHAPTER 4 Starlette과 비동기, 동시성
4.1 Starlette
4.2 동시성 유형
4.3 FastAPI와 Async
4.4 직접 사용하기
4.5 쉬는 시간: 클루 저택 청소
4.6 정리
CHAPTER 5 Pydantic과 타입 힌트, 모델
5.1 타입 힌트
5.2 데이터 그룹화
5.3 대안
5.4 간단한 예
5.5 타입 유효성 검사
5.6 값 유효성 검사
5.7 정리
CHAPTER 6 의존성
6.1 의존성이란?
6.2 의존성 관련 문제
6.3 의존성 주입
6.4 FastAPI 의존성
6.5 의존성 작성
6.6 의존성 스코프
6.7 정리
CHAPTER 7 프레임워크 비교
7.1 Flask
7.2 Django
7.3 기타 웹 프레임워크 기능
7.4 데이터베이스
7.5 추천
7.6 기타 파이썬 웹 프레임워크
7.7 정리
[PART 3 웹사이트 만들기]
CHAPTER 8 웹 계층
8.1 쉬는 시간: 상향식, 하향식, 양방향?
8.2 RESTful API 설계
8.3 파일 및 디렉터리 구조
8.4 첫 번째 웹사이트 코드
8.5 요청
8.6 다중 라우터
8.7 웹 계층 구축
8.8 데이터 모델 정의
8.9 스텁과 가짜 데이터
8.10 단계별로 구현하는 공통 기능
8.11 가짜 데이터 생성
8.12 테스트!
8.13 FastAPI가 자동 생성한 테스트 양식
8.14 서비스 계층과 데이터 계층의 대화
8.15 페이징과 정렬
8.16 정리
CHAPTER 9 서비스 계층
9.1 서비스 정의
9.2 레이아웃
9.3 보호
9.4 기능
9.5 테스트!
9.6 웹 계층 수정
9.7 기타 서비스 수준 고려 사항
9.8 정리
CHAPTER 10 데이터 계층
10.1 DB-API
10.2 SQLite
10.3 레이아웃
10.4 데이터베이스 초기화
10.5 서비스 계층 연결
10.6 테스트!
10.7 정리
CHAPTER 11 인증 및 인가
11.1 인증의 필요성
11.2 인증 방법
11.3 글로벌 인증: 공유 비밀번호
11.4 간단한 개인 인증
11.5 더 멋진 개인 인증
11.6 인가
11.7 미들웨어
11.8 정리
CHAPTER 12 테스트
12.1 웹 API 테스트
12.2 테스트의 종류
12.3 테스트 대상
12.4 pytest
12.5 레이아웃
12.6 단위 테스트 자동화
12.7 통합 테스트 자동화
12.8 리포지터리 패턴
12.9 전체 테스트 자동화
12.10 보안 테스트
12.11 부하 테스트
12.12 정리
CHAPTER 13 프로덕션
13.1 배포
13.2 HTTPS
13.3 성능
13.4 트러블슈팅
13.5 정리
[PART 4 갤러리]
CHAPTER 14 데이터베이스와 데이터 과학, AI
14.1 데이터 저장소
14.2 관계형 데이터베이스와 SQL
14.3 비관계형 데이터베이스
14.4 SQL 데이터베이스의 NoSQL 기능
14.5 데이터베이스 부하 테스트
14.6 데이터 과학과 AI
14.7 정리
CHAPTER 15 파일
15.1 Multipart 지원
15.2 파일 업로드
15.3 파일 다운로드
15.4 정적 파일 서비스
15.5 정리
CHAPTER 16 양식과 템플릿
16.1 양식
16.2 템플릿
16.3 정리
CHAPTER 17 데이터 탐색 및 시각화
17.1 파이썬과 데이터
17.2 PSV 텍스트 출력
17.3 SQLite 데이터 소스 및 웹 출력
17.4 정리
CHAPTER 18 게임
18.1 파이썬 게임 패키지
18.2 게임 로직 분리
18.3 게임 설계
18.4 웹 계층 1: 게임 초기화
18.5 웹 계층 2: 게임 단계
18.6 서비스 계층 1: 초기화
18.7 서비스 계층 2: 점수 계산
18.8 즐거운 테스트!
18.9 데이터 계층: 초기화
18.10 크립토나미콘 실행
18.11 정리
APPENDIX A 더 읽을거리
A.1 파이썬
A.2 FastAPI
A.3 Starlette
A.4 Pydantic
APPENDIX B 생명체와 탐험가
B.1 생명체 목록
B.2 탐험가
B.3 탐험가 저서
B.4 기타 자료
한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 제공 받아 작성된 서평입니다.
저자 :빌 루바노빅
역자 :한용재 , 한바름
출간일 :2024-06-30
페이지 :324쪽
ISBN :9791169212649
물류코드 :11264
'좋은책추천' 카테고리의 다른 글
일잘러의 비밀, 엑셀 대신 파이썬으로 업무 자동화하기(개정판) (6) | 2024.10.24 |
---|---|
AI 트루스 (5) | 2024.09.24 |
한 권으로 배우는 도커 & 쿠버네티스컨테이너 개념부터 쿠버네티스를 활용한 배포까지 (1) | 2024.05.23 |
스타트업 서바이벌 (2) | 2024.03.29 |
조코딩의 챗 GPT API를 활용한 수익형 웹 서비스 만들기 (0) | 2024.02.21 |