일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 가상화
- 배포
- CI/CD
- 스프링 부트
- web server
- ORM
- 컨테이너
- JPA
- mysql
- CS
- vm
- 백엔드
- Container
- Spring Security
- spring boot
- spring batch
- computer science
- Spring
- 데이터베이스
- HTTP
- 자바
- Java
- 스프링
- 스프링 배치
- virtualization
- spring cloud
- 스프링 시큐리티
- 영속성 컨텍스트
- 웹 서버
- 도커
- Today
- Total
목록Back-End/자바 ORM 표준 JPA 프로그래밍 (10)
개발 일기

영속성 컨텍스트 엔티티 매니저 팩토리와 엔티티 매니저 위의 그림과 같이 EntityManagerFactory가 유저의 요청이 들어올때마다 EntityManager를 생성한고 EntityManger들은 내부적으로 데이터베이스 커넥션을 사용해서 DB를 사용하게 된다. 영속성 컨텍스트 JPA를 이해하는데 가장 중요한 용어 중 하나로 EntityManager.persist(entity);는 DB에 저장한다는 뜻이아니라 사실 영속성 컨텍스트에 저장한다는 의미이다. 영속성 컨텍스트는 논리적인 개념으로 눈에 보이지 않는다. 엔티티의 생명주기 //객체를 생성한 상태(비영속(new/trasient): 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태) Member member = new Member(); member.se..

SQL 중심적인 개발의 문제점 데이터베이스는 대게 관계형 DB를 활용한다. 즉, 실무에서 객체를 관계형 DB에 보관하고 관리한다. 이 과정에서 CRUD(CREATE, READ, UPDATE, DELETE)를 하는 과정에서 수많은 SQL이 쓰일 것이다. 이것이 바로 "SQL 중심적 개발"이다. 만약, 요구사항 변경으로 Member 객체에 tel이라는 연락처 필드를 추가해야 하는 경우 기존 INSERT, SELECT 그리고 UPDATE 쿼리문 들에 TEL이라는 필드를 찾아가서 하나하나 추가해주어야 하기 때문에 상당히 효율적이지 않다. 실무에서는 8~90% 관계형 데이트베이스를 채택하고 NoSQL을 보조적으로 쓸텐데 그렇다면 객체를 관계형 데이터베이스로 다루게 되는데 이때 둘 사이에 차이가 존재한다. 하나씩 ..