개요최근 영속성 컨텍스트 내에서 flush 시점에 대해 잘못 짚고 있던 부분이 있어서, 영속성 컨텍스트와 flush 시점에 대해서 정리해보고 트러블 슈팅을 공유하려 한다. 엔티티와 생명 주기JPA에서 엔티티는 DB 테이블과 매핑되는 자바 객체를 말한다.엔티티는 다음과 같은 생명 주기를 갖는다. 1. 비영속Member member = new Member();member.setId(100L);member.setName("HelloJPA");엔티티가 처음 만들어졌을 때 상태이다. 2. 영속EntityManager em = emf.createEntityManager();//비영속Member member = new Member();member.setId(100L);member.setName("HelloJPA"..
환경 및 초기 셋팅Kotlin/Spring 환경이며, CORS 정책은 WebMvcConfigurer의 메서드를 오버라이드해서 설정하였다.모든 출처에 대해서 접근을 허용하였다. 운영할 때는 당연히 이처럼 설정하지는 않고, 초기 개발환경에서만 열어둔다.@Configurationclass WebConfig : WebMvcConfigurer { override fun addCorsMappings(registry: CorsRegistry) { registry.addMapping("/**") .allowedOriginPatterns("*") .allowedHeaders("*") .allowedMethods("GET", "POST", "PA..
개요최근 앱 서비스 프로젝트만 하다가, 다시 웹 서비스 프로젝트를 하며 CORS 설정 덕분에 애를 좀 먹었다. CORS 개념을 간단히 정리하고 설정 관련 이슈들을 공유하려고 한다. CORS란?Cross-Origin Resource Sharing의 약자로 동일하지 않은 출처(Cross Origin)의 요청을 허용하는 정책이다.즉 리소스를 요청한 곳의 출처가 서버와 다르더라도 제한적으로 허용하도록 하는 것이다. 출처란?URI의 구성요소 중 Protocol, Host, Port의 조합을 의미한다. https://example.com:8080서버에서 허용한 출처가 다음과 같다고 하자. 아래와 같을 경우 동일하지 않은 출처가 된다.Protocol이 다른 경우 -> http://example.com:8080Ho..