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 (의존성 포함, 별도 설치 불필요)
- 공식 문서: SQLAlchemy · PyPI
> pip install SQLAlchemy
- flask-sqlalchemy
- 공식 문서: Flask-SQLAlchemy · PyPI
> pip install Flask-SQLAlchemy
> pip install pymysql # MySQL 연동 시 필요
설치 흐름
- Flask 앱에 Flask-SQLAlchemy 설치
- 모델 정의를 통해 DB 테이블을 생성
- ORM을 통해 객체와 DB 테이블 간 데이터 CRUD 수행
🧪 실전 사례
예를 들어, Flask 앱에서 사용자 정보를 저장하는 경우:
- User라는 객체를 Model로 정의하여 테이블 생성
- Flask-SQLAlchemy로 DB에 자동 반영
- ORM으로 데이터를 관리 (생성, 조회, 수정, 삭제)
🧠 고급 팁 or 자주 하는 실수
- ORM을 처음 접하면 개념적으로 혼란스러울 수 있으나, 장기적으로 유지보수가 매우 간편해집니다.
- 초기 설정이 잘못되면 성능 이슈가 발생할 수 있으므로, DB와 객체 간의 관계를 명확히 설계해야 합니다.
- 대량의 복잡한 쿼리는 ORM보다는 직접 SQL이 더 효율적일 수 있습니다.
✅ 마무리 요약 및 복습 포인트
- ORM은 객체와 DB를 매핑하는 기술입니다.
- Flask-SQLAlchemy를 통해 간단히 Flask 앱에서 사용할 수 있습니다.
- SQL 직접 작성 없이 객체 지향적으로 데이터를 쉽게 관리할 수 있습니다.
이 내용을 통해 ORM과 Flask-SQLAlchemy의 기본 개념을 이해하고, 간편하게 데이터베이스와 연동하여 생산성을 높여보세요! 🚀