홈 > 부모님 > 부모님 > 소설,일반 > 컴퓨터,모바일
기획에서 출시까지 FastAPI 개발 백서  이미지

기획에서 출시까지 FastAPI 개발 백서
서비스 요구사항 도출부터 TDD 방식의 개발, AWS/깃허브로 배포와 출시까지! 실무 흐름 그대로 따라가는 FastAPI 실전 프로젝트
길벗 | 부모님 | 2025.11.07
  • 정가
  • 42,000원
  • 판매가
  • 37,800원 (10% 할인)
  • S포인트
  • 2,100P (5% 적립)
  • 상세정보
  • 18.3x23.5 | 1.216Kg | 640p
  • ISBN
  • 9791140716418
  • 배송비
  • 2만원 이상 구매시 무료배송 (제주 5만원 이상) ?
    배송비 안내
    전집 구매시
    주문하신 상품의 전집이 있는 경우 무료배송입니다.(전집 구매 또는 전집 + 단품 구매 시)
    단품(단행본, DVD, 음반, 완구) 구매시
    2만원 이상 구매시 무료배송이며, 2만원 미만일 경우 2,000원의 배송비가 부과됩니다.(제주도는 5만원이상 무료배송)
    무료배송으로 표기된 상품
    무료배송으로 표기된 상품일 경우 구매금액과 무관하게 무료 배송입니다.(도서, 산간지역 및 제주도는 제외)
  • 출고일
  • 1~2일 안에 출고됩니다. (영업일 기준) ?
    출고일 안내
    출고일 이란
    출고일은 주문하신 상품이 밀크북 물류센터 또는 해당업체에서 포장을 완료하고 고객님의 배송지로 발송하는 날짜이며, 재고의 여유가 충분할 경우 단축될 수 있습니다.
    당일 출고 기준
    재고가 있는 상품에 한하여 평일 오후3시 이전에 결제를 완료하시면 당일에 출고됩니다.
    재고 미보유 상품
    영업일 기준 업체배송상품은 통상 2일, 당사 물류센터에서 발송되는 경우 통상 3일 이내 출고되며, 재고확보가 일찍되면 출고일자가 단축될 수 있습니다.
    배송일시
    택배사 영업일 기준으로 출고일로부터 1~2일 이내 받으실 수 있으며, 도서, 산간, 제주도의 경우 지역에 따라 좀 더 길어질 수 있습니다.
    묶음 배송 상품(부피가 작은 단품류)의 출고일
    상품페이지에 묶음배송으로 표기된 상품은 당사 물류센터에서 출고가 되며, 이 때 출고일이 가장 늦은 상품을 기준으로 함께 출고됩니다.
  • 주문수량
  • ★★★★★
  • 0/5
리뷰 0
리뷰쓰기

구매문의 및 도서상담은 031-944-3966(매장)으로 문의해주세요.
매장전집은 전화 혹은 매장방문만 구입 가능합니다.

  • 도서 소개
  • 출판사 리뷰
  • 작가 소개
  • 목차
  • 회원 리뷰

  도서 소개

서비스 개발은 단순한 코드 작성이 아니라, 기획부터 배포까지의 전 과정을 이해하고 경험하는 일이다. 이 책은 ‘약속 잡기 웹 서비스’를 직접 만들며 FastAPI를 활용한 실전 개발 흐름을 하나하나 따라간다. 서비스의 요구사항 정의부터 시작해, 테스트 주도 개발(TDD) 방식으로 백엔드를 구현하고, 미리 구현해둔 프런트엔드와의 연동, 구글 캘린더 같은 외부 서비스 통합도 다룬다.

개발한 서비스는 AWS와 깃허브 액션을 이용해 실제로 배포하고, 도메인 설정과 운영까지 경험할 수 있다. 단순히 FastAPI를 학습하는 것에 그치지 않고, 진짜 서비스를 만들며 배우는 실전형 개발 가이드로, 초보자를 위한 설명뿐만 아니라 실무 경험자에게 필요한 배포/운영까지 충실히 담았다.

  출판사 리뷰

