아이티고

강좌검색

  • 강좌검색
  • 질문검색
    최근 검색어 자동저장 전체삭제

    알림

    여기를 클릭하면, 샘플강의가 재생됩니다.
    tag
    강좌코드 : la_P100107
    열공이

    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에서 확인할 수 있습니다.

    시리즈강좌

    수강평

    • 0.0
    • 0.0
    • (0개의 수강평)
    버튼
    • 최신순
    • 높은 평점순
    • 낮은 평점순
    ※ 리뷰는 본 강의를 1차시 이상 수강하셔야 작성하실 수 있습니다.
    이전 1/297 다음
    수강생 리뷰 작성

    평점

    버튼
    • 5점
    • 4점
    • 3점
    • 2점
    • 1점

    수강평

    ※ 수강평은 최대 200자까지 가능합니다.
    ※ 리뷰 작성 안내
    본 리뷰는 AItgo 사이트에 작성자 ID와 함께 게시됩니다.
    타인에게 불쾌감을 줄 수 있는 부적절한 표현(욕설, 비방, 비속어 등등)이 들어 있는 게시물의 경우 고지 없이 삭제 될 수 있습니다.
    작성하신 리뷰는 "My Class > 나의 수강 리뷰" 페이지에서 삭제 하실 수 있습니다.
    강좌 리스트
    01. alembic 도구 사용 1/3 [41:35]
    02. alembic 도구 사용 2/3 [45:6]
    03. alembic 도구 사용 3/3 [15:12]
    04. 일반 함수와 코루틴의 차이, 동시성의 의미 [37:32]
    05. 동시성과 병렬성의 차이, 파이썬 프로세스의 구조(메인 쓰레드, GIL, CPython 인터프리터), 이벤트 루프의 역할 [34:18]
    06. asyncio.gather() 사용법 [37:7]
    07. asyncio.gather()의 return_exceptions 파라미터로 예외 전파/예외 리턴 선택하기 [33:17]
    08. asyncio.create_task() 사용법 [15:46]
    09. await 를 실행하지 않은 asyncio.create_task() 사용 패턴의 문제점 [26:30]
    10. with 블록의 __enter__/__exit__, async with 블록의 __aenter__/__aexit__, TaskGroup을 async with 블록에서 사용하기 [30:0]
    11. async with asyncio.TaskGroup() 블록에서 ExceptionGroup으로 caller에게 전달 [37:15]
    12. asyncio.TaskGroup()의 __aexit__ 구현은 그룹 내의 모든 태스크 종료까지 대기 [14:11]
    13. asyncio.Semaphore를 사용해야 하는 경우, async with asyncio.Semaphore() 블록 사용법 [25:10]
    14. asyncio.Lock 사용해서 공유 자원의 data integrity 를 유지 [20:49]
    15. asyncio.Queue를 사용한 생산자/소비자 패턴 구현 [38:26]
    16. asyncio.Event()의 사용법 [24:55]
    17. asyncio.wait_for(코루틴, timeout=N)의 사용 [10:51]
    18. FaspAPI에서 코루틴과 일반 함수를 실행하는 과정에서 쓰레드 풀과 메인 쓰레드의 GIL 획득 과정 [34:58]
    19. Session yield, commit, rollback 패턴을 코루틴으로 구현하는 개요 [28:36]
    20. asynccontextmanager로 FastAPI 앱의 생명 주기를 with 블록처럼 다루기 [32:12]
    지금 자유이용권 구매하고, 모든 강의를 자유롭게 수강하세요!