logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

FastAPI로 배우는 백엔드 프로그래밍 with 클린 아키텍처

FastAPI로 배우는 백엔드 프로그래밍 with 클린 아키텍처

(모던 파이썬 웹 프레임워크 FastAPI로 TIL 앱 구축하기)

한용재 (지은이)
제이펍
25,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
22,500원 -10% 0원
1,250원
21,250원 >
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
aladin 17,500원 -10% 870원 14,880원 >

책 이미지

FastAPI로 배우는 백엔드 프로그래밍 with 클린 아키텍처
eBook 미리보기

책 정보

· 제목 : FastAPI로 배우는 백엔드 프로그래밍 with 클린 아키텍처 (모던 파이썬 웹 프레임워크 FastAPI로 TIL 앱 구축하기)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 파이썬
· ISBN : 9791193926529
· 쪽수 : 232쪽
· 출판일 : 2024-10-25

책 소개

파이썬 기반의 FastAPI는 플라스크보다 API 생성이 쉽고, 장고보다 가볍다. 이 책은 FastAPI를 활용해 백엔드 소프트웨어를 클린 아키텍처로 작성하는 법을 안내한다. 클린 아키텍처는 계층이 많아짐에 따라 코드의 양 또한 늘어나지만, 계층을 나누기 편한 FastAPI는 클린 아키텍처를 적용하기에 적합한 웹 프레임워크다.

목차

베타리더 후기 ix
시작하며 xii
이 책에 대하여 xiv

CHAPTER 1 FastAPI 개발 환경 구축 1
1.1 FastAPI 소개 1
1.2 포어트리를 이용한 가상 환경과 의존성 관리 5
1.3 Hello, FastAPI 10
1.4 API 문서화 14
1.5 데이터베이스 설정 19
1.6 책에서 만들 애플리케이션: TIL 22
1.7 마무리 23

CHAPTER 2 클린 아키텍처 25
2.1 아키텍처가 필요한 이유 25
2.2 분할 정복 29
2.3 클린 아키텍처의 주요 4계층 30
__2.3.1 도메인(엔티티) 계층 32
__2.3.2 애플리케이션(유스 케이스) 계층 33
__2.3.3 인터페이스(인터페이스 어댑터) 계층 34
__2.3.4 인프라스트럭처(프레임워크 및 드라이버) 계층 35
2.4 의존관계 역전 원칙 36
2.5 마무리 37

CHAPTER 3 회원 가입 39
3.1 User 도메인 39
3.2 회원 가입 유스 케이스 41
__3.2.1 ULID 41
__3.2.2 유저 저장 42
__3.2.3 중복 유저 검사 44
__3.2.4 패스워드 암호화 45
3.3 회원 가입 인터페이스 47
__3.3.1 API 라우터 47
__3.3.2 파이단틱을 이용한 유효성 검사 48
__3.3.3 유효성 검사 오류의 상태 코드를 400 Bad Request로 변경하기 50
__3.3.4 유저 생성 유스 케이스 호출 52
__3.3.5 클래스 기반 라우터 53
3.4 회원 정보 영속화 54
__3.4.1 SQLAlchemy ORM 적용 54
__3.4.2 Alembic으로 테이블 생성 및 리비전 관리 56
__3.4.3 UserRepository 구현 62
3.5 마무리 65

CHAPTER 4 의존성 주입 67
4.1 Depends 68
4.2 dependency-injector 69
4.3 마무리 74

CHAPTER 5 회원 리소스의 CRUD 기능 완성 75
5.1 유저 메모 속성 추가 75
5.2 유저 정보 업데이트 78
5.3 유저 목록 조회 82
__5.3.1 테스트용 유저 데이터 생성 82
__5.3.2 유저 목록 조회 82
__5.3.3 페이징 84
5.4 회원 탈퇴(유저 삭제) 88
5.5 파이단틱 유효성 검사 91
__5.5.1 요청 파라미터/본문 검사 91
__5.5.2 파이단틱 응답 모델 95
5.6 마무리 97

CHAPTER 6 비동기 프로그래밍 99
6.1 파이썬에서 동시성을 처리하는 방법 99
6.2 FastAPI의 비동기 처리 101
6.3 비동기 적용 기준 104
6.4 마무리 105

CHAPTER 7 로그인 107
7.1 JWT 107
__7.1.1 헤더 109
__7.1.2 페이로드 110
__7.1.3 시그니처 111
7.2 로그인 112
7.3 JWT 인증/인가 116
__7.3.1 토큰에 역할 추가 116
__7.3.2 일반 유저용 API 인증/인가 118
__7.3.3 어드민용 API 인증/인가 121
7.4 마무리 124

CHAPTER 8 환경변수 125
8.1 dotenv 126
8.2 config.py: 환경변수 관리 모듈 127
8.3 환경변수 적용 128
8.4 마무리 130

