데이터 분석 기술 블로그

Django에 대하여(12)_ORM과 QuerySet API 본문

백엔드

Django에 대하여(12)_ORM과 QuerySet API

데이터분석가 이채은 2024. 4. 2. 09:00

1. ORM(Object-Relational-Mapping)

ORM이란 객체 지향 프로그래밍 언어를 사용하여 호환되지 않는 유형의 시스템 간에 데이터를 변화하는 기술입니다.

ORM의 역할 1
ORM의 역할 2


2. QuerySet API

QuerySet API란 ORM에서 데이터를 검색, 필터링, 정렬 및 그룹화하는 데 사용하는 도구로 API를 사용하여 SQL이 아닌 Python 코드로 데이터를 처리하는 것입니다. 즉, Python의 모델 클래스와 인스턴스를 활용해 DB에 데이터를 저장, 조회, 수정, 삭제하는 것을 뜻합니다.

QuerySet API 구문

 

2.1 Query

  • 데이터베이스에 특정한 데이터를 보여 달라는 요청
  • "쿼리문을 작성한다."는 원하는 데이터를 얻기 위해 데이터베이스에 요청을 보낼 코드를 작성한다는 뜻입니다.
  • 파이썬으로 작성한 코드가 ORM의 의해 SQL로 변환되어 데이터베이스에 전달되며, 데이터베이스의 응답 데이터를 ORM이 QuerySet이라는 자료 형태로 진화하여 우리에게 전달

2.2 QuerySet

  • 데이터베이스에게서 전달받은 객체 목록(데이터 모음) - 순회가 가능한 데이터로써 1개 이상의 데이터를 불러와 사용할 수 있습니다.
  • Django ORM을 통해 만들어진 자료형
  • 단, 데이터베이스가 단일한 객체를 반환할 때는 QuerySet이 아닌 모델(Class)의 인스턴스로 반환됩니다.

참고

1. ORM, QuerySet API를 사용하는 이유

  • 데이터베이스 쿼리를 추상화하여 Django 개발자가 데이터베이스와 직접 상호작용하지 않아도 되도록 합니다.
  • 데이터베이스와의 결합도를 낮추고 개발자가 더욱 직관적이고 생산적으로 개발할 수 있도록 돕습니다.