분류 전체보기
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..
[Ansible] 다른 OS 환경의 host들을 범용적으로 관리할 수 있는 playbook 작성해보자(패키지 설치)
[Ansible] 다른 OS 환경의 host들을 범용적으로 관리할 수 있는 playbook 작성해보자(패키지 설치)
2024.01.09개인 프로젝트의 배포 툴로 Jenkins와 Provisioning 도구로 Ansible(이하 앤서블)을 사용해보고 있습니다. 배포 대상이 되는 서버에는 애플리케이션 실행에 필요한 패키지들이 설치되어 있어야 하는데요. 앤서블은 이러한 패키지들이 설치되어 있지 않다면 설치하고 이후 애플리케이션 배포 프로세스가 진행되도록 자동화할 수 있게 해줍니다. 여기서 문제는 기존의 배포 서버를 다른 운영체제의 서버로 migration 한다거나 추가했을 때 기존 앤서블 playbook 스크립트에 설정된 내용들을 고쳐야 하는 번거로움이 생길 수 있습니다. 이게 어떤 문제 상황인지 구체적으로 알아보고 어떻게 하면 해결을 할 수 있을지 알아보겠습니다. (기본적인 앤서블 사용방법에 대해서 알고계셔야 합니다. ansible rol..
토큰 방식의 인증/인가 프로세스에 대한 개념과 생각 정리(with 세션 방식)
토큰 방식의 인증/인가 프로세스에 대한 개념과 생각 정리(with 세션 방식)
2023.11.301. Overview 백엔드 개발에 있어서 인증/인가 처리는 빼놓을 수 없는 부분입니다. 사용자가 어떤 웹서비스를 이용하려면 기본적으로 로그인이라는 인증과정을 거쳐야하는데요. 그래야 쇼핑이든, 서비스 예약이든 간에 할 수 있겠죠(인증된 정보를 기반으로 해야하기 때문에) 개인 프로젝트를 통해 JWT 토큰으로 access token과 이를 보완하는 refresh token을 적용해보는 작업을 해보았는데요. 토큰 방식의 인증/인가를 구현해보면서 몇 가지 들었던 의문점들을 저의 의식이 흐르는 대로 두서없이 작성해보고자 합니다. 특히나 이번 게시글은 JWT 토큰방식으로 인증/인가를 적용한 내용들을 정리해보는 내용이 아니라, 토큰 방식의 인증/인가에 대해 마주했던 의문점들, 한계에 대한 내용을 세션 방식부터 설명하..
[CI/CD] Rolling 배포 전략을 이용해 무중단 배포해보기(jenkins, ansible)
[CI/CD] Rolling 배포 전략을 이용해 무중단 배포해보기(jenkins, ansible)
2023.10.161. 무중단 배포? 무중단 배포(zero-downtime deployment)는 백엔드 개발자에 있어서 절대 놓치면 안되는 중요한 내용입니다. 어떤 서비스를 배포할 때 실제 사용하고 있는 사용자들에게 영향을 미치지 않으면서 새로운 버전의 애플리케이션을 끊김 없이 잘 적용하는 것이 중요합니다. 만약 새로운 버전의 애플리케이션을 배포하는 과정에서 잠깐이어도 서비스가 멈추는 일이 발생하면 단순히 사용자가 불편을 겪는 것을 넘어서서 결제 같은 중요한 프로세스가 꼬이거나 하는 대형사고가 펼쳐질 수 있습니다. 그만큼 백엔드 애플리케이션 개발자라고 한다면 서비스 개발을 잘하는 것도 중요하지만 애플리케이션을 장애없이 돌아가게끔 하는 인프라적인 요소들도 잘 챙겨야 합니다. 무중단 배포에서 개인적으로 생각하기에 중요하게 ..