기획에서 출시까지! FastAPI로 실전 프로젝트 전 과정을 경험한다!
실무 흐름 그대로 따라가며 ‘약속 잡기 웹 서비스’ 만들어 보자.


서비스 개발은 단순한 코드 작성이 아니라, 기획부터 배포까지의 전 과정을 이해하고 경험하는 일이다. 이 책은 ‘약속 잡기 웹 서비스’를 직접 만들며 FastAPI를 활용한 실전 개발 흐름을 하나하나 따라간다. 서비스의 요구사항 정의부터 시작해, 테스트 주도 개발(TDD) 방식으로 백엔드를 구현하고, 미리 구현해둔 프런트엔드와의 연동, 구글 캘린더 같은 외부 서비스 통합도 다룬다. 개발한 서비스는 AWS와 깃허브 액션을 이용해 실제로 배포하고, 도메인 설정과 운영까지 경험할 수 있다. 단순히 FastAPI를 학습하는 것에 그치지 않고, 진짜 서비스를 만들며 배우는 실전형 개발 가이드로, 초보자를 위한 설명뿐만 아니라 실무 경험자에게 필요한 배포/운영까지 충실히 담았다.

FastAPI를 이용해 서비스 개발부터 출시까지
더 쉽고 효율적으로 학습하고 경험한다!


서비스를 기획하고 만드는 것도 쉽지 않지만, 실제로 세상에 출시하고 운영하는 일은 그보다 더 많은 시행착오와 노하우를 요구한다. 로컬 호스트에서 구동하는 과정에서는 드러나지 않던 문제들이 출시하는 과정에서 드러나기도 하고, 그에 따라 장애와 복잡도도 함께 늘어난다. 그래서 이 책은 웹 애플리케이션 서버를 구현하는 데 그치지 않고, 실제 서비스를 출시하는 과정까지 함께 다룬다. 이때 사용하는 도구가 너무 어렵거나 복잡하면 끝까지 완주하기 어려운데, 그 점에서 FastAPI는 배우기 쉽고 빠르게 결과를 확인할 수 있어 실전 프로젝트를 경험하기에 적합하다.
이 책은 약속 잡기 웹 서비스를 하나의 프로젝트로 삼아, 기획부터 구현, 배포까지의 모든 흐름을 따라간다. 1~6장에서는 요구 사항 정의, 설계, 환경 구성 등 개발에 필요한 기반을 다지고, 7~12장에서는 본격적인 기능 구현과 프런트엔드 및 외부 서비스(구글 캘린더)와의 연동을 다룬다. 13~14장에서는 깃허브와 AWS를 활용한 배포와 운영 방법을 살펴본다. 전체 과정에서 테스트 주도 개발(TDD)과 애자일 개발 방식의 일부 요소를 적용해 실제 개발 현장에 가까운 흐름을 따라가며, 각 기능이 끝날 때마다 테스트를 통해 완성도를 높여간다. 이 책 한 권으로, FastAPI를 이용한 웹 서비스 개발과 출시 전 과정을 실습 중심으로 온전히 체험할 수 있다.

CONTENTS
1장. 우리가 만들 프로젝트와 도구 이해
2장. 셸 기본 기능 익히기
3장. 실습 환경 준비
4장. 약속 잡기 서비스 기획
5장. 데이터 모델링
6장. 코드 테스트
7장. 회원가입 및 사용자 인증 구현
8장. 사용자별 캘린더 및 예약 관리 구현
9장. 운영자 페이지에서 데이터 관리
10장. 약속 잡기 프로젝트에 프런트엔드 연동
11장. SQLAlchemy 지연 로딩 전략
12장. 구글 캘린더 연동
13장. 오류 기록과 관찰, 관리
14장. 아마존 웹 서비스에 배포하기

[베타테스터 후기]

