이오이오이오
코딩하는헬린이
이오이오이오
전체 방문자
오늘
어제
  • 분류 전체보기 (39)
    • 기타 (2)
      • 잡다한 (2)
      • 헬스 (0)
    • 개발 (21)
      • Sql (3)
      • Java (2)
      • Spring (8)
      • OAuth (4)
      • node.js (1)
      • AWS (1)
      • Linux (2)
    • 이론 (11)
    • Dev Tool (1)
      • IntelliJ IDEA (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • restfulapi
  • isolation level
  • webflux
  • 로이필링
  • Spring Boot
  • bip
  • pos
  • 블록체인
  • RESTful
  • 카카오로그인
  • java
  • POW
  • db 성질
  • blockchain
  • 니모닉
  • 블록체인지갑
  • oauth
  • springboot
  • reactive streams
  • Spring
  • Ipfs
  • kakaologin
  • nft

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
이오이오이오

코딩하는헬린이

ORM과 JPA / Hibernate 란 무엇일까
이론

ORM과 JPA / Hibernate 란 무엇일까

2020. 7. 23. 09:54
반응형

안녕하세요 코드짜는헬창입니다.

 

이번엔 제목과 같이 ORM, JPA, Hibernate에 대하여 알아보겠습니다

 

# ORM 이란 무엇일까? 

 

ORM은 Object Relational Mapping 즉, 객체-관계 매핑의 뜻을 가지고 있습니다.

 

OOP에서 쓰이는 객체라는 개념을 구현한 클래스와 테이블이 맵핑을 이루는것을 이루는 것을 말합니다.

 

따라서 ORM을 이용하면 Query를 작성하지 않고 자바 코드로 데이터를 관리가 가능합니다.

 

예를들어 Item 이란 테이블에 데이터를 출력하기 위해선 SELECT * FROM Item 이라는 

 

Query를 실행해야 했지만 ORM을 사용하면 item.findAll() 라는 메소드를 호출하면 데이터를 가져옵니다.

 

하지만 복잡한 구조에 대해서는 ORM으로 표현하는데 한계가 있습니다.

 

Mybatis를 이용하여 데이터를 관리를 하는것 보단 코드가 간결해지긴 하지만 위 와 같이 문제점이 있습니다.

 

그래서 한 프로젝트에 둘다 사용하는 경우도 있다고 합니다.

 

# JPA(Java Persistence API) / Hibernate란 무엇인가? 

 

JPA란 자바 ORM 기술에 대한 API 표준 명세를 의미합니다.

 

ORM을 사용하기 위한 인터페이스를 모아뒀다고 보시면 됩니다. 

 

  • 장점

    - SQL를 직접 사용하지 않고 메소드를 호출한다.

    - Mybatis 사용할땐 테이블 필드 추가 시 관련 파라미터, 결과 query 등 수정했지만 JPA는 이런 일들을 알아서 해줌 유지보수 용이

    - 특정 DB의 종속적인 관리가 필요없기에 DB를 바꾸는데 문제가 없음

  • 단점 

    - 어렵다....복잡한 구조에서 사용하기 위해선 많은 지식이 필요한듯 하다.

    - 직접 SQL을 호출하는것 보단 성능이 떨어진다. 속도 측면에서 느리다

    - 복잡한 통계 분석을 메소드 호출로 처리하기란 어렵다. 

그래서 Hibernate란 무엇일까 ? 

JPA를 사용하기 위한 ORM 프레임워크라 생각하시면 됩니다.

 

 

 

 

이상 오늘의 포스팅은 이만 마치도록 하겠습니다.

 

기회가 되면 JPA 설정 하는 방법에 대해서 포스팅 하도록 하겠습니다! 

 

감사합니다.

반응형

'이론' 카테고리의 다른 글

DevOps 란 무엇일까?  (0) 2020.07.28
Load Blancer란 무엇일까???  (0) 2020.07.27
WAS 와 웹 서버(Web server) 차이  (0) 2020.07.15
Maven vs Gradle 메이븐과 그래들의 차이!  (0) 2020.07.08
OAuth 2.0 이란  (0) 2020.07.06
    '이론' 카테고리의 다른 글
    • DevOps 란 무엇일까?
    • Load Blancer란 무엇일까???
    • WAS 와 웹 서버(Web server) 차이
    • Maven vs Gradle 메이븐과 그래들의 차이!
    이오이오이오
    이오이오이오

    티스토리툴바