검색 본문
k-in.tistory.com K-인사이트(K-insight) 코프링, 스프링 배치(Spring Batch) 코틀린으로 배워보자 TLDR; 코드 제공 이번 과정에서 다룬 내용은 Bitbucket 을 통해서 다운로드 할 수 있습니다. 링크로 접근하셔서 clone 버튼을 눌러주세요. https://bitbucket.org/kinstory/kotlin-spring-batch/src/main/ Bitbucket bitbucket.org 스프링 배치(Spring Batch)의 목적 Spring Batch 는 대규모 데이터 처리를 위한 프레임워크입니다. 일괄 처리 작업을 효과적으로 구현할 수 있도록 합니다. 아래의 작업을 할때 유용합니다. CSV 파일 처리: 대량의 데이터가 포함된 CSV 파일을 읽어와 데이터를 가공하거나 데이터베이스에 저장합니다. 데이터베이스 마이그레이션: 데이터베이스 스키마의 변경이나 데이터 이관이 필요한 경우 사용됩니다. 이메일 발송: 대량의 이메일을 보내는 작업에 유용합니다. 예시로 회원 정보를 조회하고 이메일을 작성하여 회원들에게 일괄적으로 발송. 배치 프로세싱을 통한 데이터... 프로젝트 구성하기 IntelliJ 를 사용할 경우, New Project 를 통해서 Spring Initializer 를 사용해 프로젝트를 시작할 수 있습니다. 만약, vscode 등의 다른 IDE 를 사용하고 있다면 start.spring.io 에 접속하여 프로젝트를 시작할 수 있습니다. 아래와 같이 따라서 설정합니다. 온라인에서 프로젝트를 설정하는 경우 아래와 같이 설정합니다. 스프링 배치 프로젝트의 흐름 정의 및 구조 여러분이 스프링 배치를 처음 접할 경우 앞서 설명드린 스프링 배치를 구현하는 목적을 달성하기 위해 이 글을 읽고 있을 것입니다. 프로젝트는 다음의 기본적인 구현을 통해서 스프링 배치의 기본적인 개념을 익히는 것이 첫번째 목적이며 두번째 목적은 코틀린 기반으로 스프링 배치 프로젝트를 시작할 때 사용할 수 있는 스켈레톤 코드를 마련하는 것입니다. 이 프로젝트는 다음의 구현을 제공합니다. 리소스 폴더의 csv 파일을 읽어들이고 이를 처리 후 인메모리 HSQL 에 저장 즉, read → process → write 를 수행하는 Job 을 샘플 데이터 복사 및 위치 아래 링크를 방문하여 sample-data.csv 파일과 schema-all.sql 파일을 다운로드 받아서 src/main/resources 폴더에 복사를 합니다. https://bitbucket.org/kinstory/kotlin-spring-batch/src/main/src/main/resources/ Bitbucket bitbucket.org 예시 데이터는 성과 이름을 csv 포맷으로 저장한 데이터 파일과 데이터를 저장할 테이블을 생성하는 쿼리입니다. Jill,Doe Joe,Doe Justin,Doe Jane,Doe Joh 비즈니스 클래스를 생성 데이터의 입력과 출력의 형식을 확인할 수 있도록 데이터의 행(row)를 표현하는 코드를 작성해야합니다. 여기서 data 키워드는 데이터 클래스를 정의하기 위해 사용되는 특별한 키워드입니다. java 에서는 record 를 사용합니다. Person 데이터 클래스의 멤버(firstName, lastName)에 기본값을 공백문자로 설정하였습니다. 왜 기본값을 제공했는지 궁금하다면 아래의 글을 추천드립니다. 2024.03.07 - [프로그래밍/코프링] - 코프링, 코틀린 데이터 클래스와 FlatFileParseException 해결 코프링 중간 처리자 구현 배치 처리의 일반적인 패러다임은 데이터를 수집하고, 변환한 다음에 다른 곳으로 파이프하는 것입니다. 이 예시에서는 이름을 대문자로 변환하는 간단한 변환기를 작성해서 적용합니다. 이를 위해 PersonItemProcessor 클래스를 추가하고 ItemProcessor 인터페이스를 구현하며 process 메소드를 override 합니다. process 는 각 데이터의 행이 초기화된 Person 객체를 입력으로하고 대문자로 변환 처리를 한 결과를 반환합니다. 이 예시에서는 Person 객체를 입력받아 대문자로 처리한 Person 객체를 배치 Job 구현 다음으로 실제 배치 작업을 구현해보겠습니다. Spring Batch 는 사용자 정의 코드를 작성할 필요성을 줄여주는 유틸리티 클래스를 제공합니다. 이에 개발자는 비즈니스 로직에 집중할 수 있습니다. BatchConfiguration 클래스를 생성합니다. 메모리 기반 데이터베이스를 사용하므로 완료되면 데이터가 사라집니다. Bean 을 통해서 스프링 컨테이너에 reader, writer, processor 를 정의합니다. 스프링 배치는 Job 을 실행하기 위한 여러방식을 제공합니다. Classpath 스캐닝 방식: 클래스 패스에서 Jo 작업 완료 리스터 구현 정의한 배치 작업이 완료되면 이를 리스팅하는 리스너를 추가해서 결과를 확인할 수 있습니다. 결과는 인메모리 HSQL 에 저장되므로 JdbcTemplate 이 필요합니다. 의존성 주입을 위해 생성자 인자로 정의하거나 Autowired 어노테이션을 통해 의존성 주입을 할 수 있습니다. afterJob 메소드를 오버라이드하여 작업 종료 이벤트를 감지하고 HSQL 에서 데이터를 읽고 이를 출력하여 변환이 잘되었는지 검증할 수 있습니다. package com.kin.batchexample import org.slf4j.Logger impo 실행하기 여기까지 고생하셨습니다. 스프링 배치 작업을 실행하기 위해서는 main 메소드를 통해서 실행하여야 합니다. 스프링 배치는 웹 앱이나 WAR 파일 내에 임베딩될 수 있지만 간단하게 standalone 어플리케이션 예시를 통해 실행하겠습니다. EnableBatchProcessing 는 스프링 배치 자동 구성을 활성화하였습니다. 그러나, 스프링 3.0 부터는 해당 어노테이션이 필요하지 않습니다. package com.kin.batchexample import org.springframework.batch.core.configuratio 맺음말 제공드린 비트버킷 코드를 통해 여러분이 원하는대로 코드를 변경해서 사용할 수 있습니다. 불필요한 시행착오는 줄이고 여러분이 원하는 비즈니스 로직 구성에 집중할 수 있기를 기원합니다. 이상입니다. K-IN 올림. 참고 https://spring.io/guides/gs/batch-processing#scratch https://github.com/spring-guides/gs-batch-processing 6 여러분이 스프링 배치를 처음 접할 경우 앞서 설명드린 스프링 배치를 구현하는 목적을 달성하기 위해 이 글을 읽고 있을 것입니다. 프로젝트는 다음의 기본적인 구현을 통해서 스프링 배치의 기본적인 개념을 익히는 것이 첫번째 목적이며 두번째 목적은 코틀린 기반으로 스프링 배치 프로젝트를 시작할 때 사용할 수 있는 스켈레톤 코드를 마련하는 것입니다. 이 프로젝트는 다음의 구현을 제공합니다. 리소스 폴더의 csv 파일을 읽어들이고 이를 처리 후 인메모리 HSQL 에 저장 즉, read → process → write 를 수행하는 Job 을 튜토리얼 코프링 spring-batch 완벽 가이드 스프링 배치 코틀린 스프링 배치 이해 코드제공 2024.03.07 블로그 검색 더보기 코프링, 스프링 부트(Spring Boot) 코틀린으로 배워보자! 코프링, 코틀린 데이터 클래스와 FlatFileParseException 해결 artieee.tistory.com 감자밭 개발자 [KMP] 코틀린 멀티 플랫폼 A-Z 프로젝트 생성 및 환경구축 33 분들은 HowTo 알려주시면 감사드립니다! ) MainView.kt 파일을 생성해서 AOS, iOS에서 공통적으로 사용할 UI를 만들어보자. Shared > src > comonMain > kotlin > com.example.myapplication [설정한 패키지] > MainView.kt 2. Shared -> aOS, iOS 공통으로 사용할 화면을 Compose로 작성 2-1. 플러그인 추가 그런데... compose 템플릿 Android 환경구축 Kotlin Kotlin multi platform shared screen 코틀린 멀티 플랫폼 2023.09.18 hyul-mode.tistory.com 개발하는 사막여우 [코틀린(Kotlin)] E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.firstpractice, PID: 4446 코틀린을 연습하던 중 빌드를 하려 했는데 다음과 같은 에러를 만났습니다 ! E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.firstpractice, PID: 4446 내용 읽으면서 좀 찾아보니까 mainActivity.xml 파일에 LinearLayout의 선언이 잘못되어 있었어요 !! 에러 표시는 안떴는데, 선언이 잘못되어... 2023.11.10 megas.tistory.com 메가승한 코틀린 코딩 컨벤션 구조를 따릅니다. 아래 패키지 구조에서 나머지 패키지는 com/example/dirStructure 를 말하고 있네요 └─src └─ main └─ kotlin <- 여기까지 공통 루트 패키지! └─ com <- 여기부터 나머지 패키지 구조! └─ example └─ dirStructure 이 때, 프로젝트 내부의 모든 파일이 com/example/dirStrucrue 아래에서만... 코딩컨벤션 코틀린 2023.12.18 hessepark.tistory.com hessepark의 나비효과 (코틀린/Kotlin) Lambda(람다) 코틀린은 객체 지향 언어 특징도 가지고 있지만 함수형 언어 특징도 가지고 있다. if else가 expression인 것과 변수 자체가 immutable로 해서 최대한 바뀌지 않게 선언하는 것도 함수형 패러다임 잘 차용한 예 코드 package com.example.kotlin fun main() { // 1. 익명함수 // 2. 변수처럼 사용돼서, 함수의 argument... kotlin lambda 코틀린 람다 코틀린 Lambda 2024.02.08 (코틀린/Kotiln) Scope function (코틀린/Kotlin) Object, Companion object aos-ios-dev.tistory.com Flutter 개발 상자 [Flutter] ERROR:D8: com.android.tools.r8.kotlin.H 오류 해결 Issue #11853 · firebase/flutterfire ERROR:D8: com.android.tools.r8.kotlin.H ERROR:D8: com.android.tools.r8.kotlin.H ERROR:D8: com.android.tools.r8.kotlin.H ERROR:D8: com.android.tools.r8.kotlin.H ERROR:D8: com.android.tools.r8.kotlin... github.com 위에서 다양한 원인과 해결 방법을 제시해주고... 2024.03.12 통합웹 더보기
Kotlin Android 개발 뿌시기 kotlinbeginner.blogspot.com/ 신청자 작성 코틀린, 안드로이드, Kotlin, Android 개발 정보. 감자의 코딩연습 gamzacode.tistory.com/ 신청자 작성 티스토리 코딩. 코틀린, 자바, 등등. 푸른잎 라이프 greenth-life.tistory.com/ 신청자 작성 티스토리 부동산 자격증, 안드로이드 앱(코틀린) 강좌 블로그. 공인중개사, 코틀린. 사이트 더보기
서비스 안내 Kakao가 운영하는 책 서비스 입니다. 다른 사이트 더보기 Android Apprentice 저자 Raywenderlich Com... 출간 2018.7.9. 도서 64,920원 (주)카카오는 상품판매의 당사자가 아닙니다.법적고지 안내 (주)카카오는 통신판매중개자로서 통신판매의 당사자가 아니며 상품의 주문 배송 및 환불 등과 관련한 의무와 책임은 각 판매자에게 있습니다.