백엔드/Spring131 [Spring] 멀티 모듈 사용하기 - 루트 프로젝트에 자식 의존성 추가하기 멀티모듈 사용하는 이유 서버를 여러개(api용, batch 용 등)를 사용하면 프로젝트를 여러개 만들어 사용하는데 프로젝트를 여러개 사용하는 경우 공통 코드를 사용할때 모든 프로젝트의 코드를 수정해주어야 한다. 이러한 불편한 점을 해결하기 위해서 멀티모듈을 사용하고자 한다. 멀티 모듈을 사용하면 코드를 분리해서 사용하기에 프로젝트별 코드 관리가 용이하다. 루트 프로젝트 생성하기 모듈을 담기 위한 루트 프로젝트를 생성하고 루트 프로젝트 안에서 모듈을 추가한다. 루트 프로젝트는 하위 모듈을 관리하는 역할만 하기 때문에 src 폴더를 삭제해도 된다. 모듈 추가하기 project 우클릭 > new > module 모듈을 추가한다. 모듈 추가 후 자식 모듈과 통신을 위해 루트 프로젝트 settings.gradle.. 2024. 1. 5. [Spring] jasypt 사용하기 jasypt란 jasypt , 자시프트라고 읽는다고 한다. jasypt 는 자바 라이브러리로 쉽게 암호화 기능을 사용할 수 있도록 한다. DB 계정이나 중요한 키값을 평문으로 올리는 것이 아닌 암호화해서 올릴 수 있게하는 라이브러리로 스프링 프로젝트의 application.yaml 에서 중요 정보를 암호화할 때 많이 사용된다. 의존성 추가하기 mvn repository 에서 원하는 버전을 선택한다. https://mvnrepository.com/artifact/com.github.ulisesbocchio/jasypt-spring-boot-starter implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.4' config 파일 만.. 2023. 10. 5. [Spring] Spring Batch 의 Meta-Data Schema 정보 Meta-Data Schema 스프링 배치의 실행, 관리를 위한 목적으로 도메인의 정보를 정할 수 있는 스키마를 제공한다. 스프링 배치 라이브러리에서 DB 스키마를 제공한다. 해당 스키마는 모니터링 용도로만 사용되는 것이 아닌 실제 배치 작업이 실행되는 동안 사용되는 데이터들이 저장되는 장소이기 때문에 각 테이블에 어떤 데이터가 적재되는지 알고 사용하면 좋다. DDL script 는 org.springframework.batch.core 라이브러리에 schema-*.sql 데이터베이스별로 있다. 적재되는 순서는 다음과 같다. BATCH_JOB_INSTANCE BATCH_JOB_EXECUTION BATCH_JOB_EXECUTION_PARAMS BATCH_JOB_EXECUTION_CONTEXT BATCH_S.. 2023. 10. 5. [Spring Batch] Spring Batch 기본 개념 및 용어 정리 Batch 란 Batch는 일괄처리란 뜻을 가지고 있다. 사용자와 상호작용 없이 여러 개의 작업을 미리 정해진 순서에 따라 중단없이 처리한다. 배치를 사용하기 위해서는 다음과 같은 조건이 만족해야한다. 대용량 데이터 : 대용량의 데이터를 가져오기, 전달하기, 계산하기 등의 처리 자동화 : 사용자 개입없이 자동으로 실행 견고성 : 잘못된 데이터를 충돌/중단 없이 처리하기 신뢰성 : 잘못된 내용을 추적 가능해야함 (로깅, 알림) 성능 : 지정한 시간 안에 처리를 완료하거나 동시에 실행되는 다른 어플리케이션과 방해되지 않게 처리 배치 타입 Spring Batch 용어 Job Job은 배치처리 과정을 하나의 단위로 만들어 놓은 객체입니다. 또한 배치처리 과정에 있어 전체 계층 최상단에 위치하고 있습니다. Job.. 2023. 9. 30. [Spring Batch] @JobScope 와 @StepScope 개념 및 예제 @JobScope 와 @StepScope @JobScope 와 @StepScope는 스프링의 기본 Scope 인 싱글톤과 대치되는 역할이다. @JobScope 와 @StepScope이 선언되면 Bean의 생성 시점이 애프리케이션이 구동되는 시점이 아닌 Bean의 실행 시점에서 이루어진다. @JobScope, @StepScope이 명시된 메서드가 실행될 때까지 지연시키는 것을 의미한다. 이러한 행위는 Late Binding 이라고 한다. Scope 란 스프링 컨테이너에서 빈이 관리되는 범위를 뜻한다. @JobScope Step 선언시에 사용한다. @Value : JobParameter, jobExecutionContext만 사용이 가능하다. @StepScope Tasklet 이나 ItemReader, It.. 2023. 9. 23. [Spring] Could not resolve placeholder 'datasource.host' in value 프로젝트를 새로 만들면서 프로젝트 실행을 위해 빌드했는데 Could not resolve placeholder 'datasource.host' in value 해당 오류가 나면서 빌드 에러가 났다. 해결 방법은 생각보다 간단하다. Edit Configuration > Environment variables 에 SPRING_PROFILES_ACTIVE 값을 추가 시켜 주면 된다. application.yaml spring: devtools: livereload: enabled: true restart: enabled: false config: activate: on-profile: local 2023. 9. 22. 이전 1 2 3 4 5 6 7 ··· 22 다음