Spring 3

Spring Event로 강결합 서비스 분리하기

문제 상황 제가 운영하는 시스템에서 몇 가지 핵심적인 데이터들이 있습니다. 배치 중에 사용하는 설정값들이나, 조직에 대한 정보들이 바뀌면 각 업무 담당자들이 모두 영향을 받습니다. 이 값들은 업무 담당자라면 누구나 수정할 수 있는 값입니다. 그렇다고 변경이 제대로 공유되지는 않습니다. 강결합된 서비스 class Fund( val code: String, val name: String, var team: Team, ) { fun changeTeam(newTeam: Team) { this.team = newTeam } } class Team( val code: String, val name: String ) 다음과 같은 도메인 객체가 있습니다. @Service @Transactional class FundU..

Spring/Core 2023.09.26

[Security] Spring Security 6 적용해보기

이동욱님의 스프링부트와 AWS로 혼자 구현하는 웹서비스 책을 쭉 따라가다보니 Spring Security를 적용하는 부분이 있었습니다. 책이 쓰여질 당시에는 boot 버전도 2이고, spring도 5버전대였던 것 같은데, 예제를 boot 3버전, spring은 6버전대로 적용해가며 따라가 보았습니다. 문제가 됐던게 spring security 적용하는 부분이었습니다. spring security가 SecurityFilterChain을 적용하는 부분부터 많이 변경되어서 그런거 같은데, 만났던 오류 상황들을 정리해보려고 합니다. 1. Authentication(인증) vs Authorization(인가) 기본적으로 스프링 시큐리티가 해결하고자 하는 핵심적인 문제인 인증과 인가에 대해서 공식문서를 보면서 쭉 ..

Spring/Security 2023.07.23

[Batch] Spring Batch 따라하기 | Creating a Batch Service

담당 시스템 재구축 프로젝트를 하면서, 기존 레거시 시스템을 Spring Batch로 전환하게 되었습니다. 자체 개발로 진행되지 않은 프로젝트 특성상.. 입맛에 맞지 않는 부분이 참 많습니다. 일단 Spring Batch에 대해 scratch부터 이해하고자, Spring 공식 가이드부터 따라하며 정리해보고자 합니다. https://spring.io/guides/gs/batch-processing/#scratch Getting Started | Creating a Batch Service A common paradigm in batch processing is to ingest data, transform it, and then pipe it out somewhere else. Here, you need ..

Spring/Batch 2023.05.30