관심쟁이 영호

Spring Boot ㅣ JPA, ORM에 관해서 본문

Bank-End/Spring Boot

Spring Boot ㅣ JPA, ORM에 관해서

관심쟁이 영호 2021. 4. 6. 02:43
반응형

 

ORM?

ORM은 Object Relational Mapping이다.

 

데이터베이스에 저장된 테이블 형식의 데이터를 모델링하여

자바에서 사용할 수 있도록 클래스로 바꿔주는 것이다!!

 

거꾸로도 가능하다!

 

]ORM를 알아보기 전에, 사전지식이 필요하다.

일반 IT 기업으로 생각하자.

 

일반 IT 기업에서 사용자들이 회원가입을 한다. 아이디와 비밀번호를 입력한다. 그 다음에 사람들이 로그인을 하면 홈페이지에서는 해당 아이디와 비밀번호가 회원가입할 때, 입력했던 정보와 맞는지 체크를 한다.

그럼 여기서  아이디와 비밀번호는 어디다가 저장해둘까?

 

회사의 컴퓨터 디스크에 저장되어 있을 것이다.

하지만 회원이 몇천만명이 넘어가고, 정보도 개인 당 수백개씩 있다면 회사의 컴퓨터 디스크만으로는 부족하다.

그래서 데이터 센터를 만든다. 데이터센터는 오직 저장, 조회, 입력만 가능한 기능을 가지고 있는 데이터 보관 센터다.

 

다시 회원가입으로 돌아가자.

우리가 정보를 입력하고 "확인" 버튼을 누르면 어떤 일이 일어날까?

 

해당 데이터를 데이터 센터로 보내야한다. 그러기 위해선 내부적으로 해당 데이터를 보관하기 쉽도록 포장을 해서 데이터 센터로 보내준다.

 

이 때, 데이터 센터를 운영하는 언어는 DBMS로 보통 이루어진다.

DBMS로 데이터를 운용하려면, Query문을 작성해야한다.

 

쿼리 문을 이용하여 테이블을 작성하고, 테이블간에 연관관계도 설정해주어야 한다.

이 또한 일이다.

 

코드로 살짝보면

public void Set_ID_PWD(String id, String password){
	execQuery("INSERT INTO member_id VALUES " + id+";"");
    ...
}

뭐 대충 이런식으로 될 것이다.

하나하나 연관관계도 입력해야하고 변화하는 정보에 대응하기 어려워서 유지보수 또한 힘들다.

 

이런 고민을 해결해주는 것이 바로바로 ORM이다!

 

Object를 전부 데이터베이스의 쿼리로 다바꿔준다.

 

 

JPA?

JPA는 Java Persistance API의 줄임말이다.

 

ORM을 아주 편하고, 유지보수성이 높게 사용할 수 있도록 만든 인터페이스라고 보면 된다.

 

다시 말하면,

자바 프로그래밍을 할 때, 영구적으로 데이터를 보관하기 위한 인터페이스라고 설명할 수 있다.

 

 

300x250
Comments