pooney
article thumbnail
Spring Batch - Rest API JOB 구성
Spring boot/spring-batch 2023. 8. 27. 18:32

프로젝트를 진행하면서 Batch를 구성해야하는 경우가 많은데요. 대부분 Job을 구성 할때 DB를 조회하는 JdbcItemReader, Jdbccursoritemreader, Jdbcpagingitemreader등을 이용해서 만드는 경우가 많았습니다. 간혹 저의 경우 외부 Data를 받기 위해 API를 호출하고 받은 Response Data를 저희 DB에 넣어서 동기화하는 Job을 구성해야 하는 경우가 있었는데요. 대부분은 DB에서 read해서 Db에 write를 하는 글은 많이 보이지만 외부 연동이 들어가는 Job은 어떻게 구성을 해야하는지 잘 보이지 않아 공부 할 겸 글로 작성해보려고 합니다. 틀린 부분 이 있을 수 있으니 감안해주시면 감사하겠습니다. 요구조건 외부 Rest API를 통해 데이터를 받..

article thumbnail
Spring-boot Enum으로 Request,Response 받기
Spring boot 2022. 12. 19. 19:52

안녕하세요 오늘은 Enum으로 Request, Response를 받는 방법을 이야기 하려고 합니다. Jpa 프로젝트를 진행 하다 보면 Enum 타입을 자주 사용하게 되는데요. 이경우 Enum으로 Request, Response를 받는 방법을 모르시는 경우가 많은 거 같습니다. 방법은 Jackson의 Deserializer, Serializer를 사용하면 간단하게 해결 가능합니다. 우선 기본적으로 제공하는 기능을 사용해서 Enum을 Request로 받아 보겠습니다. TestController @Slf4j @RequestMapping("test") @RestController public class TestController { @PostMapping("") public ResponseEntity getTe..

article thumbnail
Spring boot - Transaction Propagation
Spring boot 2022. 7. 15. 14:53

오늘은 Transaction Propagation에 대해 알아 보려고 합니다. Propagation은 말그래도 "전파" 라는 의미를 가집니다. 간단하게 설명하면 rollback여부의 범위를 정한다라고도 볼수 있습니다. Propagation은 여러개가 존재합니다. Tranaction Propagation의 속성은 아래와 같습니다. 더 다양한 속성들이 존재하는데 나머지 부분들은 아래 Do c을 확인 해주세요. 오늘은 REQUIRED, REQUIRES_NEW가 어떻게 동작하는지 알아 보려고 합니다. Tranaction Propagation REQUIRED (Default) 기존 트랜잭션이 존재한다면 해당 트랜잭션에 참여한다. REQUIRES_NEW 새로운 트랜잭션을 생성한다. 기존 트랜잭션이 존재한다면 일시중..

article thumbnail
spring boot - 트랜잭션
Spring boot 2022. 7. 1. 23:49

안녕하세요 오늘은 Transaction에 대해서 알아보려고 합니다. 흔히 저희는 RollBack을 하기위하여 단순히 @Transaction을 사용은 하고 있는데 어떻게 동작 하는지 정확 하게 알지 못 하고 사용 하는 경우가 많은데 한번 알아보려고 합니다. Transaction Transaction은 작업의 논리적인 단위 라고 정의 할 수 있습니다. 흔히들 예시로 드는게 입금과 출금을 많이 이야기 합니다. 아마 이보다 이해하기 쉬운 예시가 없어서 그러지 않을까 생각합니다. Pooney라는 사람이 A라는 사람에게 10000원을 보내는 것을 생각해 보겠습니다. 위처럼 Pooney의 통장에는 10000원이 차감 되고 A에게는 10000원 증감 되어야 합니다. 매번 이렇게 아름답게 끝나면 좋겠지만 그렇지 않은 경..

article thumbnail
Spring boot - Spring Batch + Quartz 실행
Spring boot/spring-batch 2022. 7. 1. 13:57

안녕하세요 오늘은 Spring Batch 와 스케줄라 Quartz를 결합하여 사용하는 방법을 알려 드릴려고 합니다. 보통 Batch , Quartz를 각 각 사용하는 방법은 쉽게 찾을 수 있지만 그 두개를 결합하여 사용하는 방법은 찾기가 힘들어 많은 검색을 통한 Batch + Quartz 결합 방법을 알려드리고자 합니다. 이글을 보시기전에 제가 작성한 Batch와 Quartz를 보고 오시는 것을 추천드립니다. 그것을 기반으로 진행할 것이기 때문입니다. Spring Batch + Quartz 예전에 작성한 Quartz 구성에서 빨간색 부분이 Batch를 사용하기 위해서 생성된 class 입니다. build.gradle dependencies { implementation 'org.springframewor..

article thumbnail
Spring boot - Spring boot + Quartz 스케줄러 배치 구성
Spring boot/spring-batch 2022. 6. 30. 16:01

스케줄러 Quartz를 사용하는 방법을 알아 보려고 합니다. 사람들이 배치와 스케줄러를 많이 혼동 하시는데 다른 개념이라 고 보시면됩니다. 차이점은 아래 주소를 통해 확인해주세요 https://pooney.tistory.com/96 Spring boot - Spring Batch란? 안녕하세요 오늘은 많이 사용하는 Spring Batch를 설명해 드릴려고 합니다. Batch를 사용하기 위해선 스케줄러를 같이 사용하는데 대표적으로 아래와 같습니다 쉽게 어노테이션으로 사용가능 한 @Sch pooney.tistory.com 스케줄러 Quartz를 사용하는 이유는 무엇일까요? 간단하게 스프링에서 제공해주는 @Scheduled를 통해서 사용 할 수 있는데 말이죠. 저는 아래에 내용인거 같습니다. 장점 In-mem..

article thumbnail
Spring boot - Docker를 이용한 JENKINS 설치
Spring boot 2022. 6. 28. 16:15

안녕하세요 오늘은 JENKINS를 사용하고자 합니다. JENKINS는 다들 알고 있으시겠지만 CI/CD에 대표적인 도구입니다. 젠킨스는 WEB HOOK 등을 통해서 효과적으로 배포 가능하면서, 나중에 하겠지만 JENKINS를 통해 배치를 동작시킬 수 있습니다. 배치를 작업할 수 있는 화면을 만들 수 있겠지만 시간도 많이 들고 효과적으로 구성하는데 어려움이 있을 것 입 니다. 이를 효과적으로 해결 할 수 있는 방법이 JENKINS 입니다. JENKINS는 물로 개발서버가 있다면 직접 설치 가능 하 겠지만 좀 더 쉽게 환경을 구성하기 위해 Docker를 사용 할 건데 그중에서도 윈도우 환경에서 쉽게 사용 할 수 있는 "Docker desktop"을 사용하려고 합니다. 대부분이 UI가 아닌 명령어를 통해 진행..

article thumbnail
Spring boot - Spring Batch란?
Spring boot/spring-batch 2022. 6. 20. 22:16

안녕하세요 오늘은 많이 사용하는 Spring Batch를 설명해 드릴려고 합니다. Batch를 사용하기 위해선 스케줄러를 같이 사용하는데 대표적으로 아래와 같습니다 쉽게 어노테이션으로 사용가능 한 @Scheduled DB 클러스터링을 도와주는 Quartz CI/CD 젠킨스 Batch + Scheduler 는 나중에 설명해 드리도록 하고 우선 들어가기전 Batch 와 스케줄러에 대해서 혼란 스러운 분들을 위하여 간단하게 설명하겠습니다. Batch란? 우리는 흔히 일을 진행하면서 아래와 같은 작업이 필요한경우 가 발생합니다. 많은 양의 데이터를 처리한 결과값을 저장하거나 이러한 결과를 사용자에게 보여줘야하는경우 배송중인 상태로 5일이 지나면 배송완료 상태로 변경 구매완료 7일 이후 자동 구매확정 서비스를 운..