일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- aws #아키텍트 #과정 #vpc #인프라 구축 #rds #replica #복제본 #aurora #database #고가용성
- aws #아키텍트 #과정 #vpc #인프라 구축 #db #장애조치 #reand only #replica #events
- aws #아키텍트 #과정 #vpc #인프라 구축 #auto scailling #lauch template #ec2 instace #private #subnet
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #OSI #ISO #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #KDT #기본문법 #데이터베이스 #Computer #Science #CPU #메모리
- aws #아키텍트 #과정 #vpc #인프라 구축 #s3 #bucket #객체 #스토리지 #isci #이미지 #업로드
- aws #아키텍트 #과정 #vpc #인프라 구축 #alb #load balancer #t.g #target #group #haproxy #high ability #db #replica #region
- aws #아키텍트 #과정 #vpc #인프라 구축
- aws #아키텍트 #과정 #vpc #인프라 구축 #second nat #gateway #routing table #route53 #고가용성 #private subnet #
- aws #아키텍트 #과정 #vpc #인프라 구축 #sqs #message #queue #sns구독
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- aws #아키텍트 #과정 #vpc #인프라 구축 #s3 #bucket #객체 스토리지 #objects storage #events #upload #알림
- 공간복잡도 #공간자원 #캐시메모리 #SRAM #DRAM #시간복잡도
- aws #아키텍트 #과정 #vpc #인프라 구축 #rds #endpoint #cloudwatch #monitoring
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- aws #아키텍트 #과정 #vpc #인프라 구축 #t.g #target group #alb #application #load #balancer #web #server
- aws #아키텍트 #과정 #vpc #인프라 구축 #sqs #trigger #python3.9 #패키지 #
- aws #아키텍트 #과정 #vpc #인프라 구축 #haproxy #round robin #process #high ability #auto scailling #app server #launch template
- aws #아키텍트 #과정 #vpc #인프라 구축 #amazon sns #server #less #architecture
- 프로세스 #CPU #시공유 #커널
- 쓰레드 #쓰레드풀 #프로세스
- 썸네일 #이미지
- aws #아키텍트 #과정 #vpc #인프라 구축 #ec2 #instance #launch #template #생성 #ami #amazone #machine #image
- 비트 #바이트 #이진수
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #웹개발
- aws #아키텍트 #과정 #vpc #인프라 구축 #php #alb #application #load #balancer #security #group #igw #ec2 #vpc #virtual #private #cloud
- aws #아키텍트 #과정 #vpc #인프라 구축 #haproxy #고가용성 #테스트 #alb #application #load balancer #application
- aws #아키텍트 #과정 #vpc #인프라 구축 #aurora #database #rds #rdbs #load #balancer #web #page #haproxy
- 업로드 #lambda #함수 #모바일 이미지 #썸네일 이미지
- Today
- Total
요리사에서 IT개발자로
스파르타 부트캠프 JPA 동작 원리 (다락방) 본문
JDBC API 는
Java를 이용한 데이터베이스 접속,
SQL문의 실행,
실행결과 데이터 핸들링을 제공하는 방법,
절차에 관한 규약으로
JPA내에서 동작한다.
MemberDAO에서 객체를 저장하기 위해서
Member객체를 JPA에 넘긴다.
그럼 JPA가 객체를 분석하고 INSERT Query를 생성한다.
그 후에 JDBC API를 사용하여 INSERT Query를 DB에 보내고
DB에서 결과를 받는다.
Member의 PK값만 (id) JPA에 넘기면
JPA가 Member객체를 분석하여 적절한 SELECT Query를 만들어낸다.
이를
JDBC API를 사용하여 Query를 보낸뒤 결과를 반환받는다.
결과로 받은 ResultSet을 객체에 매핑해준다.
객체와 SQL을 동시에 고쳐야할 일이 없다.
저장 : jpa.persist(member)
조회 : Member meember = jpa.find(memberId)
수정 : member.setName("변경이름");
삭제 : jpa.remove(member)
동일한 Transaction내에서 조회한 엔티티는 동일하며 보장한다.
주소값은 다르다.
JPA 구동방식
EntityManagerFactory 는
WAS 내에서 Singletone으로 만들어져야하는
EntityManager를 생성하는 Factory interface이다.
EntityManager는
Request(요청) 시마다 Factory에서 생성하여
영속성을 관리하는 객체로
내부적으로 DatabaseConnection을 통해서 DB를 사용한다.
쓰레드는 공유하면 안되며 생명주기가 존재한다.
EntityTransaction은
JPA의 모든 객체와 데이터 변경은
Transaction level 안에서 수행되며 영속성을 갖는다.
Persistence Context(영속성 컨텍스트)
객체(Entity)를 영구 저장하는 환경(메모리)을 의미하며
EntityManager.persist(entity);는
DB에 엔티티를 저장한다는게 아니라
영속성 컨텍스트를 영속화(저장)함을 뜻한다.
본질은 같다.
Entity LifeCycle
비영속 (New) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태(처음생성)
영속 (managed) : 영속성 컨텍스트에 관리되는 상태 EntityManager.persist(entity) 이후의 상태
준영속 (detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태
삭제 (removed) : 삭제된 상태
비영속과 영속차이
https://hs-backend.tistory.com/200
'Spring' 카테고리의 다른 글
스파르타 부트캠프 연관관계 맵핑 (다락방) (0) | 2024.06.18 |
---|---|
스파르타 부트캠프 Entity 맵핑 (다락방) (0) | 2024.06.18 |
스파르타 부트캠프 객체와 관계형 DB (다락방) (0) | 2024.06.18 |
스파르타 부트캠프 JPA (다락방) (0) | 2024.06.18 |
Spring Boot JUnit 과 TDD, 단위테스트와 통합테스트 (1) | 2024.06.15 |