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을 사용하면 데이터 모델과 데이터베이스 구조 간의 결합도가 증가한다. 이는 데이터베이스 구조 변경과 같은 작업에 제약이 따를 수 있다.