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

2025. 4. 21. 10:11·Flask

📌 개념 정리

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 연동 시 필요

설치 흐름

  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의 기본 개념을 이해하고, 간편하게 데이터베이스와 연동하여 생산성을 높여보세요! 🚀

'Flask' 카테고리의 다른 글

Chapter 3-3 Flask-SQLAlchemy 모델 구축(models.py)  (0) 2025.04.21
Chapter 3-2 Flask-SQLAlchemy 구축(app.py)  (0) 2025.04.21
Chapter 2-7 Flask MySQL CRUD 애플리케이션 구현  (0) 2025.04.18
Chapter 2-6 Flask-MySQLdb 설정 및 사용법  (0) 2025.04.18
Chapter 2-5 Flask-Smorest 활용하여 REST API 생성  (0) 2025.04.18
'Flask' 카테고리의 다른 글
  • Chapter 3-3 Flask-SQLAlchemy 모델 구축(models.py)
  • Chapter 3-2 Flask-SQLAlchemy 구축(app.py)
  • Chapter 2-7 Flask MySQL CRUD 애플리케이션 구현
  • Chapter 2-6 Flask-MySQLdb 설정 및 사용법
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (502) N
      • Python (31)
      • 프로젝트 (43)
      • 과제 (21)
      • Database (40)
      • 멘토링 (9)
      • 특강 (18)
      • 기술블로그 (143) N
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (44) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Chapter 3-1 ORM이란? Flask-SQLAlchemy란?
상단으로

티스토리툴바