ORM!

sh_awtylol4·2022년 4월 6일
0
post-thumbnail

Object Relational Mapping.

ORM(객체 관계형 매핑)이란?

ORM은 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체 지향 언어에서 사용할 수 있는 "가상" 객체 데이터베이스를 구축하는 방법이다.

ORM의 유형 - 활성화 레코드 패턴, 데이터 매퍼 패턴.

☀️ 활성화 레코드 패턴
코드의 개체 구조 내에서 데이터를 매핑합니다. 프로그래밍 코드 내에서 클래스와 구조를 사용하여 데이터를 관리합니다. 이 방법은 데이터 베이스 구조가 코드와 밀접하게 연결되어 있어 데이터베이스를 제거하고 다른 애플리케이션으로 마이그레이션 하기 어려운 문제가 있습니다.

🌕 데이터 매퍼 패턴
데이터 매퍼 패턴은 데이터베이스에서 개체의 비지니스 논리를 분리하려고 시도합니다. 이러헥 분리하면 데이터베이스를 변경하고 동일한 프로그래밍 논리를 사용하기가 더 쉬워집니다.

개체 관계형 매핑의 장점.

1. 생산력
여러가지 툴 사용과 데이터 변경 사항을 추적하기 쉽고 향후에 애플리케이션을 더 쉽게 디버그하고 변경할 수 있도록 도와준다.
2. 애플리케이션 디자인
모범 사례를 통해 빠른 맵핑이 가능합니다. 데이터 베이스를 제거하면 다른 응용 프로그램에 대한 데이터 전환을 할 수 있습니다.
3. 코드 재사용
클래스 라이브러리를 만들어 별도의 동적 연결 라이브러리(DLL)을 생성하는 것입니다. 데이터 액세스 코드를 복제할 필요 없이 새 애플리케이션을 생성 할 수 있습니다.
4. 감소된 테스트
데이터 엑세스 코드를 테스트하는데 많은 시간이 필요하지 않습니다. 대신 비지니스 로직과 코드 테스트에 집중 할 수 있습니다.

개체 관계형 매핑의 단점.

1. 성능
ORM 추가 코드가 생성시 코드의 성능을 저하시키고 유지 관리를 어렵게 한다. 처음 부터 설계를 잘해야 한다.
2. SQL을 알아야 함
높은 수준의 추상화를 위해서는 개발자의 기량이 요구 됩니다.
3. 잘못된 매핑
ORM은 때때로 데이터 테이블과 개체 간에 잘못된 매핑을 생성할 수 있습니다. 이러한 문제는 응용 프로그램 문제를 일으킬 수 있으며 인식하기 어렵습니다.
4. 스키마 및 마이그레이션에 대한 영향
잘못 작성된 ORM 계층은 종종 데이터 스키마를 개선하기 어렵게 만듭니다. 종종 선택이 제한될 수 있으며 ORM에 따라 선택이 제한될 수 있습니다. ORM이 마이그레이션을 지원하지 않는 경우 OOP에서 마이그레이션을 작성하는 것이 SQL로 마이그레이션을 위한 코드를 작성하는 것보다 더 복잡합니다. 잘 작성된 ORM에는 향후 데이터베이스 마이그레이션을 용이하게 하는 도구가 포함됩니다.

profile
포기하는 그 순간이 바로 시합종료예요...

0개의 댓글