728x90
반응형
ORM (Object-Relational Mapper)은 관계형 데이터베이스 테이블에 저장된 데이터를 응용 프로그램 코드에서 더 일반적으로 사용되는 개체로 자동 전송하는 코드 라이브러리입니다.
위 그림과 같이 SQL 언어의 관계형 데이터베이스와 프로그래밍 코드 사이의 다리 역할을 해준다고 생각하면 됩니다.
ORM은 개발자가 SQL 대신 Python 코드를 작성하여 데이터베이스에서 데이터와 스키마를 생성, 읽기, 업데이트 및 삭제와 같은 일을 수행할 수 있도록 합니다. 물론 알맞은 데이터베이스 엔진을 활용해 직접 SQL 쿼리문을 보내는 방법도 있지만, ORM을 사용하면 개발자는 SQL 또는 stored procedures를 작성하지 않고 데이터베이스 작업에 익숙한 프로그래밍 언어를 사용할 수 있습니다. 즉, ORM의 목적은 코딩을 편리하게 해주는 것 입니다.
# ORM 없이 SQL 사용
SELECT * FROM USERS WHERE zip_code=94107;
# Django ORM 사용 (파이썬과 같음)
# obtain everyone in the 94107 zip code and assign to users variable
users = Users.objects.filter(zip_code=94107)
단순한 쿼리를 예로 들었지만 이보다 더 복잡한 쿼리를 작성할 때 ORM은 원하는 객체 지향 언어로 작성하게 해줍니다. 이것을 Object-Relational Mapping 이라고 합니다. 서로가 다른 두 개의 시스템을 연결시켜준다는 개념입니다.
이 개념을 구체화하는 Object-Relational Mapper 는 라이브러리를 가르킵니다. 대표 라이브러리로 SQLAlcemy이 있습니다.
728x90
반응형
'데이터베이스 > ORM' 카테고리의 다른 글
SQLAlchemy 사용 (2) | 2021.03.22 |
---|---|
SQLAlchemy 정의, 구조 (0) | 2021.03.22 |
ORM 장점과 단점, 언제 사용? (0) | 2021.03.21 |
ORM 관련 영상 및 자료 (0) | 2021.03.21 |