Flask

Chapter 3-1 ORM이란? Flask-SQLAlchemy란?

Chansman 2025. 4. 21. 10:11

📌 개념 정리

ORM이란?

ORM (Object-Relational Mapping)

  • ORM은 객체(Object)와 관계형 데이터베이스(Relational DB) 간의 매핑을 말합니다.
  • 객체는 클래스, 속성으로 구성되고, 관계형 데이터베이스는 테이블, 로우, 컬럼으로 구성됩니다.

📋 객체와 DB 매핑

개념 객체 관계형 데이터베이스

데이터 구조 클래스, 속성 테이블, 로우, 컬럼
언어/프레임워크 Python (Flask, Django) RDBMS

👉 데이터베이스 테이블을 객체로, 객체 간의 관계를 외래 키로 매핑합니다. 결과적으로 SQL 쿼리를 직접 작성하지 않고도 데이터 CRUD가 가능합니다.


🚦 동작 원리 및 구조

ORM은 주로 두 가지 주요 역할을 수행합니다:

  • Model: DB 테이블 생성을 담당합니다.
  • ORM: DB 테이블 데이터를 읽고, 객체로 변환하는 역할을 수행합니다.

ORM을 사용하는 이유

  • 데이터베이스 관련 코드가 간결해집니다.
  • 결과 오류를 줄일 수 있습니다. (스키마로 인해 쿼리 결과의 증명 가능)
  • SQL보다 쉬운 쿼리 작성으로 생산성이 높아집니다.

💻 코드 예시 및 흐름 분석

Flask-SQLAlchemy란?

Flask에서 SQLAlchemy(ORM)를 쉽게 사용할 수 있도록 돕는 라이브러리입니다.

📌 설치 방법

  • sqlalchemy (의존성 포함, 별도 설치 불필요)
> pip install SQLAlchemy
> pip install Flask-SQLAlchemy
> pip install pymysql  # MySQL 연동 시 필요

설치 흐름

  1. Flask 앱에 Flask-SQLAlchemy 설치
  2. 모델 정의를 통해 DB 테이블을 생성
  3. ORM을 통해 객체와 DB 테이블 간 데이터 CRUD 수행

🧪 실전 사례

예를 들어, Flask 앱에서 사용자 정보를 저장하는 경우:

  • User라는 객체를 Model로 정의하여 테이블 생성
  • Flask-SQLAlchemy로 DB에 자동 반영
  • ORM으로 데이터를 관리 (생성, 조회, 수정, 삭제)

🧠 고급 팁 or 자주 하는 실수

  • ORM을 처음 접하면 개념적으로 혼란스러울 수 있으나, 장기적으로 유지보수가 매우 간편해집니다.
  • 초기 설정이 잘못되면 성능 이슈가 발생할 수 있으므로, DB와 객체 간의 관계를 명확히 설계해야 합니다.
  • 대량의 복잡한 쿼리는 ORM보다는 직접 SQL이 더 효율적일 수 있습니다.

마무리 요약 및 복습 포인트

  • ORM은 객체와 DB를 매핑하는 기술입니다.
  • Flask-SQLAlchemy를 통해 간단히 Flask 앱에서 사용할 수 있습니다.
  • SQL 직접 작성 없이 객체 지향적으로 데이터를 쉽게 관리할 수 있습니다.

이 내용을 통해 ORM과 Flask-SQLAlchemy의 기본 개념을 이해하고, 간편하게 데이터베이스와 연동하여 생산성을 높여보세요! 🚀