[3장] 영속성 관리

책 스터디 정리/JPA ORM 스터디 2023. 4. 11. 22:12

1. 엔티티 매니저 팩토리와 엔티티 매니저 엔티티 매니저 팩토리 리소스 사용 ↑ 여러 스레드 동시 접근해도 안전해서 스레드 간 공유에 이슈 없음 Hibernate 포함 JPA 구현체 → 팩토리 생성 시 DB 커넥션 풀 생성 엔티티 매니저 리소스 사용 거의 X 여러 스레드 동시 접근시 동시성 이슈 발생 → 공유하면 안됨 데이터베이스 연결이 필요한 시점까지 DB 커넥션 사용 X 보통 트랜잭션을 시작할 때, DB 커넥션 획득 2. 영속성 컨텍스트란? 영속성 컨텍스트( JPA 이해에 제일 중요한 용어 ) 엔티티를 영구 저장하는 환경 엔티티 저장/조회시, 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리 엔티티 매니저가 생성될 때, 같이 생성 3. 엔티티의 생명주기 엔티티의 4가지 상태 비영속: 영속성 컨..

Article Thumbnail
[1장] JPA 소개

책 스터디 정리/JPA ORM 스터디 2023. 4. 4. 14:07

1-1. SQL을 직접 다룰 때 발생하는 문제점 자바 애플리케이션이 관계형 DB와 통신할 때 JDBC API를 통해 SQL문을 사용한다. DB와 객체는 서로 다른 구조를 가지고 있어 객체를 DB에 직접 저장하거나, 조회가 불가능해서 개발자가 직접 애플리케이션 코드와 DB 테이블 사이의 변환 작업을 SQL과 JDBC API로 해야한다. 테이블마다 동일하게 DAO 구성 작업을 반복해야한다. 1-2. SQL에 의존적인 개발 개발하다 요구사항(스펙)이 변경되면 관련 DAO 로직의 SQL 실행을 확인 후, 수정이 필요하다. SQL에 의존하는 상황에서는 엔티티를 신뢰할 수 없다. 물리적으로는 SQL과 JDBC API를 DAO에 숨겼지만, 논리적으로는 강한 의존 관계를 가지고 있다. 강한 의존 관계로 인해 요구 사항..

Article Thumbnail
[Next.js] Github Pages 배포

개발/Github Pages 2023. 4. 2. 08:20

NextJS에서는 총 5가지 방식의 랜더링 방식을 지원한다. SSR(Server Side Rendering) SSG(Static Site Generation) CSR(Client Side Rendering) Dynamic Routing ISR(Incremental Static Regeneration) Github Page는 깃헙 계정만 있으면 무료로 호스팅이 가능하다는 장점이 있지만, 정적인 페이지만 호스팅이 가능하여 Next.js에서 SSG를 제외한 나머지 랜더링 방식은 배포시에 적용이 불가능하다. Vercel이나 AWS Amplify와는 다르게 Next.js를 Github Page에 정상적으로 배포하려면 몇 가지 추가적인 작업이 필요하다. 1. package.json 수정 1-1. homepage u..

Article Thumbnail
Cookie MaxAge vs Expires 속성 차이

개발 2023. 2. 16. 08:20

프론트에서 Cookie에 accessToken을 저장하여 회원 로그인 여부를 체크하고 있었는데 간혹 가다 expires에 적힌 date보다 먼저 쿠키가 만료되어 로그아웃이 되어버리는 이슈가 발생하였다. 쿠키를 사용할 때 기존에는 expires를 주로 사용하였는데 찾다보니 HTTP 1.1 부터 expires는 deprecated 되었고, max-age 속성이 expires를 대체하였다고 되어있는데, 과거 IE가 주로 사용되던 시절에 IE가 max-age를 지원하지 않아서 expires가 계속 사용되었던 거 같다. MaxAge Cookie가 만료되기 까지의 초를 나타낸다. 브라우저 창이 닫았다가 다시 해당 페이지를 열어도 로그인 상태 유지 Expires Cookie가 만료되기까지의 날짜를 클라이언트 시간대 ..

Article Thumbnail