저처럼 생성형 AI가 생성하는 코드로 프로젝트를 구현하며 지식의 공백을 느낀 사람에게 이 책을 강력히 추천합니다. 과거 MCP 서버 개발 당시 아키텍처에 대한 막막함이 컸는데, 이 책에서 체계적인 해답을 찾을 수 있었습니다. 이 책은 FastAPI 문법만 알려주는 기술서가 아닌 ‘기획부터 운영까지’라는 현실적인 목표를 가지고 웹 애플리케이션의 전체 사이클을 경험하게 하는 실전 지침서입니다. 각 장을 따라가다 보면 흩어져 있던 개념들이 하나의 유기적인 흐름으로 연결되는 것을 느낄 수 있습니다. 상세하면서도 쉬운 설명 덕분에 비전공자도 충분히 따라갈 수 있는 로드맵을 제시합니다. ‘직접 개발한 서비스를 운영할 때 가장 많이 성장했다’는 저자의 경험담은 이 책의 모든 것을 관통하는 핵심 철학입니다. 이 책은 독자가 그 성장을 직접 경험할 수 있도록 설계된 실용적인 안내서입니다.
실습 환경: Macbook M1 Pro
권준혁 | 취업준비생


FastAPI를 실전 적용 차원에서 단계별로 차근차근 안내한 실용적인 지침서입니다. 실제 예제 프로젝트를 바탕으로 FastAPI를 사용해 볼 수 있도록 구성했으며, AWS에서 구현하는 방법을 단계적으로 잘 설명합니다. 대부분의 기술서가 새로운 기술을 소개하기 위해서 지나치게 많이 설명하거나 생략하는 경우를 보았습니다. 하지만 이 책은 저자의 실전 노하우를 바탕으로 적절한 난이도로 빠르게 FastAPI 실전에 사용할 수 있는 노하우를 집약했다고 생각됩니다. 더불어 실전 적용에 필요한 기반 기술을 적절한 분량과 난이도로 설명한 것이 이 책의 장점입니다. 개인적으로는 FastAPI를 실전에 사용하는 사람(대부분 리눅스에 익숙한 개발자라)이 알아야 하기에는 일부 세부 내용을 중간중간 다룬 점이 책을 좀 산만하게 하는 경향이 있는 것 같습니다. 전체적으로는 FastAPI를 따라 하면서 잘 이해할 수 있게 적절히 구성되어 있다고 생각합니다.
실습 환경: MacOS Ventura 13
나영호 | 임베디드 시스템 엔지니어


C++ 게임 프로그래머로 커리어를 시작해서 본격적으로 파이썬과 웹 개발을 할 일이 많지 않았지만 최근에는 인공지능이나 개인적인 필요로 간단한 웹 앱들을 개발할 일이 있었습니다. 파이썬은 조금씩 쓰고 있고 처음에 추천받았던 프레임워크가 장고여서 장고를 주로 쓰다가 최근에는 FastAPI를 쓰면서 그 가벼움과 편함에 감탄하며 사용하고 있었습니다. 그러던 차에 이 책을 읽다 보니 만들던 앱을 주변 사람과 공유하기 위해 고민하던 부분이 명쾌하게 해결되는 느낌을 받았습니다. 특히 추가 라이브러리를 사용해서 서버에 올리는 단계까지 차근차근 설명하는 부분은 정말 도움이 되었습니다. 개발 초기 셋팅에서 이미 겪었던 문제들은 이 책이 있었으면 초기 학습 비용을 줄이는 데 도움이 되었겠구나 싶어 이 책이 너무 늦게 나왔다는 아쉬움이 있었습니다. 특히 대부분의 튜토리얼이 동작하는 단계에서 끝난다면 실제 서버에서 동작하기 위해 추가로 어떤 설정과 라이브러리들을 사용하는지에 대한 정보는 현업이 아니라면 얻기 힘든 좋은 정보라고 생각됩니다. 최근에 인공지능 라이브러리를 사용하면서 FastAPI를 함께 사용하는 편인데, 이렇게 만든 프로토타입을 실제로 서버에 올리는 데 도움을 많이 얻을 수 있을 것 같습니다.
실습 환경: Macbook M1 Pro
오영욱 | 게임 개발자

