Home

0

Spring Batch - 19. JobParameters 증가 JobParametersIncrementer

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder Spring Batch - 14. 배치 초기화 설정 (application.properties) Spring Batch - 13. JobLauncher Spring Batch - 12. JobRepository Spring Batch - 11. ExecutionContext Spring Batch - 10. StepContribution Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블 Spring Batch - 08. Step Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블 Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블 Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블 Spring Batch - 04. JobLauncher Spring Batch - 03. Job Spring Batch - 02. Batch 에서 사용하는 Table Spring Batch - 01. @EnableBatchProcessing JobParameters 증가 - JobParametersIncrementer JobParameters 의 변경없이 Job 을 여러번 재시작 하고 싶은 경우 설정 JobParameters 의 필요한 값을 증가시켜 다음에 사용될 JobParameters 객체를 반환합니다. 기존의 JobParameters 의 변경없이 Job 을 여러번 재시작 하고 싶은 경우 설정합니다. RunIdIncrementer 구현체를 지원하며 필요에 따라 JobParametersIncrementer 인터페이스를 직접 구현할 수 있습니다.

0

SonarQube

공식 홈페이지 https://www.sonarsource.com/products/sonarqube/ SonarQube SonarQube는 코드 품질 관리 도구로, 개발자들이 작성한 소스 코드의 품질을 측정하고 향상시키는 데 사용됩니다. SonarQube는 정적 코드 분석(Static Code Analysis)을 수행하여 코드 품질을 측정하며, 다양한 측면에서 코드 품질을 분석합니다. 예를 들어, 코드의 복잡성, 중복, 버그 및 취약점, 코드 커버리지 등을 측정하여 개발자들이 더 나은 코드를 작성할 수 있도록 돕습니다. SonarQube는 다양한 프로그래밍 언어 및 프레임워크를 지원하며, 대규모 프로젝트에서도 충분히 사용될 수 있는 안정적이고 확장 가능한 도구입니다. 또한 SonarQube는 CI/CD 파이프라인에 통합하여 자동화된 코드 검사 및 품질 향상을 가능하게 합니다. SonarQube는 오픈소스 라이선스를 가지고 있으며, 개발자들은 무료로 사용할 수 있습니다. 또한 상용 버전인 SonarQube Enterprise도 제공되며, 기업에서는 추가적인 기능 및 지원을 제공받을 수 있습니다. SonarQube 설치brew install sonarbrew install sonar-scanner

0

데이터 베이스 - Soft Delete & Hard Delete

Hard DeleteHard Delete 는 데이터베이스에서 특정 레코드를 완전히 삭제하는 것을 의미합니다. 이 경우 해당 레코드는 영구적으로 삭제되어 복구할 수 없습니다. Soft DeleteSoft Delete 는 데이터베이스에서 특정 레코드를 논리적으로 삭제하지만, 물리적으로는 데이터베이스에 그대로 남아있는 것을 의미합니다. 즉, 해당 레코드를 삭제했을 때, 실제로는 데이터베이스에서 해당 레코드를 삭제하지 않고, 삭제되었다는 표시를 하여 삭제된 것처럼 처리합니다. 이렇게 하면 데이터를 복구할 수 있으며, 사용자가 실수로 데이터를 삭제했을 때 복구할 수 있는 장점이 있습니다. 소프트 삭제를 구현하는 방법에는 다양한 방법이 있습니다. 가장 일반적인 방법은 레코드에 삭제 플래그 (delete flag)라는 특별한 필드를 추가하고, 이 필드에 삭제 여부를 표시하는 것입니다. 이렇게 하면 삭제된 레코드를 쉽게 찾을 수 있고, 삭제된 레코드를 복구할 수도 있습니다.

0

Gitea Storage 로 S3 사용하기

목차 Gitea Storage 로 S3 사용하기 Gitea 를 Maven Repository 로 사용하기 Helm 을 이용해 Gitea 설치하기 참고 https://docs.gitea.io/en-us/config-cheat-sheet/#issue-and-pull-request-attachments-attachment Storage 변경 작업 EBS -> S3gitea: ## @param gitea.config Configuration for the Gitea server,ref: [config-cheat-sheet](https://docs.gitea.io/en-us/config-cheat-sheet/) config: storage: STORAGE_TYPE: minio MINIO_ENDPOINT: s3.ap-northeast-2.amazonaws.com MINIO_ACCESS_KEY_ID: <S3 Access Key> MINIO_SECRET_ACCESS_KEY: <S3 Secret Key> MINIO_BUCKET: <S3 Bucket 이름> MINIO_LOCATION: <S3 위치> MINIO_USE_SSL: true MINIO_INSECURE_SKIP_VERIFY: false

