본문 바로가기
반응형

jpa2

[Spring/JPA] Entity 에서 UUID vs AutoIncrement Entity를 작성하면  보통 95%의 사람들은 Auto Increment를 쓴다. 이로인해 많지는 않지만 문제가 생기는데외부에서 해당 시스템 PK를 예측하기 쉬워져서 SQL Injection 문제Sequence, auto_increment는 중앙 집중식으로 값을 생성하는 방식이므로 DB에 의존적이게 되어 확장성이 제한되는 문제서비스 폭풍성장 시, ID 고갈되는 문제 (BIGINT 최댓값은 4,294,967,295 이고, unsigned BIGINT라면 18,446,744,073,709,551,615)데이터베이스 변경의 어려움DB가 2대 이상일 때 중복 문제 이런 문제를 해결하고자 나온게 UUID 값을 PK로 설정하는것이다. UUID는 범용 고유 식별자라는 뜻으로 128bit의 긴 고유값을 PK로 사용한.. 2024. 7. 1.
[Spring/JPA] Persist() , flush() 가 뭐야 ? JPA는 요청이 들어오면 EntityManagerFactory 에서 EntityManager 를 생성한다. EntityManager: 엔티티를 관리하는 역할을 수행하는 클래스EntityManager 는 내부적으로 DB 커넥션 풀을 사용해서 DB에 붙는다. 그러면 어떤 방식으로 EntityManager 는 Entity들을 관리를 할까 ?? EntityManager 내부에 영속성 컨텍스트(Persistence Context)라는 걸 두어서 Entity들을 관리한다. 영속성 컨텍스트 : Entity를 영구 저장하는 환경애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 한다. EntityManager 를 통해 엔티티를 저장하거나 조회하면 EntityManager는 영속성 컨텍스.. 2024. 5. 24.
반응형