전체 글
  • JobExecutionListener 해당 리스너를 통해 잡 리스너를 적용시킬 수 있다. JobExecutionListener는 2개의 메소드를 제공한다. beforeJob : 잡 생명주기에서 가장 먼저 실행된다. afterJob : 잡 생명주기에서 가장 나중에 실행된다. : 잡의 완료 상태에 관계 없이 호출된다. : 잡의 종료 상태에 따라 분기 처리를 할 수 있다. 구현방법 beforeJob, afterJob 메서드 모두 JobExecution 을 파라미터로 전달받아 실행된다. 여기서 JobExecution란, 스프링 배치 잡의 실제 실행을 의미한다. 잡을 구동할 때마다 매번 새로운 JobExecution 을 얻게된다. https://devfunny.tistory.com/476 [스프링배치] 잡의 실행..

    Read more
  • ChunkContext public class HelloWorld implements Tasklet { private static final String HELLO_WORLD = "Hello, %s"; @Override public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception { /** * StepContext 의 getStepExecutionContext 메소드가 존재 * : 잡의 ExecutionContext 의 현재 상태를 나타내는 Map를 반환한다. * 현재 값에 접근할 수 있지만, 반환된 Map 을 변경하더라도 실제 내용이 바뀌지 않는다. * 따라서 실제 Exec..

    Read more
  • 문제 2583번 - 영역구하기 문제 https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 풀이 package seohae.algorithm.level1; import java.util.*; /** * https://www.acmicpc.net/problem/2583 */ public class Problem_011_2583 { static int[][] graph; static int N; static int M; static i..

    Read more
  • 문제 10026번 - 적록색약 문제 https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 풀이 package seohae.algorithm.level1; import java.util.Scanner; /** * https://www.acmicpc.net/problem/10026 */ public class Problem_010_10026 { static char[][] graph; static int N; static boolean[][] v..

    Read more
  • 문제 17413번 - 문자열 뒤집기2 문제 https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 풀이 package seohae.algorithm.level1; import java.io.*; import java.util.*; /** * https://www.acmicpc.net/problem/17413 */ public class Problem_007_17413 { public static void main(Str..

    Read more
  • 문제 1158번 - 요세푸스 문제 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 package seohae.algorithm.level1; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; /** * https://www.acmicpc.net/problem/11..

    Read more
  • 문제 42586번 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 풀이 package seohae.algorithm.level2; import java.util.*; /** * https://programmers.co.kr/learn/courses/30/lessons/42587 */ public class Lesson_046_42586 { public static void main(String[] ar..

    Read more
  • JobRepository 스프링 배치가 제공하는 여러 데이터베이스 테이블을 사용하여 배치 메타데이터를 저장한다. 총 6개의 테이블이 존재하는데, 각 테이블 정보에 대해 알아보자. BATCH_JOB_INSTANCE 테이블 잡을 식별하는 고유 정보가 포함된 잡 파라미터로 잡을 처음 실행하면 단일 JobInstance 레코드가 테이블에 등록된다. 필드 설명 JOB_EXECUTION_ID 테이블의 기본 키 VERSION oplimistic locking 에 사용되는 레코드 버전 JOB_NAME 실행된 잡의 이름 JOB_KEY 잡 이름과 잡 파라미터의 해시 값으로, JobInstance 를 고유하게 식별하는 데 사용되는 값 BATCH_JOB_EXECUTION 테이블 배치 잡의 실제 실행 기록을 나타낸다. 잡이 실..

    Read more
  • 잡의 실행 잡의 실행은 잡 러너 (Job Runner) 에서 시작된다. 잡 러너는 잡 이름과 여러 파라미터를 받아, 잡을 실행시킨다. 스프링 배치는 2가지 잡 러너를 제공한다. 1) CommandLineJobRunner 스크립트를 이용하거나 명령행에서 직접 잡을 실행할때 사용한다. 2) JobRegistryBackgroundJobRunner 스프링을 부트스트랩해서 기동한 자바 프로세스 내에서 Quartz 나 JMX 후크와 같은 스케줄러를 사용하여 잡을 실행할때 사용한다. JobRegistry 를 생성하는데 사용하는데, 이 JobRegistry는 스프링이 부트스트랩될 때 실행 가능한 잡을 가지고 있다. 3) JobLauncherCommandLineRunner CommandRunner 구현체는 별도의 구성이..

    Read more
  • 문제 12924번 https://programmers.co.kr/learn/courses/30/lessons/12924 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 풀이 package seohae.algorithm.level2; /** * 최댓값과 최솟값 * https://programmers.co.kr/learn/courses/30/lessons/12939 */ public class Lesson_038_12924 { public static void main(String[] args..

    Read more
  • 문제 12901번 https://programmers.co.kr/learn/courses/30/lessons/12951 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 programmers.co.kr 풀이 (1) 런타임 에러 발생 예시로 "3people Unfollowed Me" 처럼 공백이 2개 이상 들어간 경우 발생한다. public String solution(String s) { StringBuilder answer = new StringBuilder(); String[] a..

    Read more
  • 문제 12901번 https://programmers.co.kr/learn/courses/30/lessons/12901 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr 풀이 package seohae.algorithm.level1; import java.time.DayOfWeek; import java.time.LocalDate; /** * 2016년 * https://programmers.co.kr/learn/courses/30/lessons/12901 */ publi..

    Read more
  • 문제 12903번 https://programmers.co.kr/learn/courses/30/lessons/12906 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr 풀이 package seohae.algorithm.level1; import java.util.Arrays; import java.util.Comparator; import java.util.Stack; /** * 같은 숫자는 싫어 * https://programmers.co.kr/learn/courses/30/les..

    Read more
  • 문제 9012번 - 괄호 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 풀이 package seohae.algorithm.level1; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.Scanner; import java.util.Stack; /** * 괄호 * h..

    Read more
  • 스프링부트 프로젝트 예제 package com.example.springbatch; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.Job; import org.springframework.batch.core.Step; import org.springframework.batch.core.StepContribution; import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; i..

    Read more
  • Copyright 2024. GRAVITY all rights reserved