반응형

Spring 83

[Spring] 스프링 부트 3.2 RestClient 살펴보기

RestClientRestClient는 Spring framework 6.1(Spring boot 3.2)에 새로 추가된 동기식 HTTP Client로 Spring 애플리케이션에서 REST API 호출을 위한 HTTP 요청을 보낼 수 있다.RestClient의 등장으로 같은 동기식 HTTP Client인 RestTemplate을 대체하여 사용할 수 있으며, fluent API를 제공하여 현대적인 방식으로 코드를 작성할 수 있게 되었다. RestClient의 등장 이유기존의 RestTemplate는 2009년 Spring 3.0에 추가된 상당히 오래된 동기식 HTTP Client이다. 그로 인해 몇 가지 단점들이 존재한다.RestTemplate는 수많은 메서드가 오버로딩되어 제공하기 때문에 기능을 사용하는..

[Kopring] JPA Auditing - 생성/수정 시각 설정 및 테스트

JPA Auditing 프로젝트 작성 시 트래킹을 목적으로 엔티티의 생성 시간과 수정 시간 등을 테이블에 저장하여 관리해야 한다. 이를 쉽게 구현하기 위해 Spring Data JPA는 Auditing이라는 엔티티의 변경 내역을 추적하고 기록하는 기능을 제공한다. 이를 통해 엔티티의 생성일자, 수정일자 등을 쉽게 관리할 수 있다. 다음은 JPA Auditing 기능을 사용하지 않고 수동으로 관리하는 경우의 User 엔티티다. @Entity class User( ... ) { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long? = null ... @Column(nullable = false, updatable = false) var ..

[Kopring] 코틀린 스프링 환경에서 JPA Entity 정의하기

Intro JPA는 Java 진영의 표준 ORM 프레임워크로 자바 언어에 특화되어 있다. 코틀린 언어가 자바와 뛰어난 상호운용성을 가지고 있다고 하더라도 자바 언어에 특화된 하이버네이트를 적용시키다 보면 예상치 못한 문제 상황과 더 나은 엔티티를 정의하기 위해 고민해야 할 부분이 많았다. 따라서 코틀린 + 스프링 환경에서 JPA를 적용하기 위해 엔티티를 정의하는 단계에서 만난 문제와 이를 해결하기 위해 고민했던 내용을 정리하고자 한다. 코틀린 클래스는 기본이 final 코틀린에서 클래스, 함수, 프로퍼티는 기본적으로 final로 선언되어 상속이 불가능하다. 하이버네이트에서 제공하는 Entity 클래스는 final일 수는 있지만 지연 로딩(Lazy loading)을 위한 프록시 객체를 생성할 수 없다. 따..

[Spring Batch] 스프링 배치 StepContribution 이해하기 - Spring boot 2.x

StepContribution StepContribution은 Chunk 기반 Tasklet에서 Chunk 프로세스의 변경 사항을 버퍼링 한 후 StepExecution 상태를 업데이트하는 도메인 객체다. Chunck 커밋 직전에 StepExecution의 apply 메서드를 호출하여 상태를 업데이트한다. ExitStatus의 기본 종료코드 외 사용자 정의 종료코드를 생성해서 StepExecution에 적용할 수 있다. StepContribution의 구조 readCount : 성공적으로 read한 아이템 수 writeCount : 성공적으로 write한 아이템 수 filterCount : ItemProcessor에 의해 필터링된 아이템 수 parentSkipCount : 부모 클래스인 StepExecu..

[Spring Batch] 스프링 배치 StepExecution 이해하기 - Spring boot 2.x

본 내용은 온라인 강의 사이트 인프런의 정수원 님의 강의 내용이 포함되어 있습니다. 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch - 인프런 | 강의 초급에서 중~고급에 이르기까지 스프링 배치의 기본 개념부터 API 사용법과 내부 아키텍처 구조를 심도있게 다룹니다. 그리고 스프링 배치 각 기능의 흐름과 원리를 학습하게 되고 이를 바탕으 www.inflearn.com Intro 스프링 배치의 도메인은 크게 두 가지로 나눌 수 있다. 배치를 특정 단계 또는 흐름에 따라 처리하고 구성하는 역할을 하는 도메인 Job, Step, Flow, Tasklet, … 배치의 단계마다 실행 정보나 상태 정보를 데..

[Spring Batch] 스프링 배치 Tasklet의 여러 가지 구현 방식 - Spring boot 2.x

Tasklet Tasklet 인터페이스는 execute 단일 메서드를 제공한다. Step 내에서 구성되고 실행되는 도메인 객체로 단일 task를 수행하기 위해 사용된다. Tasklet은 구현 클래스, 익명 클래스, 사용자 정의 클래스를 통해 실행할 수 있다. 기본 구현 클래스 스프링 배치에서 기본적으로 제공하는 구현체를 사용하는 방식이다. @Bean public Step step() { return stepBuilderFactory.get("step") .tasklet(new Tasklet() { @Override public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception { //..

[Spring Batch] 스프링 배치 Step 이해하기 - Spring boot 2.x

Intro 스프링 배치의 도메인은 크게 두 가지로 나눌 수 있다. 배치를 특정 단계 또는 흐름에 따라 처리하고 구성하는 역할을 하는 도메인 Job, Step, Flow, Tasklet, … 배치의 단계마다 실행 정보나 상태 정보를 데이터베이스에 저장하기 위한 메타데이터 도메인 JobInstance, JobExecution, StepExecution, … Step Step 인터페이스는 Batch Job을 구성하는 독립적인 하나의 단계로서 실제 배치 처리를 정의하고 컨트롤하는 데 필요한 모든 정보를 가지고 있는 도메인 객체다. Step은 단순한 단일 태스크뿐만 아니라 입력과 처리, 출력과 관련된 복잡한 비즈니스 로직을 포함하는 모든 설정들을 담고 있다. Step은 배치작업을 어떻게 구성하고 실행할 것인지에 ..

[Kopring] 코틀린 + 스프링 부트 환경으로 프로젝트 생성하기

프로젝트 생성 개발자들 사이에서 코프링이라고 불리는 Kotlin 언어와 Spring 프레임워크를 활용한 프로젝트를 만들어보자. 기존 자바 스프링 프로젝트와 같이 Spring Initializr 또는 IntelliJ에서 프로젝트를 만들 수 있다. 간단히 프로젝트를 생성하고 실행하여 웹에서 확인하기 위해 의존성에 Spring Web을 추가하여 만들어보자. Spring Initializr https://start.spring.io/에 접속하여 프로젝트를 생성한다. IntelliJ IDEA Ultimate 코프링 프로젝트 패키지 구조 기본적으로 자바 + 스프링 프로젝트와 같은 패키지 구조를 구성하고 있다. build.gradle.kts는 기존 build.gradle과 같은 역할을 하는 파일이며, 클래스 파일 확..

[Spring Batch] 스프링 배치 JobInstance 이해하기 - Spring boot 2.x

본 내용은 온라인 강의 사이트 인프런의 정수원 님의 강의 내용이 포함되어 있습니다. 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch - 인프런 | 강의 초급에서 중~고급에 이르기까지 스프링 배치의 기본 개념부터 API 사용법과 내부 아키텍처 구조를 심도있게 다룹니다. 그리고 스프링 배치 각 기능의 흐름과 원리를 학습하게 되고 이를 바탕으 www.inflearn.com Intro 스프링 배치의 도메인은 크게 두 가지로 나눌 수 있다. 배치를 특정 단계 또는 흐름에 따라 처리하고 구성하는 역할을 하는 도메인 Job, Step, Flow, Tasklet, … 배치의 단계마다 실행 정보나 상태 정보를 데..

[Spring Batch] 스프링 배치 Job 이해하기 - Spring boot 2.x

본 내용은 온라인 강의 사이트 인프런의 정수원 님의 강의 내용이 포함되어 있습니다. 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch - 인프런 | 강의 초급에서 중~고급에 이르기까지 스프링 배치의 기본 개념부터 API 사용법과 내부 아키텍처 구조를 심도있게 다룹니다. 그리고 스프링 배치 각 기능의 흐름과 원리를 학습하게 되고 이를 바탕으 www.inflearn.com Intro 스프링 배치의 도메인은 크게 두 가지로 나눌 수 있다. 배치를 특정 단계 또는 흐름에 따라 처리하고 구성하는 역할을 하는 도메인 Job, Step, Flow, Tasklet, … 배치의 단계마다 실행 정보나 상태 정보를 데..

반응형