개요 백엔드에는 실시간으로 이루어지는 클라이언트로부터의 요청/응답 처리 외에도 최소 1분 이상의 오랜 시간이 소요되는 성격의 무거운 작업을 실행해야 하는 상황이 많다. 이를 위한 수단으로 Spring Batch, Quartz 등이 있는데 학습 곡선이 있는 편이다. JobRunr는 n개로 수평 확장되는 멀티 노드 마이크로서비스 환경에서 복잡성을 최소화화면서 가장 간단한 방법으로 Fire and Forget 성격의 특정 작업을 분산 실행할 수 있는 오픈 소스 Java 라이브러리이다. 이번 글에서는 Spring Boot 기반 프로젝트에서 JobRunr을 사용하는 법을 정리하였다. JobRunr 작동 원리 물리적으로 동일한 애플리케이션끼리만 Job을 분산하여 실행할 수 있다. 실행해야할 대상 메써드와 파라메터를..
개요 Spring Boot 기반 프로젝트에서 DynamoDB를 사용하기 위한 @DynamoDbBean 클래스를 작성하는 방법을 정리하였다. 사전 요구 지식 Spring Boot, DynamoDB 사용을 위한 @Configuration 클래스 작성하기 @DynamoDbBean 빈 설계 예 @DynamoDbBean 는 JPA의 @Entity와 동일한 역할을 수행하는 빈을 작성할 때 명시한다. 실제 DynamoDB의 물리 테이블을 맵핑하는 역할을 해준다. 따라서 실제 테이블에 설계된 Primary Key와 Secondary Index가 정확하게 반영되어야 한다. 아래는 환율과 국가 코드에 따른 일간 환율 정보를 저장하는 테이블에 맵핑되는 빈의 작성 예이다. import software.amazon.awssdk..
개요 Spring Boot 기반 프로젝트에서 DynamoDB를 사용하기 위한 @Configuration 클래스를 작성하는 방법을 정리하였다. 별도의 ODM 라이브러리를 쓰지 않고, AWS에서 권장하는 DynamoDB Enhanced Client 라이브러리를 사용하였다. build.gradle.kts 프로젝트의 /build.gradle.kts에 아래 내용을 추가한다. dependencies { implementation("software.amazon.awssdk:dynamodb-enhanced:2.17.101") } application.yml 프로젝트의 /src/main/resources/application.yml에 아래 내용을 추가한다. cloud: aws: credentials: access-key..
개요 일정에 쫓겨 프로젝트를 진행하다보면, 사용된 주요 라이브러리의 버그로 예상하지 못한 이슈에 봉착할 때가 있다. 이 경우, 선택지는 2개인데 첫번째, 라이브러리 저장소를 포크해서 이슈를 수정한 제작자에게 PR을 요청하고 기다리는 것, 두번째, 일단 급한대로 내가 직접 고쳐서 로컬 .JAR로 빌드하는 것이다. 이번 글에서는 두번째 방법을 위한 Maven 기반 프로젝트에 로컬 .JAR 파일을 추가하는 방법을 설명하고자 한다. 라이브러리 커스텀 빌드 아래는 이슈를 수정할 라이브러리를 클로닝하여 커스텀 빌드하는 예이다. # JobRunr 라이브러리 저장소 클로닝 $ git clone https://github.com/jobrunr/jobrunr # 이슈 수정 후 커스팀 빌드 # 생성된 .jar 파일은 내 프..
- Total
- Today
- Yesterday
- Tomcat
- CentOS
- 자전거
- 로드 바이크
- kotlin
- node.js
- chrome
- Kendo UI
- java
- 평속
- jpa
- 구동계
- JavaScript
- Kendo UI Web Grid
- Spring MVC 3
- JHipster
- 로드바이크
- DynamoDB
- spring
- bootstrap
- 태그를 입력해 주세요.
- jsp
- Docker
- maven
- jstl
- graylog
- Spring Boot
- MySQL
- Eclipse
- 알뜰폰
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |