일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- stepexecutionlistener
- JSONObject 분할
- 스프링배치 메타테이블
- Spring Batch
- spring batch 5
- 아이템 리더 커스텀
- abstractpagingitemreader
- 스프링 배치 5
- 스프링 트랜잭션 관리
- 스프링배치 csv
- api 아이템 리더
- 읽기 작업과 쓰기 작업 분리
- JSONArray 분할
- executioncontext
- 아이템 리더 페이징 처리
- flatfileitemwriter
- step 여러개
- executioncontext 변수 공유
- step 값 공유
- 선언적 트랜잭션 관리
- 트랜잭션 분리
- JSON 분리
- job parameter
- 마이바티스 트랜잭션
- spring batch 변수 공유
- step 사이 변수 공유
- 스프링배치 엑셀
- aop proxy
- JSON 분할
- mybatis
- Today
- Total
목록전체 글 (200)
ebson
Spring Boot 의 Transaction 관리 Spring Boot에서는 Transaction 관리를 위해 TransactionManager 인터페이스와 이를 확장한 다양한 종류의 인터페이스 및 구현체들을 제공한다. TransactionManager를 사용하는 일반적인 방법은 Transaction 단위의 메서드에 @Transactional 어노테이션을 적용하는 것인데, 어노테이션을 적용한 메서드가 호출되면 트랜잭션을 생성하고 메서드가 종료하면 commit, 예외가 발생하면 rollback한다. package org.springframework.transaction;import org.springframework.lang.Nullable;public interface PlatformTransacti..
Spring Batch 에서 Step 개발 Spring Batch를 사용한 Batch Application에서 대부분의 경우에는 단일 Step으로 요구사항을 충족할 수 있다. 그러나 비즈니스 로직을 분리하면서 모듈화하고 가독성을 향상하거나, 큰 작업을 작은 작업들로 나누면서 재사용성을 향상하려는 경우, 또는 필요에 따라 새로운 Step을 추가하고 제거, 순서 변경하는 등 유연성과 확장성을 가지려는 경우에 여러 Step으로 Job을 구성할 수 있다. 여러 Step으로 Job을 구성하고 개발하다보면 Step 사이에 변수를 공유해야 하는 경우가 생긴다. 다른 스텝에서의 계산 결과나 데이터베이스 쿼리 결과, API 호출 결과를 사용하거나, 앞선 스텝의 결과 값으로 조건 분기 처리하여 다음 스텝을 결정해야 하는 ..
Spring Batch Application에서 사용할 수 있는 데이터소스들 대부분의 경우 Spring Batch를 사용한 배치 어플리케이션에서는 데이터소스로 RDBMS를 연동해 사용하기 때문에, MyBatis와 JPA를 사용할 수 있으면 된다. 직접 MyBatis와 JPA를 사용하는 코드를 작성할 수도 있고 Spring Batch가 제공하는 전용 Item Reader 클래스와 Item Writer 클래스를 사용할 수도 있다. ex) MyBatisCursorItemReader, MyBatisPagingItemReader, MybatisBatchItemWirter, JpaPagingItemReader, JpaItemWriter ... 그러나 배치 어플리케이션의 읽기 데이터소스가 항상 MyBatis와 ..
1. 배열 리스트1.1. 배열 -> 리스트 변환int[][] intArr = new int[2][4] {{0, 1, 2, 3}, {4, 5, 6, 7}};List intList = new ArrayList();for (int[] element : intArr) { intList.add(element);} 1.2. 리스트 -> 배열 변환int[][] intArr = new int[2][4]; // 반드시 길이를 알아야 초기화할 수 있음for(int i=0; i 2. 배열과 리스트의 정렬2.1. 배열의 정렬- Arrays.sort() 를 사용한다.ex) 요소의 1번 인덱스에 해당하는 값을 기준으로 오름차순 정렬Arrays.sort(intArr, (o1, o2) -> o1[1]-o2[1]); 2.2. ..

EC2 생성프리티어로 사용할 AWS 계정을 생성했다면 EC2를 생성한다. (최신 버전의 ubuntu 선택) 보안 그룹 설정 80, 5000, 27017 포트에 대한 인바운드 트래픽 허용 설정 추가 키파일 생성ssh 를 사용해 접속하기 위한 RSA 유형의 키파일을 .pem 형식으로 생성하고 저장 ubuntu 서버 접속하여 프로젝트 세팅1. 시스템 업데이트$sudo apt-get update 2. 파일질라로 접속하여 프로젝트 파일 업로드 3. nodejs 설치$sudo apt-get install nodejs $curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -$sudo apt-get install -y nodejs$sudo apt ins..
'객체지향의 사실과 오해'를 읽게된 계기좋은 기회로 현업에 계신 개발자분께 개발 서적을 몇권 추천받았다. 조영호 님의 '오브젝트(2019)'와 '객체지향의 사실과 오해(2015)' 가 그것이다. 먼저 쓰였으면서 더 적은 분량의 '객체지향의 사실과 오해'를 먼저 읽어봤다. 일반적으로 개발 서적을 구매할 때는 목차와 서평을 참고하는 것으로 충분할 수 있지만, 당장 실무에 적용할 수 있는 내용이 아니라고 판단될 경우에는 좀 더 구체적인 내용 요약이 담긴 서평을 찾는 편이다. 그래서 며칠간 '객체지향의 사실과 오해'를 정독하고 재차 훑어본 것을 바탕으로 핵심 문장들을 추린 것과 함께 읽고 나서 느낀점을 적어보려고 한다. 조영호 님의 '객체지향의 사실과 오해(2015)'는 객체지향 프로그래밍에 대한 일반적인 이..
1. R, G, B 를 선택한 경우 N번 집까지 가는 최소값을 각각 dp[n][0], dp[n][1], dp[n][2] 으로 저장한다.2. dp[n-1][0], dp[n-1][1], dp[n-1][2] 중 최소값을 출력한다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int N; static int[][] dp; public static void main(String[] args) { try { BufferedReader br = new BufferedReader(new InputS..
1. lo를 0, hi를 기타 레슨 시간 목록 lectures의 총합으로 초기화한다.2. 출력할 변수 ans에는 hi를 저장한다.3. lo가 hi이하이면 아래 4-9를 반복한다.4. mid에 (lo+hi)/2를 저장한다.5. mid가 lectures 요소 중 최대값보다 작으면, lo를 mid+1으로 저장하고 다음 반복으로 넘어간다.6. subLen을 0, subCnt를 1으로 초기화하고 lectures를 순회하면서 아래 6.1-6.2를 반복한다.6.1. subLen에 lectures의 요소를 더한 값이 mid 이하이면 sub에 lectures의 요소를 더한다.6.2. 만약 mid보다 크다면 subCnt에 1을 더하고 subLen에는 lectures의 요소를 저장한다.7. subCnt가 M(블루레이의 개수..