본문 바로가기

[FastAPI x PostgreSQL] 프로세스 정리 (with SQLAlchemy, Pydantic)

@Jeeqong 2025. 4. 8. 11:16
반응형

💡 FastAPI에서 PostgreSQL까지 흐름 이해하기

FastAPI로 백엔드 API를 만들다 보면 다음과 같은 단어들을 자주 마주하게 됩니다.

각자 따로 설명을 찾아보면 이해가 가면서도 개발하다보면 이게 뭐엿지 하게되는 상황이 꼭 있기 마련이다!!

그래서 공부한김에 이해하기쉽게 정리해서 포스팅해봤다.

처음엔 각각이 따로 노는 것처럼 보이지만, 알고 보면 이들은 하나의 흐름으로 연결됩니다.

  • Pydantic
  • SQLAlchemy
  • psycopg2
  • PostgreSQL
  • 스키마(schema)

🧭 전체 흐름 요약

FastAPI (Pydantic 스키마)
    ↓
SQLAlchemy (ORM)
    ↓
psycopg2 (드라이버)
    ↓
PostgreSQL (데이터베이스)

🧱 각 구성요소 역할

구성요소  설명
FastAPI 요청/응답 처리, API 라우팅 담당
Pydantic 클라이언트 → 서버 요청 데이터의 유효성 검사 및 구조 정의 (Schema)
SQLAlchemy ORM: 파이썬 클래스 ↔ DB 테이블 간 매핑 처리
psycopg2 PostgreSQL과 실제 연결하는 드라이버 (SQLAlchemy 내부에서 사용됨)
PostgreSQL 실제 데이터를 저장하는 관계형 데이터베이스

 


🧠 백엔드 핵심 요소 역할 정리 (비유 버전)

FastAPI: “요청 받았어요! 처리할 준비됐어요~”

Pydantic: “입력값 확인 완료! 유효한 데이터입니다!”

SQLAlchemy: “모델과 DB 간 연결은 제가 처리할게요~”

psycopg2: “그럼 이 데이터, DB한테 직접 전달하겠습니다!”

PostgreSQL: “네~ 저장 완료했어요!”


🗣 개념을 역할극으로 설명하면?

FastAPI: “💬 사용자 요청 받아서 처리할게요~ API는 제 담당이죠!”

Pydantic: “🔍 들어온 데이터 검사할게요! 빠진 값은 없나요?”

SQLAlchemy: “📦 이건 모델이랑 테이블 연결해주는 ORM이에요. 편하게 객체처럼 쓰세요!”

psycopg2: “📬 알겠어요! SQL 쿼리 대신 제가 직접 DB에 말 걸고 올게요~”

PostgreSQL: “📚 오케이! 데이터는 여기 잘 저장해둘게요.”


🧩 예시로 보는 흐름

  1. 클라이언트가 JSON으로 데이터를 보냄
  2. { "title": "새로운 일정", "start_date": "2025-04-01", "end_date": "2025-04-03" }
  3. Pydantic이 해당 요청이 스키마와 맞는지 검사
  4. SQLAlchemy 모델을 통해 Python 객체를 DB 객체로 변환
  5. psycopg2가 PostgreSQL에 SQL 쿼리를 날림
  6. PostgreSQL이 데이터를 저장함

🎯 간단한 기억 팁

  • Pydantic: 데이터 검사기 (문지기)
  • SQLAlchemy: 통역사 (ORM 매핑)
  • psycopg2: 배달부 (SQL 실행)
  • PostgreSQL: 창고 (데이터 저장)

✏️ 마무리하며

 

FastAPI를 쓰다 보면 처음엔 이 개념들이 각각 따로 노는 것처럼 느껴지죠.

하지만 흐름을 한번 잡고 나면,

이 모든 요소들이 어떻게 연결되는지 훨씬 쉽게 이해할 수 있습니다.

 

이번 글이 그 흐름을 잡는 데 조금이라도 도움이 되었으면 좋겠어요.

이제 실제로 코드를 짜보면서 직접 익혀보면 훨씬 자연스럽게 손에 익을 거예요.

반응형
Jeeqong
@Jeeqong :: JQVAULT

Jeeqong's vault : 정보/기록을 쌓아두는 공간 웹개발 포스팅 일상 리뷰를 기록하는 공간입니다.

공감하셨다면 ❤️ 구독도 환영합니다! 🤗

목차