코딩캠프/AI 웹개발 취업캠프

[AI 웹개발 취업캠프] 23Day - FastAPI(3)

고랑E 2023. 8. 17. 23:59
728x90

FastAPI

ORM(Object Relational Mapping)

객체와 관계형 데이터베이스의 데이터를 자동으로 연결해준다.

데이터베이스 데이터 <- 매핑 -> Object 필드

 

장단점

장점

  • DB를 변경할 때 쿼리를 하나하나 수정하지 않아도 된다.
  • SQL injection 를 방지할 수 있다.

 

단점

  • ORM을 또 별도로 배워야 한다.
  • 복잡한 쿼리가 필요한 경우 성능 저하를 일으키거나 ORM으로 치환해서 작성하기가 난해할 수 있다.

 

SQLAlchemy

Python에서 사용하는 ORM이다

공식 사이트 - https://www.sqlalchemy.org/

깃허브 - https://github.com/sqlalchemy/sqlalchemy

 

sqlalchemy 설치 명령어

pip install sqlalchemy

 

FastAPI 공식 사이트 자습서에서의 폴더 구조를 아래처럼 구성

 

  • __init__.py: app 디렉토리를 Python 패키지로서 인식하게 해주는 역할
  • crud.py: 데이터베이스 조작(create, read, update, delete)에 관련된 함수들을 정의
  • database.py: 데이터베이스 연결 및 세션 관리와 같은 데이터베이스 설정을 다루는 파일
  • main.py: FastAPI 애플리케이션의 주 진입점, API 엔드포인트를 정의하고, 라우팅 및 요청 처리를 수행
  • models.py: 데이터베이스 테이블을 정의하는 클래스들이 위치하는 파일
  • schemas.py: API 요청 및 응답 데이터의 유효성 검사와 직렬화를 위한 Pydantic 스키마를 정의하는 파일

 

본 후기는 정보통신산업진흥원(NIPA)에서 주관하는 <AI 서비스완성! AI+웹개발 취업캠프 - 프론트엔드&백엔드> 과정 학습/프로젝트/과제 기록으로 작성되었습니다.