본문 바로가기
프로그래밍/MySql

[MySql] ORM이란?

by 시간많은백수 2023. 9. 27.
반응형

✔️ORM이란?

ORM(객체 관계 매핑, Object-Relational Mapping)은 객체 지향 프로그래밍 언어와 관계형 데이터베이스 간의 데이터 매핑을 자동화하는 기술입니다. ORM은 객체와 데이터베이스 간의 불일치(impedance mismatch) 문제를 해결하고 개발자가 SQL 쿼리를 직접 작성하지 않고도 데이터베이스와 상호 작용할 수 있게 합니다. 아래에서 ORM의 주요 개념과 작동 원리를 자세히 설명하겠습니다.

💡 ORM의 주요 개념

  • 엔티티 (Entity)
    • 엔티티는 데이터베이스 테이블과 매핑되는 객체를 나타냅니다. 예를 들어, 사용자 정보를 저장하는 데이터베이스 테이블과 매핑되는 User 클래스는 엔티티입니다.
  • 속성 (Attribute)
    • 속성은 엔티티의 필드 또는 프로퍼티를 나타냅니다. User 클래스의 username 및 email 필드는 속성입니다. 
  • 매핑 (Mapping)
    • 매핑은 엔티티와 데이터베이스 테이블 간의 매핑 규칙을 정의합니다. 예를 들어, User 엔티티의 username 속성은 users 테이블의 username 열과 매핑됩니다.
  • ORM 프레임워크 (ORM Framework)
    • ORM 프레임워크는 ORM을 구현하고 사용하기 위한 라이브러리 또는 프레임워크입니다.
    • Hibernate, JPA (Java Persistence API), Entity Framework 등이 대표적인 ORM 프레임워크입니다.

 

💡 ORM의 작동 원리

  • 객체-테이블 매핑 (Object-Relational Mapping)
    • 객체와 데이터베이스 테이블 간의 매핑을 정의합니다. 엔티티 클래스의 필드 또는 프로퍼티와 데이터베이스 열 간의 매핑 정보를 포함합니다.
  • CRUD 작업 자동화
    • ORM 프레임워크는 엔티티를 사용하여 데이터베이스에 대한 CRUD(Create, Read, Update, Delete) 작업을 자동으로 생성합니다. 개발자는 SQL을 직접 작성할 필요가 없습니다.
  • 객체 그래프 탐색
    • ORM은 객체 간의 관계를 지원하며, 객체 그래프를 효과적으로 탐색할 수 있게 합니다. 예를 들어, User 엔티티가 Order 엔티티와 관계를 가질 때, 주문 정보에 대한 객체 그래프를 쉽게 구성할 수 있습니다.
  • SQL 생성 및 최적화
    • ORM은 개발자가 작성한 객체 지향 코드를 기반으로 SQL 쿼리를 생성하고 실행합니다. 일부 ORM 프레임워크는 SQL 쿼리를 최적화하여 성능을 향상시킵니다.
  • 트랜잭션 관리
    • ORM 프레임워크는 데이터베이스 트랜잭션을 관리하고, ACID (원자성, 일관성, 고립성, 지속성) 트랜잭션을 보장합니다.
반응형

'프로그래밍 > MySql' 카테고리의 다른 글

[MySql] MySql 설치 및 환경변수 설정  (0) 2023.10.26
[MySql] Join 정리  (0) 2023.09.02
[MySql] 기본 문법 정리  (0) 2023.08.31