Spring
Spring Boot 3 & Batch 5 버전에서 multi datasource 설정하기(batch meta table 분리하기)
Spring Boot 3 & Batch 5 버전에서 multi datasource 설정하기(batch meta table 분리하기)
2024.04.24개인프로젝트로 Spring Boot 3버전의 Spring Batch를 사용해보다가 최근에 실무에서 같은 3버전대의 스프링 신규 프로젝트에도 배치모듈을 적용할 일이 있어 신규 모듈을 만들게 되었습니다.개인프로젝트와 실무에서 Spring Boot 3 버전에서의 Spring Batch를 적용한 것들을 블로그에 정리하려고 합니다. 이번 게시글에서는 Spring Boot3 & Spring Batch 5버전에서 multi datasource를 어떻게 설정하는지에 대해 작성해보고자 합니다. 1. Spring Boot 3 & Spring Batch 5 적용시 알아야할 내용Spring Boot 3버전대에서는 Spring Batch가 5버전을 기본으로 사용하게 되었습니다. 이에 따라 기존에 사용하던 Spring Batch..
Spring Boot에 MySQL Replication datasource 설정하기(관련 property 병합하기)
Spring Boot에 MySQL Replication datasource 설정하기(관련 property 병합하기)
2024.02.23프로젝트에 DB Replication을 적용할 일이 생겼는데요. 여러 블로그 글을 참고하여 Spring Boot에 적용해보았던 내용을 기록해보고자 합니다. 이미 Spring Boot에 DB Replication을 적용하는 방법에 대해 자세하게 알려주는 글들이 많아서 의미가 있을지는 모르겠습니다만 약간 다른 방식으로 적용한 부분도 있어서 '지나가다가 참고해봐야지'하는 생각으로 봐주시면 좋을 것 같습니다. 환경은 kotiln에 Spring Boot 3버전이고 DB는 MySQL을 사용하였습니다. 1. 필요한 gradle 설정 plugins { // noarg, allOpen kotlin("plugin.jpa").version("1.9.20") } noArg { annotation("jakarta.persist..
Spring Boot + kotlin 프로젝트에 ktlint 적용하기 (Multi module 통합 관리하기)
Spring Boot + kotlin 프로젝트에 ktlint 적용하기 (Multi module 통합 관리하기)
2024.01.18이번 게시글에서는 ktlint를 사용해보고 적용했던 내용들을 간단하게 정리해보고자 합니다. 📌 간단한 Overview 📌 spring boot, kotlin 프로젝트에서 ktlint 설정 📌 멀티모듈 환경에서 ktlint 설정 📌 git commit시 ktlint check 설정 위의 내용을 가지고 ktlint를 어떻게 적용했는지 한 번 알아보겠습니다. 1. 간단한 Overview KtLint is a linter tool for checking and enforcing code style conventions for Kotlin programming language. (https://medium.com/@naeem0313/configuring-and-running-ktlin-on-android-stud..
토큰 방식의 인증/인가 프로세스에 대한 개념과 생각 정리(with 세션 방식)
토큰 방식의 인증/인가 프로세스에 대한 개념과 생각 정리(with 세션 방식)
2023.11.301. Overview 백엔드 개발에 있어서 인증/인가 처리는 빼놓을 수 없는 부분입니다. 사용자가 어떤 웹서비스를 이용하려면 기본적으로 로그인이라는 인증과정을 거쳐야하는데요. 그래야 쇼핑이든, 서비스 예약이든 간에 할 수 있겠죠(인증된 정보를 기반으로 해야하기 때문에) 개인 프로젝트를 통해 JWT 토큰으로 access token과 이를 보완하는 refresh token을 적용해보는 작업을 해보았는데요. 토큰 방식의 인증/인가를 구현해보면서 몇 가지 들었던 의문점들을 저의 의식이 흐르는 대로 두서없이 작성해보고자 합니다. 특히나 이번 게시글은 JWT 토큰방식으로 인증/인가를 적용한 내용들을 정리해보는 내용이 아니라, 토큰 방식의 인증/인가에 대해 마주했던 의문점들, 한계에 대한 내용을 세션 방식부터 설명하..
[Vault] Spring Boot에 vault secret 정보를 적용해보자
[Vault] Spring Boot에 vault secret 정보를 적용해보자
2023.09.05이번 게시글은 Spring Boot Applicaiton에 vault secret 데이터들을 적용했던 내용을 정리하는 글입니다. vault 서버가 준비가 안되어있다면 이전에 제가 작성한 글이나 구글링을 통해 vault 설치를 먼저하시는 것을 추천드립니다. https://beaniejoy.tistory.com/100 Vault 서버를 설치해보자(AWS, Lightsail에 vault 서버 구축해보기) Spring Boot 애플리케이션을 개발하다보면 민감한 정보들을 설정해야할 때가 있습니다. DB 연동시 필수적으로 입력해야 하는 jdbc url, username, password 정보도 있고 Security 인증 관련해서 토큰 발급을 beaniejoy.tistory.com 📌 1. Spring Boot 프로..
[JPA] UnexpectedRollbackException과 AOP에서 상황별 롤백(rollback)여부에 대해 알아보자
[JPA] UnexpectedRollbackException과 AOP에서 상황별 롤백(rollback)여부에 대해 알아보자
2023.06.30이번 게시글은 Spring에서 자주 사용하는 @Transactional이 예외를 마주하게 되었을 때 발생하는 롤백에 대해서 정리해보고자 합니다. @Transactional에서 여러 propagation 옵션이 있는데 이번 게시글에서는 REQUIRED, REQUIRES_NEW에 대해서만 다룰 예정입니다. 두 개의 propagation 상황에서 어떤 Exception이 언제 발생하는지에 따라 롤백이 일어나는지 아닌지에 대해서도 다루려고 합니다. 그리고 또한 Custom AOP를 적용했을 때 그 안에서 발생하는 예외는 어떻게 처리가 되는지 정리해보고자 합니다. 지금부터 여러 케이스를 통해 롤백 발생여부를 알아보려 하는데요. 기본적인 테스트를 위한 로직 틀은 다음과 같습니다. @Slf4j @Service @Re..