실제 서비스를 운영하는 개념으로 접근한 구성 자체가 좋았습니다. 저자가 그런 의도로 기술했음을 밝혔음에도 초반에는 너무 상세하다는 느낌이 들었지만 대상 독자를 감안하면 납득할 만합니다. 다른 측면에서 생각하니 저도 잘 모르고 지나갔던 내용을 다시 확인하고 넘어갈 수 있는 기회이기도 했습니다. 이런 부분까지 설명했나 싶을 정도로 상당히 세밀하게 설명하고 있어 따라가다 보면 실제 서비스를 만들고 운영하는 단계까지 이어지는 전반적인 내용을 파악하기 좋습니다. 개인적으로는 최근 트렌드인 uv가 아니라 Poetry와 venv로 설명하는 부분이 조금 아쉽습니다.
실습 환경: Macbook Air M3
플라티나 | DevOps Korea 서비스 엔지니어




이 책은 여러분이 웹 애플리케이션 서버를 구현하고 배포하여 출시하도록 돕습니다. 개발한 프로젝트를 출시한 경험이 없는 상태에서는 작게라도 출시하는 경험을 하는 것이 무엇보다 중요합니다. 여기서 ‘작게라도’라는 말은 프로젝트 규모를 가리키기도 하지만, 프로젝트에 들이는 내 의지력을 가리키기도 합니다. 예를 들어 프로젝트를 만드는 데 사용하는 도구가 너무 어렵거나 복잡하면 출시에 이르지 못할 가능성이 매우 높습니다. 그런 점에서 FastAPI는 학습 곡선이 가파르지 않아 ‘작게라도’에 부합합니다.
즉, 이 책은 FastAPI를 설명하지만, 프로젝트를 개발해서 출시하고 운영하는 데 적합한 실무 도구이자 학습 교보재로 FastAPI를 다룹니다. 이 책에 담거나 이 책에서 다루는 내용은 FastAPI가 아닌 도구에서도 활용되는 지식이자 기술이지만, FastAPI로 보다 쉽고 직관적으로 경험하고 학습합니다.

제 예상에는 다음 독자분들이 이 책을 기다리셨을 것 같습니다.
● 파이썬을 주요하게 사용한 적은 없지만, 웹 애플리케이션 서버를 빠르게 개발하고자 하는 다른 언어 경험자
● 장고(Django)나 플라스크(Flask)를 사용해 보았고, FastAPI를 실무적으로 학습하고자 하
는 개발자
● 파이썬을 사용하며, 웹 애플리케이션 서버를 제대로 개발하고 배포해 보고자 하는 데이터 사이언티스트나 데이터 엔지니어 또는 AI 엔지니어

또한, 이 책은 테스트 주도 개발이나 애자일 방법론을 주제로 삼은 책이 아닙니다. 하지만 테스트 주도 개발이나 애자일 방법론에서 수행하는 일부 요소를 효과적인 학습과 프로젝트 수행에 필요한 활동으로 활용합니다. 따라서 실무적인 테스트 코드를 설계하거나 계획 또는 작성하는 경험을 하거나 기획이나 요구 사항을 개발 작업으로 전환하는 경험을 이 책에서 얻을 수 있습니다. 현업에서 실무에 이런 개발 방법론을 어떻게 적용할지 막막하다면 유익한 실습 경험을 할 것입니다.

  작가 소개

