분류 전체보기55 [Spring Batch] 한 개의 Step에 여러 개의 Processor의 다중 적용이 필요할 경우(CompositeProcessor, 예제 포함) Chunk 방식을 적용할 경우 ItemReader, ItemProcessor, ItemWriter를 이용한 배치처리가 가능하다. 이때 ItemProcessor를 다중 적용할 수 있는 방법인 CompositeItemProcessor에 대해 소개하겠다. CompositeItemProcessor CompositeItemProcessor 코드를 보면 List delegates 객체를 확인 할 수 있다.Step 생성 시 CompositeItemProcessor에 작업을 실행하길 원하는 ItemProcessor들을 작업 순서에 따라 List로 구현한 후delegates에 적용하면 list 순서대로 Processor 작업이 진행된다. 해당 내용을 기반으로 적용해 실행해보도록 하겠다.A의 값을 1부터 10까지 갖고 .. 2023. 1. 18. [Spring Batch]#6 스프링 배치 Item Reader 청크지향처리 즉, ChunkOrientedTasklet를 이용한 스프링 배치에서 아이템 수집의 시작이자 스프링 배치를 다양하게 또는 간편하게 적용할 수 있게 해주는 ItemReader에 대해 알아보도록 하겠다. ItemReader는 청크 방식일때만 적용이 가능하다. 스프링 배치에서 기본적으로 제공하는 ItemReader의 구현체들은 굉장히 많은데 대표적으로 PaingItemReader, CursorItemReader, ItemReaderAdapter 등이 있다. ChunkOrientedTasklet의 ItemReader 동작 Chunk지향 처리의 배치가 실행하게 되면 chunkProvider에 의해 read, chunkProcessor 에 의해 process, write 작업이 순서대로 이루어지게 되는.. 2023. 1. 17. [Algorithm] 너비 우선 탐색(BFS) 알고리즘, 자바 예제 포함 너비 우선 탐색(Breadth First Search) 탐색 알고리즘의 하나인 BFS는 Breadth First Search의 약어로 우리말로 하면 너비 우선 탐색이다. 대표적인 탐색 알고리즘은 DFS와 BFS가 있는데 BFS는 선택 노드를 시작으로 인접한 노드(1세대)를 모두 탐색한 후 인접한 노드(1세대)와 인접한 노드(2세대)를 탐색하며 시작 노드부터 연결된 모든 노드를 탐색하는 기법이다. 시작 노드부터 시작 노드와 연결된 모든 노드를 탐색하기 때문에 세대가 같거나 비슷한 노드를 찾을 때 유리한 탐색 기법이며 BFS를 응용하여 최단 경로 탐색에도 적용할 수 있다. 이러한 특징으로 인해 가중치가 없는 정점 간격이 동간격인 네트워크에서 주로 활용되었다. 인접리스트를 탐색함에 있어, N개의 정점과 E개의.. 2022. 10. 25. [Thymeleaf] 타임리프 유틸 함수 - #strings, #arrays 등등 타임리프에서는 효율적인 오브젝트 사용을 위해 기본적인 오브젝트 유틸리티를 제공하고 있다. 타임리프의 기본 제공 유틸리티 함수는 다음과 같다.#numbers#strings#arrays#lists#sets#maps#objects#bools#dates#calendars#uris#messages#conversions#aggregates#ids다음 중 자주 사용하는 주요 함수만 정리하도록 하겠다. numbers종류설명${#numbers.formatInteger(num,3)}${#numbers.arrayFormatInteger(numArray,3)}${#numbers.listFormatInteger(numList,3)}${#numbers.setFormatInteger(numSet,3)}자리수를 설정한 숫자 포맷 적.. 2022. 10. 5. [Project] 오픈 API 데이터 통합 수집 배치 프로그램 개요프로젝트 진행 중 오픈 API의 데이터를 읽어 통합 데이터로 수집하는 배치 프로그램을 개발하는 업무를 담당하게 되어 업무 진행 간 겪은 경험들을 기록하고자 함. 분석1. 각각의 오픈 API에 있는 모든 데이터를 수집해야 한다.2. API의 데이터는 대부분 페이지 방식으로 적용되어 있다. - pageNo = 1, RowNum = 103. 오픈 API의 URL 마다 다음 데이터를 나타내는 URL이 각각 다르다. - page & row 방식, first row & last row 방식 4. 오픈 API 중 인증키를 요구하는 API도 있다.5. 오픈 API에서 요구하는 필수 Paramter가 존재한다.6. 연계된 오픈 API에서 가져온 데이터를 기반으로 수집해야 하는 API도 존재한다.7. 수집한 데이터.. 2022. 9. 29. [Spring Batch] #4 스프링 배치 Step 과 Tasklet 이번 포스팅에선 Step과 Tasklet의 관계에 대해서 자세히 알아보도록 하겠다. AbstractStepStep 인터페이스를 구현하는 구현체의 추상 클래스는 AbstractStep이다. Job이 갖고 있는 Step의 execute 메소드를 실행하게 되면 Step의 doExecute 메소드를 실행하게 되는데 doExecute 메소드는 추상 메소드로 어떤 구현체냐에 따라 동작방식이 달라지게 된다. 스프링 배치에서 기본 제공하는 AbstractStep의 구현체들이 몇 가지 있는데 오늘은 가장 일반적으로 사용되는 TaskletStep을 기준으로 알아보도록 하겠다. TaskletStepTaskletStep은 한 개의 Tasklet 객체를 갖고 있으며 doExecute 메소드 실행 시 tasklet의 execu.. 2022. 9. 27. 이전 1 2 3 4 5 6 7 8 ··· 10 다음