Spring Boot ORM (Object Relational Mapping)

devyunie·2024년 8월 26일

SpringBoot

목록 보기
9/13
post-thumbnail

ORM (Object Relational Mapping)

객체 관계 매핑

  • 자바와 같은 객체지향 언어에서 의미하는 개체와 RDBMS의 테이블을 자동으로 매핑
  • 이와 반대의 관계가 SQL Mapping
  • ORM은 일반적인 경우 SQL이 불필요

DB에서 BOOLEAN이라는 타입이 존재하지는 않는다 논리형 존재X
DB에서 BOOLEAN tinyINT 이런식으로 생성

ORM 장점

개발 속도 향상

  • ORM은 데이터베이스와 객체 간의 매핑을 자동화하므로, 개발자는 SQL 쿼리를 작성하지 않아도 되어 개발 속도를 향상 시킬수 있다.

코드 재사용성

  • ORM을 사용하면 데이터 접근 코드를 모듈화하여 재사용할 수 있다. 이를 통해 코드 중복을 제거하고 유지보수를 용이하게 할 수 있다.

데이터베이스 추상화

  • ORM은 데이터베이스 시스템 간의 차이를 추상화하여, 애플리케이션을 다양한 데이터베이스에서 사용할 수 있게 한다.

객체지향적 설계

  • ORM을 사용하면 객체지향적 설계 원칙에 따라 데이터 모델을 작성할 수 있다. 이는 코드의 가독성과 유지보수성을 향상시킨다.

ORM 단점

성능 저하

  • ORM은 추상화 계층을 추가하므로, SQL 쿼리보다 더 많은 오버헤드가 발생할 수 있다. 이로 인해 성능이 저하될 수 있다.

복잡한 쿼리 제한

  • ORM은 일반적인 CRUD 작업에 최적화되어 있지만, 복잡한 쿼리나 데이터베이스 특화 기능에 대한 지원이 제한적이다.

학습 곡선

  • 개발자는 ORM 도구의 사용 방법과 동작 원리를 익혀야 한다. 이로 인해 학습에 많은 시간을 투자해야 한다.

결합도 증가

  • ORM을 사용하면 데이터 모델과 데이터베이스 구조 간의 결합도가 증가한다. 이는 데이터베이스 구조 변경과 같은 작업에 제약이 따를 수 있다.

0개의 댓글