ㅇORM Object Relational Mapping : 오브젝트를 데이터베이스에 연결하는 방법론
자바에서 클래스를 만들어서 실행을 하면 데이터베이스에 자동으로 생성되게 하는 기법이 ORM이다.
ORM
데이터를 자바 오브젝트로 바꾸고 연결된 세션을 끊고 연결된 커넥션을 끊고하는 모든 일련의 과정을 함수 하나로 제공해준다.
CRUD로 기본적으로 반복되는 작업들을 단순하게 도와준다.
영속성 컨텍스트
영속성: 데이터 -> 영구적으로 저장!
DB -> MySQL로
컨텍스트: context
자바가 처리하는 모든 메타데이터 정보를 영속성 컨텍스트가 들고있다.결론은 자바와 DB 둘다 영속성 컨텍스트를 통해서 데이터가 서로에게 전달이 된다. 영속성 컨텍스트에 있는 일들은 모두 자동으로 처리가 된다.
- JPA는 DB와 OOP의 불일치성을 해결하기 위한 방법론을 제공한다.(DB는 객체저장 불가능)
그리고 DB에 맞춘 클래스도 만들게 된다. ORM을 만들 때는 자바가 주도권을 가지고 있는 모델을 만들 수가 있다.
Insert 하거나 Select 할 때 JPA가 자동으로 넣어줄 것이다.
OOP 관점 모델링
- JPA는 OOP의 관점에서 모델링을 할 수 있게 해준다.(상속, 콤포지션, 연관관계)
EntityDate를 상속해주면 필드가 옆으로 붙는다.
- 방언 처리가 용이하여 Migration하기 좋다.
DB를 오라클이든 MariaDB이든 MSSQL MYSQL Postgresql이든 상관없이 데이터베이스에 연결해서 사용할 수 있다.
1. 스프링부트 동작원리
(1) 내장 톰켓을 가짐
- 톰캣을 따로 설치할 필요 없이 바로 실행 가능하다.
Socket이란 운영체제가 가지고 있고 연결이 계속해서 되있는 것이다.
소켓통신 - timeslice 동시 동작!
http 통신 - Stateless 방식 - 연결을 끊는 방식
자료를 주고받던 A C 관계에서 한번 끊고 다시 연결하면 같은 C가 아니게 된다.
(2) 서블릿 컨테이너
참고: <출처:스프링부트 개념정리 with JPA 6강 - 영속성 컨텍스트>
https://www.youtube.com/watch?v=tXyDmqoMmKE&list=PL93mKxaRDidG_OIfRQ4nztPQ13y74lCYg&index=6
<출처:스프링부트 개념정리 with JPA 7강 - OOP 관점에서 모델링>
https://www.youtube.com/watch?v=vRoZAMX95Mc&list=PL93mKxaRDidG_OIfRQ4nztPQ13y74lCYg&index=7
<출처:스프링부트 개념정리 with JPA 8강 - HTTP>
https://www.youtube.com/watch?v=pifmwZWWbuY&list=PL93mKxaRDidG_OIfRQ4nztPQ13y74lCYg&index=8
'Spring > SpringBoot' 카테고리의 다른 글
서블릿 객체의 생명주기 & web.xml (0) | 2022.05.06 |
---|---|
Tomcat (0) | 2022.05.06 |
MessageConverter & JPA (0) | 2022.05.06 |
스프링부트 개념정리 with JPA - 스프링의 핵심 & 필터 (0) | 2022.05.06 |
도메인 분석 설계 - 엔티티 설계시 주의점 (0) | 2022.04.05 |