JPA & Hibernate Cache
·
Java/JPA
하이버네이트는 내부적으로 두종류의 캐쉬를 지원하는데 하나는 First-level cache 이고 다른 한종류는 Second-level Cache 이다 First-level cache? 대부분의 ORM (Object Relational Mapping) 프레임워크가 지원하는것처럼 하이버네이트또한 일차적 캐쉬를 지원한다. 일차캐쉬는 Hibernate 의 Session 단계에서 지원하는 캐쉬로 가장 비싼 연산작업중 하나인 데이터베이스와의 대화를 줄여주기 위해 존재한다. Session 안에서 동작하는 캐쉬이기 때문에 Session 이 종료되면 캐쉬도 같이 사라지게 된다. Second-level cache? First level cache 이 세션 단계에서의 캐쉬라면 second level cache 는 sessi..
JPA Cascade Types
·
Java/JPA
JPA를 사용해서 엔티티간의 관계를 설정할때 아래와 어노테이션을 작성하는 일이 많은데 어떤 의미를 가지고 있는지 알아보자 @OneToMany(cascade={CascadeType.REFRESH, CascadeType.MERGE}, fetch = FetchType.LAZY) 먼저 각각의 CaseType에 들어가기전에 영속성 컨텍스트와 JPA의 상태에 대한 선행지식이 필요하다 Persistence Conxtet (영속성 컨텍스트) 공식문서의 정의를 참조해보자 EntityManager (Java(TM) EE 7 Specification APIs) Interface used to interact with the persistence context. An EntityManager instance is associ..
Kubernetes Job을 Helm Hook 으로 반복적으로 실행하기
·
DevOps/Kubernetes
Kubernetes Job을 Helm Hook 으로 반복적으로 실행하기들어가며Kubernetes 환경에서 일회성 프로그램을 실행하거나 정기적으로 정해진 시간에 프로그램을 실행해야 할 때가 있습니다. 특히 데이터베이스 마이그레이션과 같은 작업은 특정 시점에 한 번만 실행되어야 하는 경우가 많습니다. 이런 상황에서 Kubernetes Job 리소스가 유용하게 활용됩니다.Kubernetes Job의 이해Kubernetes Job은 일회성 작업을 실행하는 데 적합한 리소스입니다. 지정된 수의 Pod가 성공적으로 종료될 때까지 Pod를 실행하는 것을 보장합니다. 이는 다음과 같은 경우에 유용합니다:데이터베이스 마이그레이션배치 처리 작업초기화 스크립트 실행백업 및 복원 작업그러나 Kubernetes Job에는 한 ..
Spring 에서 런타임 환경에서 프로퍼티 값을 변경하는 방법
·
Java/Spring
Spring Boot 및 일반 Spring 환경에서 외부 서비스 기반 설정 관리 방법어플리케이션을 구동할 때 필요한 설정값들은 보통 환경변수(Environment Variables)나 파일에 저장하여 관리합니다. 하지만 최근에는 설정값을 Zookeeper, AWS Secrets Manager와 같은 외부 서비스에서 불러오거나, 보안을 강화하기 위해 메모리 내에서만 설정값을 저장하는 방식이 점점 더 선호되고 있습니다. 이러한 요구사항을 충족시키기 위해 Spring Boot와 일반 Spring 환경에서 설정값을 효과적으로 관리하는 방법을 소개합니다.Spring Boot에서 환경 설정값 관리하기Spring Boot는 EnvironmentPostProcessor를 활용하여 어플리케이션 시작 시점에 환경 설정값을..
Garden 으로 Docker compose 처럼 쿠버네티스에서 의존성을 가진 어플리케이션들 한번에 배포하기
·
DevOps/Kubernetes
Kubernetes 개발 환경을 위한 Garden IO 소개배경최근 많은 기업들이 운영 환경을 Kubernetes로 이전하면서 개발자들은 새로운 과제에 직면하게 되었습니다. 특히 로컬 개발 환경에서 마이크로서비스 아키텍처를 효율적으로 개발하고 테스트하는 것이 주요 과제 중 하나입니다. 기존에는 Docker Compose를 통해 이러한 환경을 쉽게 구성할 수 있었지만, Kubernetes 환경으로 전환하면서 새로운 도구가 필요하게 되었습니다.이러한 상황에서 Garden IO가 주목받고 있습니다. Garden IO는 Kubernetes와 클라우드를 위한 엔드투엔드 개발 및 테스트 플랫폼으로, 개발부터 테스트, CI까지 일관된 워크플로우를 제공합니다.Garden IO란?Garden IO는 다음과 같은 특징을 ..