ORM?

이종찬·2023년 2월 20일
0
post-thumbnail

📖 ORM(Object Relational Mapping)?

객체와 관계형 데이터베이스 간의 데이터 매핑을 자동화 하는 기술입니다. 객체 지향 프로그래밍에서 사용하는 클래스와 관계형 데이터베이스에서 사용하는 테이블 간의 매핑을 쉽게 구현할 수 있습니다. 해당 기술을 사용하여 개발자는 객체 지향적 코드를 작성하면서 데이터베이스를 보다 용이하게 다룰 수 있습니다.

🤔 사용해야 하는 이유는?

1. 생산성 향상

SQL 질의문을 직접 작성하지 않아도 되므로 생산성 향상을 기대할 수 있습니다.

2. 유지보수성 향상

객체와 테이블간의 매핑을 한 곳에서 관리할 수 있어서 유지보수성 향상 됩니다.

3. 데이터베이스 이식성 향상

ORM을 사용하면 데이터베이스 종류에 따라 상관없이 객체 지향적 코드를 작성할 수 있어 데이터베이스 이식샹 항상을 기대할 수 있습니다.

❌ 단점

1. 성능 저하

객체와 데이터베이스 간의 변환 작업이 필요하여 성능 저하가 발생 할 수 있습니다.

2. 쿼리 최적화의 어려움

ORM를 사용하며 직접 SQL문을 작성할 수 없기 때문에 쿼리 최적화에 어려움이 있을 수 있습니다.

이러한 단점들이 존재하여 올바른 시스템 적용 및 성능 저하 최소화, 쿼리 최적화에 노력해야 합니다.

😮 주로 사용되는 ORM 성능 최적화 방법

1. 적절한 데이터베이스 스키마 설계

2. 지연 로딩

필요한 데이터가 사용될 때 까지 데이터를 로딩하지 않는 지연 로딩 기능을 사요하면 불필요한 데이터를 로딩하지 않아도 되므로 성능 향상을 기대할 수 있습니다.

3. 캐싱

ORM에서 캐싱 기능을 제공하므로 자주 사용되는 데이터 및 쿼리 결과를 캐시에 저장하면 성능 향상을 기대할 수 있습니다.

4. context 관리

불필요한 객체가 저장되지 않은 영속성 context가 저장되어 있으면 쿼리 횟수가 늘어나 관리가 필요합니다.

✅ 요약

  • ORM은 데이터베이스와 객체간의 데이터 매핑을 자동화하는 기술
  • ORM을 사용하면 생산성, 유지보수성 향상을 기대할 수 있다.
  • 객체와 데이터베이스간 변환 작업이 필요하여 성능 저하를 유발할 수 있다.
  • 성능 최적화를 위해서는 ORM에서 제공하는 기능 이용 및 쿼리,스키마를 최적화해야 한다.
  • 데이터베이스와 상호작용하는 분야에서 많이 사용된다.
profile
왜? 라는 질문이 사라질 때까지

0개의 댓글