지은이 : 차경묵(한날)
1999년 게임 개발을 시작으로 지금까지 소프트웨어를 만들고 있다. 2007년에 국내 최초로 연재형 Django 강좌를 게재하며 파이썬으로 소프트웨어를 본격적으로 개발하기 시작했고, 여러 스타트업에서 개발 리더나 CTO를 역임했다. 2003년부터 한날이라는 필명으로 활동하고 있으며, 최근에는 인공지능, 학습, 코칭에 관심을 갖고 푸딩캠프(https://puddingcamp.com) 커뮤니티를 개발해 운영 중이다. 재미를 중요하게 여겨 주니어 휴머리스타(Junior Humarista, 일명 유머 꿈나무)를 지향하며, 기계가 할 일을 사람이 하지 말자는 신조로 소프트웨어 엔지니어링을 한다. 게임 업계와 인터넷, 모바일 업계를 넘나들다 최근에는 새벽 9시에서 10시 사이에 게임 회사에 출근해 글로벌 규모의 플랫폼 엔지니어링을 하고 있다.

  목차

1장 우리가 만들 프로젝트와 도구 이해
1.1프로젝트를 만들고 운영해야 하는 이유
__1.1.1포트폴리오 목적으로 프로젝트 만들기
__1.1.2학습 목적으로 프로젝트 만들기
__1.1.3프로젝트 목표를 출시 후 운영하는 것에 두자!
1.2FastAPI를 사용하는 이유
__1.2.1FastAPI란
__1.2.2FastAPI 특징
1.3우리가 만들 프로젝트의 목표와 계획
__1.3.1목표
__1.3.2프로젝트 계획
1.4약속 잡기 프로젝트에 사용하는 도구
__1.4.1개발 도구
__1.4.2운영 도구

2장 셸 기본 기능 익히기
2.1셸이란
__2.1.1셸 인터페이스의 종류
2.2경로와 디렉터리
__2.2.1경로
__2.2.2디렉터리
2.3파일 다루기

3장 실습 환경 준비
3.1비주얼 스튜디오 코드 설치
__3.1.1비주얼 스튜디오 코드 내려받기
__3.1.2맥OS에 설치하기
__3.1.3윈도우에 설치하기
3.2비주얼 스튜디오 코드 화면 구성
3.3비주얼 스튜디오 코드 기본 사용법
__3.3.1작업 디렉터리 지정하기
__3.3.2명령어 팔레트
__3.3.3파일 탐색과 상태 표시
3.4비주얼 스튜디오 코드 확장 기능
__3.4.1확장 기능이란
__3.4.2외양 바꾸기
__3.4.3파이썬 확장 기능 설치하기
__3.4.4셸 사용해 보기
3.5파이썬 가상 환경
__3.5.1파이썬 가상 환경이란
__3.5.2가상 환경 다루기
3.6FastAPI 설치하고 맛보기
__3.6.1FastAPI 설치하기
__3.6.2패키지 관리자, Poetry 사용하기
__3.6.3웹 애플리케이션 서버: Starlette, Uvicorn
__3.6.4Hello World

4장 약속 잡기 서비스 기획
4.1약속 잡기 서비스 기능 기획
__4.1.1서비스 개요
4.2주요 기능
__4.2.1캘린더 구현: 원하는 일자 선택하기
__4.2.2부킹 생성: 일정 등록하기
__4.2.3사용자별 캘린더 구분해서 보기
__4.2.4구글 캘린더 연동하기
__4.2.5 소셜 로그인 구현하기
4.3사용자 인터페이스 요소 기획
__4.3.1기본 화면
__4.3.2타임슬롯 영역
__4.3.3약속 잡을 정보를 입력하는 화면
__4.3.4약속 신청 완료 화면
__4.3.5약속 신청할 일자가 없는 경우
4.4데이터 설계
__4.4.1몇 가지 개념 알고 가기
__4.4.2사용자 개체
__4.4.3사용자 소셜 계정 개체
__4.4.4사용자 캘린더 개체
__4.4.5타임슬롯 개체
__4.4.6부킹 개체
__4.4.7약속 잡기 서비스의 개체 관계 다이어그램으로 그려 보기

5장 데이터 모델링
5.1파이썬에서 데이터베이스를 사용하는 방법: SQLModel
__5.1.1SQL과 ORM
__5.1.2SQLAlchemy
__5.1.3Pydantic
__5.1.4SQLModel
5.2모델링
__5.2.1사용자 개체: User 모델
__5.2.2사용자 소셜 계정 개체: OAuthAccount 모델
__5.2.3사용자 캘린더 개체: Calendar 모델
__5.2.4타임슬롯 개체: TimeSlot 모델
__5.2.5부킹 개체: Booking 모델
5.3데이터베이스 연결 설정
__5.3.1SQLite란
__5.3.2SQLAlchemy로 데이터베이스에 연결하는 방법
__5.3.3SQLAlchemy로 세션을 생성하는 방법
__5.3.4데이터베이스 연결 설정하기
5.4Alembic을 사용하여 데이터베이스 마이그레이션
__5.4.1Alembic 주요 개념
__5.4.2Alembic 설치하고 초기화하기
__5.4.3Alembic 설정하기
__5.4.4마이그레이션 스크립트 생성하기
__5.4.5자동 마이그레이션(autogenerate) 설정해 보기
__5.4.6마이그레이션 스크립트 템플릿 사용하기
__5.4.7마이그레이션 스크립트 작동 확인하기: 적용 및 되돌리기

6장 코드 테스트
6.1테스팅 개요
__6.1.1테스팅이란
__6.1.2테스팅 종류
__6.1.3테스트 더블
__6.1.4pytest를 사용하여 테스팅하기
6.2단위 테스트 실습
__6.2.1단위 테스트 실습
__6.2.2문서화 테스트 알아보기
6.3통합 테스트 실습
__6.3.1사용자 정보를 내려받는 API 구현하기
__6.3.2테스트 클라이언트로 API 테스트하기
__6.3.3데이터베이스에 사용자 생성하고 테스트하기
6.4pytest의 픽스처 기능을 사용한 테스팅
__6.4.1테스트 코드에 픽스처 사용하기
__6.4.2구현 코드에도 세션 의존성 주입하기
__6.4.3테스트 클라이언트도 픽스처로 일원화하기

7장 회원가입 및 사용자 인증 구현
7.1회원가입 테스트 코드 작성
__7.1.1(1) 모든 입력 항목을 유효한 값으로 입력하면 계정이 생성된다
__7.1.2(2) 사용자명이 유효하지 않으면 유효하지 않다는 메시지를 담은 오류를 일으킨다
__7.1.3(3) 계정 ID(username)가 중복되면 중복 계정 ID 오류를 일으킨다
__7.1.4(4) 이메일 주소가 중복되면 중복 메시지를 담은 오류를 일으킨다
__7.1.5(5) 표시명을 입력하지 않으면 무작위 문자열 8글자로 대신한다
7.2회원가입 API 구현
__7.2.1(1) Pydantic으로 Formdata 유효성 검증하기
__7.2.2(2) signup API에 SignupPayload 스키마 적용하기
__7.2.3(3) 응답 결과에는 username, display_name, is_host만 출력하기
7.3로그인 구현
__7.3.1로그인 구현에 필요한 기술
__7.3.2로그인 API 구현하기
7.4자기 자신의 정보를 가져오는 API 구현
__7.4.1FastAPI의 의존성 주입이란
__7.4.2자신의 정보를 가져오는 API 시나리오
__7.4.3쿠키에서 인증 토큰을 가져와 인증 검사하기
__7.4.4실패하는 테스트 코드로 구현 검증하기
7.5FastAPI 캘린더, 계정 설정 페이지 구현
__7.5.1계정 정보 변경하기
__7.5.2로그아웃 구현하기
__7.5.3회원 탈퇴 구현하기

8장 사용자별 캘린더 및 예약 관리 구현
8.1호스트별 캘린더 가져오기
__8.1.1사용자 시나리오
__8.1.2호스트인 사용자의 username으로 캘린더 정보 가져오기
__8.1.3존재하지 않는 사용자의 username으로 캘린더 정보를 가져오려고 하면 404 응답 반환하기
__8.1.4호스트가 아닌 사용자의 username으로 캘린더 정보를 가져오려고 하면 404 응답 반환하기
__8.1.5host_calendar_detail()을 API로 테스트하기
8.2호스트의 캘린더를 생성하고 변경
__8.2.1 호스트 사용자는 유효한 캘린더 정보를 제출하여 캘린더를 생성할 수 있다
__8.2.2캘린더가 있는 상황에서 추가 생성하려고 하면 422 응답 반환하기
__8.2.3게스트 사용자가 캘린더를 생성하려고 하면 403 응답 반환하기
__8.2.4사용자가 변경하는 항목만 변경되고 나머지는 기존 값 유지하기
8.3타임슬롯 관리
__8.3.1호스트 사용자는 유효한 타임슬롯 정보를 제출하여 타임슬롯을 생성할 수 있다
__8.3.2유효하지 않은 타임슬롯 정보로 생성하려고 하면 HTTP 422 응답하기
__8.3.3겹치는 시간대가 있다면 HTTP 422 응답하기
8.4예약
__8.4.1유효한 예약 신청 내용으로 예약 생성을 요청하면 예약 내용을 담아 HTTP 201 응답하기
__8.4.2호스트가 아닌 사용자에게 예약을 생성하면 HTTP 404 응답하기
__8.4.3없는 시간대에 예약을 생성하면 HTTP 404 응답하기
8.5캘린더 예약 가져오기
__8.5.1호스트가 자신이 예약받은 내역을 받아 보는 API 구현하기
__8.5.2게스트는 호스트의 캘린더 예약 내역을 월 단위로 받는다
__8.5.3게스트는 자신의 캘린더 예약 내역을 페이지 단위로 받는다
__8.5.4사용자는 특정 예약 내역 데이터를 받는다
8.6FastAPI 캘린더, 예약 관리
__8.6.1호스트는 자신에게 신청한 부킹에 대해 일자, 타임슬롯을 변경할 수 있다
__8.6.2게스트와 호스트는 다른 호스트의 타임슬롯으로 변경할 수 없다
__8.6.3게스트는 자신의 부킹에 대해 주제, 설명, 일자, 타임슬롯을 변경할 수 있다
__8.6.4여러분을 위한 작은 제안
8.7부킹에 참석 상태 정보 다루기
__8.7.1부킹 모델에 참석 상태 필드 추가, Enum 자료형
__8.7.2데이터베이스 마이그레이션
__8.7.3호스트는 자신에게 신청한 부킹의 참석 상태를 변경할 수 있다
8.8파일 업로드
__8.8.1HTTP 파일 업로드하기
__8.8.2FastAPI에서 파일 업로드를 처리하는 방식
__8.8.3게스트는 자신이 신청한 부킹에 파일을 업로드할 수 있다: 연습하기
__8.8.4fastapi-storages 사용하기
__8.8.5게스트는 자신이 신청한 부킹에 파일을 업로드할 수 있다: 실제 해 보기
__8.8.6업로드 관련 마이그레이션 스크립트 생성하기
__8.8.7SQLAlchemy의 Result 객체를 다룰 때 unique() 메서드 사용하기

9장 운영자 페이지에서 데이터 관리
9.1운영자 페이지와 SQLAdmin
__9.1.1운영자 페이지
__9.1.2SQLAdmin이란
__9.1.3SQLAdmin 설치와 설정
9.2SQLAdmin 기본 활용법
__9.2.1메타데이터
__9.2.2목록 페이지
__9.2.3상세 페이지
__9.2.4페이지네이션 옵션
__9.2.5일반 옵션
__9.2.6양식(form) 옵션
__9.2.7내보내기 옵션
__9.2.8모델 개별 개체 표시 조정하기
__9.2.9모델들에 대응하는 어드민 페이지 정의하기
9.3메서드 오버라이딩을 활용하여 기능 확장 및 변경
__9.3.1 on_model_change(self, data: dict, model: Any, is_created: bool, request: Request)
__9.3.2insert_model(self, request: Request, data: dict)
__9.3.3update_model(self, request: Request, pk: str, data: dict)
__9.3.4 after_model_change(self, data: dict, model: Any, is_created: bool, request: Request)
__9.3.5User 모델에 status 모델 필드 추가하기
__9.3.6on_model_delete(self, model: Any, request: Request)
__9.3.7 after_model_delete(self, model: Any, request: Request)
__9.3.8delete_model(self, request: Request, pk: Any)
__9.3.9scaffold_form()
__9.3.10list_query(self, request: Request)
__9.3.11hybrid_property와 expression
__9.3.12search_query(self, stmt: Select, term: str)
9.4SQLAdmin 사용자 인증 체계
__9.4.1인증 백엔드 구현하기
__9.4.2인증 백엔드 적용하기

10장 약속 잡기 프로젝트에 프런트엔드 연동
10.1정적 파일
__10.1.1웹 서버와 웹 애플리케이션 서버
__10.1.2FastAPI에서 정적 파일 처리
10.2구현된 결과물을 파이썬 웹 서버로 구동
10.3CORS 처리
10.4호스트 목록 API
10.5인증 토큰이 없는 경우에 대한 명확한 응답
__10.5.1인증 토큰이 없는 경우 대응하기
__10.5.2SQLAdmin에도 명확한 인증 예외 오류 처리하기
10.6캘린더 흐름
__10.6.1호스트 목록
__10.6.2캘린더 표시
__10.6.3부킹 생성
__10.6.4게스트의 부킹 내역
__10.6.5부킹 상세 보기
10.7웹 프런트엔드 개발 명세
__10.7.1사용하는 기술 스택
__10.7.2디렉터리 구조
__10.7.3개발 환경 구성

11장 SQLAlchemy 지연 로딩 전략
11.1지연 로딩이란
11.2지연 로딩의 종류
__11.2.1즉시 로딩
__11.2.2지연 로딩
__11.2.3지연 로딩 안 함(no load)
__11.2.4차이점
__11.2.5유의점
11.3SQLAlchemy 지연 로딩 적용
__11.3.1(1) User 모델에 지연 로딩 적용하기
__11.3.2(2) OAuthAccount 모델에 지연 로딩 적용하기
__11.3.3(3) Calendar 모델에 지연 로딩 적용하기
__11.3.4(4) TimeSlot 모델에 지연 로딩 적용하기
__11.3.5(5) Booking 모델에 지연 로딩 적용하기
__11.3.6(6) BookingFile 모델에 지연 로딩 적용하기

12장 구글 캘린더 연동
12.1구글 클라우드 API
__12.1.1구글 클라우드 API란
__12.1.2구글 클라우드 API의 주요 요소와 개념
__12.1.3구글 클라우드 콘솔 준비
__12.1.4캘린더 공유 및 권한 부여하기
12.2구글 캘린더에 이벤트 생성
__12.2.1구글 클라우드 API 파이썬 클라이언트 설치하기
__12.2.2구글 캘린더 서비스 정의
__12.2.3일정(이벤트) 생성하기
__12.2.4테스트 구현하기
__12.2.5스키마 정의하기
12.3구글 캘린더의 이벤트 관리
__12.3.1테스트 픽스처 정의하기
__12.3.2일정 삭제하기
__12.3.3특정 일정 가져오기
__12.3.4일정 수정하기
__12.3.5일정 목록 가져오기
12.4약속 잡기 구현체에 구글 캘린더 연동 적용
__12.4.1구글 캘린더 서비스 의존성 정의하기
__12.4.2부킹을 생성할 때 구글 캘린더에 등록하기
__12.4.3부킹을 변경할 때 구글 캘린더에 반영하기
__12.4.4호스트 부킹 목록에서 구글 캘린더 일정 반영하기
12.5FastAPI 백그라운드 작업
__12.5.1BackgroundTasks
__12.5.2StreamResponse

13장 오류 기록과 관찰, 관리
13.1오류 로그 체계
13.2Sentry란
13.3계정과 프로젝트 생성
13.4약속 잡기 프로젝트에 Sentry 반영
__13.4.1초기화 인자
__13.4.2통합(integration) 도구 인자
13.5오류 로그 테스트
13.6수동으로 로그 남기기

14장 아마존 웹 서비스에 배포하기
14.1의존 패키지 관리
__14.1.1패키지 관리자
__14.1.2의존 패키지 동결
__14.1.3uv로 더 빠르게 설치하기
14.2AWS Lightsail(라이트세일)로 서버 구성
__14.2.1AWS Lightsail이란
__14.2.2Lightsail 서비스
__14.2.3Lightsail에 서버 구성하기
14.3인스턴스 서버에 환경 구성
__14.3.1SSH와 SSH 인증키
__14.3.2apt 패키지 관리자
__14.3.3빌드 도구 설치하기
__14.3.4Nginx
__14.3.5파이썬 가상 환경 구성하기
__14.3.6Hello World용 FastAPI 앱 작성하기
__14.3.7웹 애플리케이션 구동 스크립트 작성하기
__14.3.8Systemd로 서비스 관리하기
__14.3.9Nginx에 프록시로 연결하기
__14.3.10Nginx로 정적 파일 서빙하기
14.4깃허브 액션을 사용하여 배포 자동화
__14.4.1깃허브 액션이란
__14.4.2기본 개념 이해하기
__14.4.3깃허브 워크플로 작성하기

  회원리뷰

리뷰쓰기

    이 분야의 신상품