0

Spring Batch - 18. Job 의 재시작 방지 preventRestart

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder Spring Batch - 14. 배치 초기화 설정 (application.properties) Spring Batch - 13. JobLauncher Spring Batch - 12. JobRepository Spring Batch - 11. ExecutionContext Spring Batch - 10. StepContribution Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블 Spring Batch - 08. Step Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블 Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블 Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블 Spring Batch - 04. JobLauncher Spring Batch - 03. Job Spring Batch - 02. Batch 에서 사용하는 Table Spring Batch - 01. @EnableBatchProcessing Job 의 재시작 방지 - preventRestart Job 이 실패하더라도 재시작하지 않도록 설정한다. SimpleJob 에는 Job의 재시작을 관리하는 restartable 은 기본값이 True 로 설정돼 있어 Job 이 실패했을시 재시작 하도록 합니다. preventRestart 메소드는 restartable 를 False 로 변경해 Job 이 실패하더라도 재시작하지 않도록 합니다. preventRestart 메소드는 Job 실행에 대한 JobExecution 객체가 있는지 확인하고 기존 객체가 없을 경우 Job 을 수행합니다. 만일 기존 JobExecution 객체가 있을 경우 Job 을 수행하지 않고 JobRestartException 예외를 발생시킨다.

0

Spring Batch - 17. JobParameters 검증 JobParametersValidator

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder Spring Batch - 14. 배치 초기화 설정 (application.properties) Spring Batch - 13. JobLauncher Spring Batch - 12. JobRepository Spring Batch - 11. ExecutionContext Spring Batch - 10. StepContribution Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블 Spring Batch - 08. Step Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블 Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블 Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블 Spring Batch - 04. JobLauncher Spring Batch - 03. Job Spring Batch - 02. Batch 에서 사용하는 Table Spring Batch - 01. @EnableBatchProcessing JobParameters 검증 - JobParametersValidatorJobParametersValidator 릍 통한 JobParameters 검증은 Job 을 실행하기 전에 SimpleJobLauncher 내부에서 한번 Job 이 실행할때 SimpleJobL 에서 한번 총 두번의 Validation 을 진행한다. public interface JobParametersValidator { void validate(@Nullable JobParameters parameters) throws JobParametersInvalidException;} JobParametersValidator 기본 구현체 - DefaultJobParametersValidator requiredKeys JobParameter 에 필수적으로 포함되어야 할 Key 필수 Key 가 없을 경우 JobParametersInvalidException 예외를 발생시킨다. optionalKeys JobParameter 에 선택적으로 포함되어야 할 Key public DefaultJobParametersValidator(String[] requiredKeys, String[] optionalKeys) { super(); setRequiredKeys(requiredKeys); setOptionalKeys(optionalKeys);}@Overridepublic void validate(@Nullable JobParameters parameters) throws JobParametersInvalidException { if (parameters == null) { throw new JobParametersInvalidException("The JobParameters can not be null"); } Set<String> keys = parameters.getParameters().keySet(); // optionalKeys 가 있을 경우에만 실행 if (!optionalKeys.isEmpty()) { Collection<String> missingKeys = new HashSet<>(); // JobParameters Key 에 대한 검증을 한다. for (String key : keys) { if (!optionalKeys.contains(key) && !requiredKeys.contains(key)) { missingKeys.add(key); } } // JobParameters 로 넘어온 Key 가 requiredKeys 에도 optionalKeys 에도 없으면 JobParametersInvalidException 예외를 발생시킨다. if (!missingKeys.isEmpty()) { throw new JobParametersInvalidException( "The JobParameters contains keys that are not explicitly optional or required: " + missingKeys); } } Collection<String> missingKeys = new HashSet<>(); // requiredKeys 가 JobParameters Key 에 모두 포함이 됐는지 검증한다. for (String key : requiredKeys) { if (!keys.contains(key)) { missingKeys.add(key); } } if (!missingKeys.isEmpty()) { throw new JobParametersInvalidException("The JobParameters do not contain required keys: " + missingKeys); }}