CHAPTER 9 TIL Note 131
9.1 도메인 계층 구현 132
9.2 애플리케이션 계층 구현 134
9.3 인터페이스 계층 구현 139
__9.3.1 노트 생성 140
__9.3.2 노트 목록 조회/노트 상세 조회 141
__9.3.3 노트 업데이트 143
__9.3.4 노트 삭제 144
__9.3.5 태그 이름으로 노트 검색 144
9.4 인프라 계층 구현 145
__9.4.1 Note, Tag 테이블 모델링 145
__9.4.2 테이블 마이그레이션 147
__9.4.3 노트 저장소: 노트 조회 150
__9.4.4 노트 저장소: 노트 생성 152
__9.4.5 노트 저장소: 노트 업데이트 153
__9.4.6 노트 저장소: 노트 삭제 154
__9.4.7 노트 저장소: 태그명으로 노트 조회 155
9.5 마무리 156

CHAPTER 10 백그라운드 작업: 환영 이메일 발송 157
10.1 BackgroundTasks 158
__10.1.1 BackgroundTasks란? 158
__10.1.2 BackgroundTasks로 이메일 전송 160
10.2 셀러리 166
__10.2.1 셀러리란? 166
__10.2.2 셀러리 환경 설정 169
__10.2.3 셀러리 태스크 수행 예시 171
__10.2.4 셀러리로 이메일 전송 176
10.3 마무리 178

CHAPTER 11 미들웨어 179
11.1 미들웨어 예시 181
11.2 콘텍스트 변수 183
11.3 유저 활동을 추적하는 로깅 186
__11.3.1 유저 정보를 콘텍스트 변수로 저장하는 미들웨어 186
__11.3.2 커스텀 로거 188
__11.3.3 유저 ID가 포함된 로그 출력 190
11.4 마무리 191

CHAPTER 12 테스팅 193
12.1 도메인 계층 테스트 194
12.2 애플리케이션 계층 테스트 196
__12.2.1 테스트 더블 197
__12.2.2 유저 생성 유스 케이스 테스트 198
12.3 인터페이스 계층 테스트 204
12.4 인프라 계층 테스트 206
12.5 마무리 209

찾아보기 212

저자소개

한용재 (지은이)    정보 더보기
LG전자 MC사업부에서 휴대폰에 탑재되는 소프트웨어를 오랜 기간 만들었고, 토스인컴과 모두싸인에서 백엔드 엔지니어로 활동하다가 현재는 비긴트의 대표를 맡고 있다. 모토는 일신우일신(日新又日新)이고, 영화와 교양 과학 서적을 좋아한다. 《NestJS로 배우는 백엔드 프로그래밍》(2022, 제이펍)을 집필했고, 《처음 시작하는 FastAPI》(한빛미디어, 2024), 《이펙티브 소프트웨어 테스팅》(2023, 제이펍)을 번역했다.
펼치기

책속에서



API를 만들면 이를 사용할 다른 구성원에게 전달해야 한다. 조직이 작고 API 사용자가 같은 공간에 있으며 프레임워크의 코드를 이해하고 있다면 소스 코드를 공유해도 상관없다. 하지만 사용하는 언어와 기술 스택이 다른 프런트엔드 개발자가 API 사용자라면 어떻게 사용법을 설명해야 할까? 텍스트로 나름의 형식으로 기술할 수도 있고, 스프레드시트에 보기 좋게 정리할 수도 있다. 심지어 아직도 이런 방법을 많이 사용한다. 하지만 프로그램과 마찬가지로 문서도 레거시로 굳어지면 바꾸기 힘든 법이다. 문서를 배포하는 가장 좋은 방법은 소스 코드에서 API를 문서를 생성하는 것이고, FastAPI는 이를 별다른 설정 없이 지원한다.


클린 아키텍처의 의존성 규칙은 그 의존성의 방향이 안으로 향하는 데에 있다. 그림 2-1의 좌측에 바깥 계층에서 안쪽으로 향하는 화살표가 있다. 이 화살표가 의존성의 방향을 나타낸다. 데이터의 형식 역시 마찬가지다. 고수준의 데이터 형식은 저수준에서 자유롭게 사용할 수 있다. 하지만 고수준의 구성 요소가 저수준의 데이터 형식에 의존하면 안 된다. 이는 외부 변경으로부터 내부 요소를 격리해 보호하기 위함이다. 외부에서 제공되는 프레임워크나 라이브러리는 우리의 의지와 상관없이 업데이트될 수 있다. 이러한 변경이 발생했을 때 만약 그 라이브러리의 모듈에 직접 의존하고 있다면 내부의 요소를 함께 수정해야 한다.


이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책
9791193926864