반응형
ORM
ORM이란?
- ORM은 "Object-Relational Mapping"의 약자로, 객체 지향 프로그래밍 언어와
관계형 데이터 베이스 간의 데이터 변환을 자동화하는 기술이다. - ORM은 데이터베이스 테이블을 객체로 매핑하고, 객체 간의 관계를 유지하면서
데이터를 검색, 삽입, 업데이트 및 삭제할 수 있도록 도와준다. - 대표적인 ORM 프레임워크로는 Django ORM, SQLAlchemy, Hibernate 등이 있다.
장점
1. 간편한 사용
- ORM은 SQL 쿼리 대신 객체 지향 코드를 사용하여 데이터베이스와 상호 작용할 수 있어,
데이터베이스 작업을 더 쉽게 할 수 있다.
2. 객체 지향 프로그래밍과의 호환성
- ORM은 객체 지향 언어와의 호환성을 제공하기 때문에 데이터베이스와 객체를
일치시킬 수 있으며, 코드의 가독성과 유지 보수성을 향상시킬 수 있다.
3. 데이터베이스 종속성 감소
- ORM은 데이터베이스에 대한 구체적인 SQL코드를 숨기고, 데이터베이스 변경에 대한 비용을 줄일 수 있다.
단점
1. 성능 문제
- 복잡한 쿼리나 대량 데이터 조작 작업을 수행할 때 ORM은 종종 SQL 쿼리에 비해 성능이 떨어질 수 있다.
- 일부 ORM 라이브러리는 효율적인 SQL쿼리를 생성하지 못할 수 있다.
2. 학습 곡선
- ORM을 사용하려면 ORM 라이브러리 및 개념을 배워야 하며, 초기 학습 곡석인 존재한다.
3. 제약 사항
- ORM은 데이터베이스의 특정 기능을 모델링하기 어려울 수 있으며, 일부 고급 데이터베이스 작업이 어려울 수 있다.
ORM을 사용하며 쿼리가 복잡해지는 경우 해결 방법
1. Native SQL 사용
- ORM을 사용하면서 복잡한 쿼리를 수행해야 하는 경우 ORM이 제공하는 SQL을 직접 작성하는 방법이다.
이를 통해 최적화된 쿼리를 사용할 수 있다.
2. 인덱스 및 성능 최적화
- ORM은 종종 성능 최적화를 자동으로 수행하지 않기 때문에, 데이터베이스 인덱스를 적절히 설계하고,
쿼리 실행 계획을 분석하여 성능을 향상시켜야 한다.
3. ORM 기능 활용
- ORM 라이브러리는 복잡한 쿼리를 작성하는 데 도움이 되는 다양한 기능을 제공해준다.
예를 들어 ORM의 집계 함수나 서브쿼리 기능을 활용하면 복잡한 데이터 검색을 단순화할 수 있다.
4. 캐싱 활용
- ORM은 데이터베이스 쿼리 결과를 캐시하여 성능을 향상시키는 기능을 제공하며, 반복적인 쿼리를 최소화할 수 있다.
반응형
'[백엔드] 기술면접' 카테고리의 다른 글
[백엔드] 기술 면접 Top30 - #16 OSI 7계층 (51) | 2023.09.22 |
---|---|
[백엔드] 기술 면접 Top30 - #15 GET, POST 데이터 흐름 (43) | 2023.09.20 |
[백엔드] 기술 면접 Top30 - #13 대용량 트래픽 (93) | 2023.09.18 |
[백엔드] 기술 면접 Top30 - #12 객체 지향 프로그래밍의 개념과 활용법 (41) | 2023.09.16 |
[백엔드] 기술 면접 Top30 - #11 DI, IoC (41) | 2023.09.15 |