오늘은 Transaction Propagation에 대해 알아 보려고 합니다. Propagation은 말그래도 "전파" 라는 의미를 가집니다. 간단하게 설명하면 rollback여부의 범위를 정한다라고도 볼수 있습니다. Propagation은 여러개가 존재합니다. Tranaction Propagation의 속성은 아래와 같습니다. 더 다양한 속성들이 존재하는데 나머지 부분들은 아래 Do c을 확인 해주세요. 오늘은 REQUIRED, REQUIRES_NEW가 어떻게 동작하는지 알아 보려고 합니다. Tranaction Propagation REQUIRED (Default) 기존 트랜잭션이 존재한다면 해당 트랜잭션에 참여한다. REQUIRES_NEW 새로운 트랜잭션을 생성한다. 기존 트랜잭션이 존재한다면 일시중..
안녕하세요 오늘은 Transaction에 대해서 알아보려고 합니다. 흔히 저희는 RollBack을 하기위하여 단순히 @Transaction을 사용은 하고 있는데 어떻게 동작 하는지 정확 하게 알지 못 하고 사용 하는 경우가 많은데 한번 알아보려고 합니다. Transaction Transaction은 작업의 논리적인 단위 라고 정의 할 수 있습니다. 흔히들 예시로 드는게 입금과 출금을 많이 이야기 합니다. 아마 이보다 이해하기 쉬운 예시가 없어서 그러지 않을까 생각합니다. Pooney라는 사람이 A라는 사람에게 10000원을 보내는 것을 생각해 보겠습니다. 위처럼 Pooney의 통장에는 10000원이 차감 되고 A에게는 10000원 증감 되어야 합니다. 매번 이렇게 아름답게 끝나면 좋겠지만 그렇지 않은 경..
안녕하세요 오늘은 Spring Batch 와 스케줄라 Quartz를 결합하여 사용하는 방법을 알려 드릴려고 합니다. 보통 Batch , Quartz를 각 각 사용하는 방법은 쉽게 찾을 수 있지만 그 두개를 결합하여 사용하는 방법은 찾기가 힘들어 많은 검색을 통한 Batch + Quartz 결합 방법을 알려드리고자 합니다. 이글을 보시기전에 제가 작성한 Batch와 Quartz를 보고 오시는 것을 추천드립니다. 그것을 기반으로 진행할 것이기 때문입니다. Spring Batch + Quartz 예전에 작성한 Quartz 구성에서 빨간색 부분이 Batch를 사용하기 위해서 생성된 class 입니다. build.gradle dependencies { implementation 'org.springframewor..
스케줄러 Quartz를 사용하는 방법을 알아 보려고 합니다. 사람들이 배치와 스케줄러를 많이 혼동 하시는데 다른 개념이라 고 보시면됩니다. 차이점은 아래 주소를 통해 확인해주세요 https://pooney.tistory.com/96 Spring boot - Spring Batch란? 안녕하세요 오늘은 많이 사용하는 Spring Batch를 설명해 드릴려고 합니다. Batch를 사용하기 위해선 스케줄러를 같이 사용하는데 대표적으로 아래와 같습니다 쉽게 어노테이션으로 사용가능 한 @Sch pooney.tistory.com 스케줄러 Quartz를 사용하는 이유는 무엇일까요? 간단하게 스프링에서 제공해주는 @Scheduled를 통해서 사용 할 수 있는데 말이죠. 저는 아래에 내용인거 같습니다. 장점 In-mem..
안녕하세요 오늘은 JENKINS를 사용하고자 합니다. JENKINS는 다들 알고 있으시겠지만 CI/CD에 대표적인 도구입니다. 젠킨스는 WEB HOOK 등을 통해서 효과적으로 배포 가능하면서, 나중에 하겠지만 JENKINS를 통해 배치를 동작시킬 수 있습니다. 배치를 작업할 수 있는 화면을 만들 수 있겠지만 시간도 많이 들고 효과적으로 구성하는데 어려움이 있을 것 입 니다. 이를 효과적으로 해결 할 수 있는 방법이 JENKINS 입니다. JENKINS는 물로 개발서버가 있다면 직접 설치 가능 하 겠지만 좀 더 쉽게 환경을 구성하기 위해 Docker를 사용 할 건데 그중에서도 윈도우 환경에서 쉽게 사용 할 수 있는 "Docker desktop"을 사용하려고 합니다. 대부분이 UI가 아닌 명령어를 통해 진행..
안녕하세요 오늘은 많이 사용하는 Spring Batch를 설명해 드릴려고 합니다. Batch를 사용하기 위해선 스케줄러를 같이 사용하는데 대표적으로 아래와 같습니다 쉽게 어노테이션으로 사용가능 한 @Scheduled DB 클러스터링을 도와주는 Quartz CI/CD 젠킨스 Batch + Scheduler 는 나중에 설명해 드리도록 하고 우선 들어가기전 Batch 와 스케줄러에 대해서 혼란 스러운 분들을 위하여 간단하게 설명하겠습니다. Batch란? 우리는 흔히 일을 진행하면서 아래와 같은 작업이 필요한경우 가 발생합니다. 많은 양의 데이터를 처리한 결과값을 저장하거나 이러한 결과를 사용자에게 보여줘야하는경우 배송중인 상태로 5일이 지나면 배송완료 상태로 변경 구매완료 7일 이후 자동 구매확정 서비스를 운..
안녕하세요. 오늘은 @PropertySource를 통해 yml파일을 로드하는 방법을 알려드리고자 합니다. 프로젝트를 진행하면서 카카오,네이버에서 제공하는 API를 호출할때 필요한 secret key를 property파일로 분리 한 후 Bean,Configuration으로 등록하여 호출 시 해당 secrey key를 API 호출 시 실어 사용하는 경우가 많았습니다. 이때 많은 사람들이 yml를 사용하지 않고 properties를 사용하는데 저는 yml를 사용하고 하고 싶어서 찾아낸 방법을 공유하고자 합니다. 그러면 우선 @PropertySource를 알아야 할 것 같습니다. @PropertySource @PropertySource는 기본적으로 설정파일을 읽어 속성을 주입하는 기능을 담당합니다. 간단한 예시..
CI/CD에 대표적인 젠킨스의 WebHook을 알아 보려고 합니다. 그렇다면 WebHook은 무엇일까요?? WebHook WebHook은 어떠한 이벤트가 일어나면 설정했던 URL로 특정 정보,이벤트를 보내거나 알려주는것을 말합니다. 쉽게 보면, 특정행동이 일아나면 알려주는 것이라고 보면 됩니다. WebHook을 사용하지 않고 특정 이벤트 혹은 변경이 일어 났는지 알고자 한다면 짧은 주기로 서버에 계속 요청하여 확인 하는 방법을 즉 polling 사용해야 하는데 그렇게 한다면 많은 부담을 줄 것입니다. 그에 비해 Webhook관련 설정을 하고 그저 기다리면 필요한 정보 및 이벤트를 알려 주기 때문에 해당 서비스에 부담을 줄일 수 있어 많이 사용합니다. 아래를 보시면 쉽게 이해 할 수 있을 꺼에요! 그렇다면..