반응형
1. Persistence(영속성)
- 프로그램을 실행하면서 데이터가 생성, 삭제, 변경이 발생한다. 이렇게 생성된 데이터가 프로그램이 종료되어도 사라지지 않고 저장되는 특징을 말한다.
2. Persistence Framework
- Java에서는 데이터의 영속성을 위해 JDBC를 지원하는데 이를 이용하여 DB에 접근, SQL 수행, 데이터 맵핑 등의 작업을 개발자가 전부 하기에는 번거로움과 실수가 많이 발생할 수 밖에 없다.
- 위의 복잡함과 번거로움을 없이 간단하고 단순하게 데이터베이스와 연동하고자 Persistence Framework가 등장하였고 제공하는 방식에 따라 SQL Mapper와 ORM으로 나뉘게된다.
3. SQL Mapper
- SQL <- 매핑 -> Object 필드
- 객체와 SQL 문을 맵핑하여 데이터를 객체화한다.
- SQL 문으로 직접 데이터를 다룬다.
- 장점
- SQL 쿼리를 그대로 사용해서 복잡한 비즈니스 로직을 구현하는데 용이하다.
- 동적 쿼리 사용 시 JPA보다 간편하게 구현 가능하다.
- 단점
- DBMS에 대한 종속성이 존재한다
- 객체지향 프로그래밍 관점에서 패러다임 불일치가 발생한다.
- 데이터베이스 변경사항 발생 시 객체와 SQL 모두 수정이 필요하다.
4. ORM(Object Relational Mapping, 객체 관계 맵핑)
- 데이터베이스 데이터 <- 매핑-> Object 필드
- 객체와 RDB의 데이터를 자동으로 매핑해주는 기술.
- 객체간의 관계를 통해 SQL문 작성이 아닌 구현된 메소드를 통해 간접적으로 데이터를 다룬다.
- 장점
- DBMS에 대한 종속성이 줄어든다.
- 반복작업이 줄어서 생산성이 향상된다.
- 단점
- 복잡한 비즈니스 로직이 있는 경우 서비스 구현이 어렵다.
(단, Native SQL, JPQL, Query DSL등을 활용하여 구현 가능) - 학습곡선이 높다.
- 복잡한 비즈니스 로직이 있는 경우 서비스 구현이 어렵다.
반응형
'DB' 카테고리의 다른 글
트랜잭션 격리수준(Isolation Level) (0) | 2022.02.18 |
---|---|
OPTIMIZER(옵티마이저) (0) | 2017.05.09 |
SQL튜닝 방법론 (0) | 2016.12.29 |