GPT로 공부할 수 있을까 - 2일차

2024. 12. 30. 15:53카테고리 없음

이전 시간에는 GPT를 강사로 만들어서 fastAPI 를 가르치게 시작했다!

이제 챕터 2부터 진행해보자

 

더보기

FastAPI 강의 계획

1. 기본 개념 및 환경 설정 (완료)

  • FastAPI 설치 및 설정
  • 첫 번째 API 엔드포인트 작성 및 실행
  • Swagger UI와 ReDoc 사용법

2. 요청 및 응답 처리 (Request/Response)

  • 요청 매개변수: Query, Path, Body
  • 유효성 검사: Pydantic을 사용한 데이터 검증
  • JSON 응답: Dict 및 Pydantic 모델 활용

3. FastAPI 라우터 및 구조화

  • 라우터를 사용하여 코드 분리하기
  • 모듈화된 프로젝트 구조 설계

4. 의존성 주입 (Dependency Injection)

  • FastAPI의 의존성 주입 개념
  • 공통 로직 (ex. 인증, 데이터베이스 연결) 재사용하기

5. 데이터베이스 연동

  • SQLAlchemy 및 FastAPI 연동
  • 데이터베이스 CRUD 작업
  • 비동기 데이터베이스 (ex. async SQLAlchemy)

6. 인증 및 권한 관리

  • OAuth2와 JWT를 사용한 인증
  • 사용자 등록 및 로그인 기능 구현
  • 권한 관리 (Role-Based Access Control)

7. 비동기 처리 및 배포

  • FastAPI에서의 비동기 처리
  • Uvicorn과 Gunicorn을 사용한 서버 배포
  • Docker를 활용한 컨테이너화

8. 고급 주제

  • WebSocket 구현
  • Background Tasks 사용하기
  • 이벤트 기반 처리 및 메시지 큐 연동

9. 프로젝트 실습

  • 간단한 RESTful API 프로젝트 작성
  • To-Do 리스트, 블로그, 또는 간단한 소셜 네트워크 등 선택
  • 문서화 및 배포

10. 추가 학습

  • FastAPI 커뮤니티 리소스 및 패턴
  • 확장 기능 (ex. GraphQL, gRPC)

 

일단 잊지 않기 위해 적는데 서버를 실행하기 위해서는 다음 명령어가 필요하다.

 

잠깐이지만 기억이 안났기에 적는다.

 

 

2. 요청 및 응답처리 

이번 챕터의 학습목표는 다음과 같다.

학습 목표

  1. Path ParameterQuery Parameter 이해 및 사용.
  2. Pydantic을 사용하여 요청 데이터를 검증.
  3. JSON 응답을 반환하는 방법 익히기.

 

1. Path Parameter

 

말 그대로 경로에 인자를 담아 보내는 것을 말한다.

 

@app.get("/items/{item_id}")
def read_item(item_id: int):
    return {"item_id": item_id}

 

아이템의 id 를 받아 그것을 출력하는 코드이다.

 

 

이런 느낌인데 다른 자료형이 들어가면 어떤지 확인해보자.

 

 

정수형 자리에 문자열이 들어왔다고 알려준다.

 

 

2. Query Parameter

 

얘도 말 그대로 쿼리에 인자를 담아 보내는 것인데 쿼리가 정확하게 무엇인지 알아보자.

 

 

경로에 데이터를 전달하는 것은 같지만

전달하는 용도와 방법에 차이가 존재하는 것 같다.

 

@app.get("/items/")
def read_items(skip: int = 0, limit: int = 10):
    return {"skip": skip, "limit": limit}

 

 

 

3. JSON 응답

 

 

이런 느낌으로 우리가 흔히 링크 라고 부르는 곳에 정보들을 넘기면서 쓰는걸 알 수 있다.

 

전에 저 url에 정보를 저장하는 즉, DB로 사용할 수 있다는 영상을 본 적 있는데... 나중에 아이디어에 참고 해야겠다.