ORM vs SQL Mapper

2022. 2. 18. 15:04· DB
목차
  1. 1. Persistence(영속성)
  2. 2. Persistence Framework
  3. 3. SQL Mapper
  4. 4. ORM(Object Relational Mapping, 객체 관계 맵핑)
반응형

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
  1. 1. Persistence(영속성)
  2. 2. Persistence Framework
  3. 3. SQL Mapper
  4. 4. ORM(Object Relational Mapping, 객체 관계 맵핑)
'DB' 카테고리의 다른 글
  • 트랜잭션 격리수준(Isolation Level)
  • OPTIMIZER(옵티마이저)
  • SQL튜닝 방법론
야뤼송
야뤼송
야뤼송
야뤼송
야뤼송
전체
오늘
어제
  • 분류 전체보기 (90)
    • Backend (30)
      • Java (7)
      • Spring (11)
      • Spring Cloud (7)
      • Server&Network&설계 (5)
    • 분산처리 (8)
      • Hadoop (4)
      • Spark (3)
      • Message Queue (1)
      • ElasticSearch (0)
    • ML (21)
      • 사이킷런 (8)
      • 평가(Evaluation) (4)
      • 분류(Classification) (9)
    • 알고리즘&코딩테스트 (16)
      • 알고리즘 (2)
      • 코딩테스트 (14)
    • Trouble Shooting (3)
    • DB (4)
    • CS 및 보안 (1)
    • 기타 (5)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • leetcode
  • 머신러닝
  • 보팅
  • 사이킷런
  • lis알고리즘
  • Roc
  • AUC
  • 고정윈도우카운터
  • lis 알고리즘 이분탐색
  • lis 알고리즘 dp
  • 누출버킷
  • JPA
  • 이동윈도우카운터
  • portable service abstration
  • spring psa transaction
  • 이동윈도우로깅
  • lis 알고리즘 동적계획법
  • 맵리듀스
  • 배깅
  • ML

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
야뤼송
ORM vs SQL Mapper
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.