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. 요청 및 응답처리
이번 챕터의 학습목표는 다음과 같다.
학습 목표
- Path Parameter와 Query Parameter 이해 및 사용.
- Pydantic을 사용하여 요청 데이터를 검증.
- 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로 사용할 수 있다는 영상을 본 적 있는데... 나중에 아이디어에 참고 해야겠다.