ORM(Object Relational Mapping)

찬민·2024년 8월 22일

TIL

목록 보기
41/62

ORM(Object Relational Mapping)은 객체 지향 프로그램에서 사용하는 객체들을 관계형 데이터베이스의 테이블에 매핑해주는 기술이다. 이를 통해 개발자는 SQL 쿼리를 직접 작성하지 않고도, 데이터베이스에 데이터를 삽입하거나, 조회하고, 수정하거나 삭제하는 작업을 수행할 수 있다


ORM의 장점

  • 생산성 향상: SQL 쿼리를 일일이 작성할 필요가 없으니, 개발 속도가 빨라지고 코드 작성이 간편해진다. 이는 개발 생산성에 큰 도움이 된다.
  • 유지 보수 용이: 객체 지향 프로그램의 특성상, 코드를 재사용하거나 유지 보수하는 것이 훨씬 쉬워진다. 데이터베이스 변경이 생기더라도 객체를 수정하는 것만으로 처리가 가능하다.
  • DB 독립성: 특정 데이터베이스 시스템에 종속되지 않고 다양한 DBMS에서 동일한 코드로 작업할 수 있다. 이는 프로젝트가 커질수록, 혹은 데이터베이스가 변경될 가능성이 있을 때 매우 유용하다.

ORM의 단점

  • 성능 저하 가능성: SQL 쿼리를 직접 작성하는 것보다 ORM을 사용하면 성능이 떨어질 수 있다. 이는 특히 대규모 데이터나 복잡한 연산이 필요한 작업에서 더 두드러진다.
  • 복잡한 쿼리 처리 어려움: ORM은 단순한 쿼리에는 강하지만, 매우 복잡한 쿼리나 데이터베이스에 최적화된 쿼리를 작성해야 할 때는 한계가 있을 수 있다. 이럴 때는 직접 SQL을 작성하는 것이 더 나을 수도 있다.

ORM 사용 예시

Python에서는 DjangoSQLAlchemy 같은 ORM 도구들이 널리 사용되고 있다. 이 도구들을 통해 데이터베이스와 상호작용할 때, SQL 대신 Python 코드를 사용할 수 있다.

from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()

# ORM을 사용해 데이터베이스에 레코드 삽입
article = Article.objects.create(title="My First Article", content="This is the content of my first article.")

위의 예시에서는 Article이라는 Django 모델이 데이터베이스 테이블에 매핑된다. Article.objects.create()를 통해, SQL을 직접 작성하지 않고도 새로운 데이터 레코드를 추가할 수 있다.

0개의 댓글