여기를 클릭하면, 샘플강의가 재생됩니다.
- tag
FastAPI로 시작하는 백엔드 개발 - 기초부터 실무까지 Part.5-2
담당강사 : 김종영
| 강의구성 | 총 20강좌 (강의시간 : 총 ) | 수강기간 | 30일 |
|---|---|---|---|
| 강의형식 | 동영상 | 수강료 |
80,000원
이 강좌의 80% 이상 수강 시 출력이 가능합니다. |
| 강의수준 | 중급 | 강의에서 사용하는 프로그램 & 버전 |
VS Code (무료) |
| 담당강사 |
김종영 강사
|
참고도서 |
| 강의구성 | 총 20강좌 (강의시간 : 총 ) |
|---|---|
| 수강기간 | 30일 |
| 강의형식 | 동영상 |
| 수강료 |
80,000원
이 강좌의 80% 이상 수강 시 출력이 가능합니다. |
| 강의수준 | 중급 |
| 강의에서 사용하는 프로그램 & 버전 |
VS Code (무료) |
| 담당강사 |
김종영 강사
|
- 수강신청
-
- 현재 강좌만 수강 신청하기
- 수강료 80,000원
- 수강기간 : 30일 수강신청
-
- 자유이용권으로 수강하기
- 총 4,194강좌 / 54,382개 영상
3개월 62,700원, 6개월 118,800원, 12개월 224,400원의 가격으로 무제한 수강해 보세요. - 자유이용권 구매 >
- 과정소개
- 본 과정은 백엔드 개발의 핵심 프레임워크인 FastAPI를 경로 파라미터, 쿼리 파라미터, 요청 본문(Body) 처리부터 실무 수준의 API 설계까지 체계적으로 학습합니다. HTTP 요청과 응답의 기본 구조, ASGI 애플리케이션의 동작 원리를 이해하고, Pydantic을 활용한 데이터 검증과 직렬화가 FastAPI 내부에서 어떻게 이루어지는지 그 원리를 탄탄히 익힙니다. 경로 파라미터와 쿼리 파라미터의 차이, BaseModel을 활용한 요청/응답 스키마 설계, response_model을 통한 응답 검증, HTTPException을 이용한 상태 코드 관리 등 API 설계의 기본기를 다진 뒤, Dependency Injection을 통한 코드 재사용과 인증/인가(JWT, OAuth2) 처리, 데이터베이스 연동, 비동기(async) 처리와 백그라운드 작업(Background Tasks), 미들웨어와 CORS 설정, 예외 처리 커스터마이징, APIRouter를 활용한 라우팅 구조화까지 실무 API 개발에 필요한 폭넓은 주제를 다룹니다. 개발 환경 구성(venv, conda)부터 VS Code를 활용한 실습 환경 설정, uvicorn 서버 실행과 Swagger UI를 통한 API 테스트, 그리고 최종적으로는 Docker를 활용한 배포까지 직접 손으로 다뤄보며, To-do 리스트 API를 예제로 CRUD 기능부터 인증이 포함된 실전 백엔드 서비스로 확장해봅니다. 이 과정을 통해 백엔드 개발을 처음 접하는 분도 FastAPI 기반 API의 동작 원리를 이해하고, 원하는 서비스에 맞는 REST API를 설계하고 배포까지 수행할 수 있는 실무 역량을 갖추게 됩니다.
- 학습목표
-
● FastAPI 프레임워크를 활용해 경로 파라미터, 쿼리 파라미터, 요청 본문을 처리하는 API를 설계할 수 있다.
● Pydantic BaseModel과 response_model을 활용해 요청/응답 데이터를 검증하고 직렬화할 수 있다.
● asyncio 기반의 동시성 프로그래밍(gather, create_task, TaskGroup, Semaphore, Lock, Queue, Event 등)을 이해하고 구현할 수 있다.
● Dependency Injection, 인증/인가(JWT, OAuth2), 데이터베이스 연동(SQLAlchemy, Alembic)을 활용해 실무 수준의 백엔드 API를 구현할 수 있다.
● 개발 환경 구성부터 Docker를 활용한 배포까지 백엔드 서비스의 전체 개발 및 배포 과정을 수행할 수 있다.
- 교육대상
- FastAPI를 활용한 백엔드 API 개발의 원리를 이해하고, 실무 수준의 REST API 설계 및 구현 역량을 갖추고자 하는 개발자 및 백엔드 입문자
- 선수 과정
- 파이썬 프로그래밍 언어
차시별 학습목표
- 01. Alembic의 개념과 역할을 이해할 수 있다. Alembic 프로젝트 초기화(alembic init) 및 환경 설정(env.py, alembic.ini) 방법을 이해할 수 있다.
- 02. alembic revision --autogenerate를 사용해 모델 변경 사항을 리비전으로 생성할 수 있다. alembic upgrade/alembic current 명령으로 데이터베이스에 변경 사항을 반영하고 현재 상태를 확인할 수 있다.
- 03. Alembic을 사용해 컬럼 추가/삭제/이름 변경/타입 변경 및 테이블 삭제와 같은 스키마 변경 작업을 수행할 수 있다.
- 04. 일반 함수(def)와 코루틴 함수(async def)의 차이를 이해할 수 있다. 코루틴 객체의 생성과 실행 방식을 이해하고 동시성(Concurrency)의 개념을 설명할 수 있다.
- 05. 동시성과 병렬성의 차이를 이해할 수 있다. 파이썬 프로세스의 구조(메인 쓰레드, GIL, CPython 인터프리터)와 이벤트 루프의 역할을 설명할 수 있다.
- 06. asyncio.gather()를 사용해 여러 코루틴을 동시에 실행하고 결과를 모아서 처리하는 방법을 구현할 수 있다.
- 07. asyncio.gather()의 return_exceptions 파라미터를 사용해 예외를 전파할지 결과로 리턴할지 선택하여 구현할 수 있다.
- 08. asyncio.create_task()를 사용해 코루틴 등록과 종료 대기를 분리하여 실행하는 방법을 구현할 수 있다.
- 09. await 없이 asyncio.create_task()를 사용할 때 발생할 수 있는 예외 누락 및 부모-자식 종료 순서 문제를 이해할 수 있다.
- 10. with/async with 블록의 __enter__/__exit__, __aenter__/__aexit__ 동작 원리를 이해할 수 있다. asyncio.TaskGroup을 async with 블록에서 사용하는 방법을 구현할 수 있다.
- 11. asyncio.TaskGroup() 블록 내에서 발생한 여러 예외가 ExceptionGroup으로 묶여 caller에게 전달되는 과정을 이해할 수 있다.
- 12. asyncio.TaskGroup()의 __aexit__ 구현이 그룹 내 모든 태스크의 종료를 기다린다는 특성을 이해할 수 있다.
- 13. asyncio.Semaphore를 사용해야 하는 상황을 이해하고, async with asyncio.Semaphore() 블록을 사용해 동시 실행 개수를 제한하는 방법을 구현할 수 있다.
- 14. asyncio.Lock을 사용해 공유 자원에 대한 동시 접근으로 발생하는 data integrity 문제를 해결하는 방법을 구현할 수 있다.
- 15. asyncio.Queue를 사용해 생산자(producer)-소비자(consumer) 패턴을 구현할 수 있다.
- 16. asyncio.Event()를 사용해 신호를 발생시키고 대기하는 방법을 구현할 수 있다.
- 17. asyncio.wait_for()를 사용해 코루틴 실행에 제한 시간을 설정하고, 시간 초과 시 발생하는 TimeoutError를 처리하는 방법을 구현할 수 있다.
- 18. FastAPI에서 코루틴과 일반 함수(경로 함수, 의존성 함수)가 각각 이벤트 루프와 쓰레드 풀에서 실행되는 과정 및 GIL 획득 원리를 이해할 수 있다.
- 19. yield 기반의 의존성 함수를 코루틴으로 구현해 세션의 commit/rollback 패턴을 처리하는 방법을 이해할 수 있다.
- 20. asynccontextmanager를 사용해 FastAPI 앱의 생명 주기(lifespan)를 with 블록 형태로 관리하는 방법을 구현할 수 있다.
- 참고사항
- - 수강 기간 중 언제든지 반복 수강이 가능합니다.
- - 수강 여부 : 해당 차시의 80%를 수강하면 (회색) 배경으로 표시됩니다.
- - 수강 신청 완료 후 수강할 수 있습니다.
- - 즐겨찾기 한 강좌는 MY Class에서 확인할 수 있습니다.