다중 DataSource 환경에서 장애 격리하기: LazyConnectionDataSourceProxy 활용기
·
Kotlin & Java/Spring
다중 DataSource 환경에서 장애 격리하기: LazyConnectionDataSourceProxy 활용기배경어떠한 사정으로 현재 사용중인 MySQL에서 추가로 Oracle DB를 연동해서 View Table을 통해 기능을 구현하게 되었다. 해당 Oracle DB는 Spring Batch 2개의 Job에서만 사용하고 있으며, 향후 Oracle 연동 기능이 확장될 가능성은 없다.예측한 장애 상황Spring Boot 기동 시 Oracle DataSource 빈 생성이 실패하면 어떻게 될까?ApplicationContext 로딩 자체가 실패하여 Oracle과 무관한 다른 배치 잡들도 모두 실행 불가 상태가 된다. Oracle DB 장애 때문에 우리 서비스의 전체 배치가 멈추는 상황이 발생할 수 있는 것이다..
Kotlin + Spring Boot 에서 data class 구현으로 Validation 로직 작성하기
·
Kotlin & Java/Spring
Kotlin + Spring Boot 에서 data class 구현으로 Validation 로직 작성하기Kotlin + Spring Boot를 개발시 클라이언트와 혹은 레이어간 데이터를 주고받을 때 발생할 수 있는 문제와 이를 해결하는 방법에 대해 알려진 방법인 Annotation을 사용하지 않고 다른 방법은 없을까에 대한 방법 제시에 대한 글입니다.Kotlin의 데이터 클래스(Data class)를 이용하여 어떻게 데이터를 검증할 수 있는지에 대해 소개하겠습니다.Data class 가 아닌 Value class 로 구현을 해도 되겠지만... Value class 는 다른 라이브러리들과 충돌이 다소 있다."나는 성능이 무조건적인 최우선 순위이며 발생하는 문제점들을 해결할 수 있는 일정이 있다" 가 아니라..
Pessimistic Locking in JPA
·
Kotlin & Java/Spring
Pessimistic Locking in JPA PESSIMISTIC_READ allows us to obtain a shared lock and prevent the data from being updated or deleted. PESSIMISTIC_WRITE allows us to obtain an exclusive lock and prevent the data from being read, updated or deleted. PESSIMISTIC_FORCE_INCREMENT works like PESSIMISTIC_WRITE, and it additionally increments a version attribute of a versioned entity. PESSIMISTIC_READ Whene..