Transaction이란트랜잭션은 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위를 의미합니다. 데이터베이스의 상태를 변화한다는 것은 insert, update, delete 같은 SQL 문을 이용해 데이터베이스에 접근하는 것을 의미합니다. ⭐️ Spring에서의 @Transcational 이란Springboot에서 @Transcational은 하나의 함수가 하나의 데이터베이스 트랜잭션의 범위 안에서 실행되어야 하는 것을 명시합니다. 해당 어노테이션을 메서드에 적용시키면, Springboot는 해당 메서드를 시작할 때 트랜잭션을 시작하고, 메서드가 성공적으로 완료되면 트랜잭션을 commit 합니다. (만약, 도중 예외가 발생하면 rollback 합니다.) 이를 통해 비정상적인 종료나 오류로 인..
이슈👉 1. JpaItemWriter Persist 설정 오류👉 2. Spring Batch 5.0 업데이트로 인한 JobBuilderFactory, StepBuilderFactory Deprecated👉 3. 데이터 마이그레이션하는 Entity Id 설정 이슈문제1. 기존 ADatabase에서 BDatabase로 데이터 마이그레이션처음에 batch 프로세스를 작성해 본 적이 없어서 에러를 분석하면서 하나씩 변경해 보면서 처음에 설정한 setUsePersist(true)가 올바른 방식임을 알게 되었다. 제대로 된 사용 방식을 이해하기 위해 정리해 보고자 한다. 일단 나는 Spring Batch의 Writer를 JpaItemWriter를 사용해서 처리했다.setUsePersist의 설정에 따라 “pe..
Spring Batch란Spring Batch는 대용량 일괄처리의 편의를 위해 설계된 배치 프레임워크입니다.Spring의 특성을 그대로 가져왔기 때문에, DI, AOP, 서비스 추상화 등 Spring 프레임워크의 3대 요소를 모두 사용할 수 있습니다. 사용하는 경우대용량의 비즈니스 데이터를 복잡한 작업으로 처리해야 하는 경우특정한 시점에 스케쥴러를 통해 자동화된 작업이 필요한 경우대용량의 데이터의 포맷을 변경, 유효성 검사 등의 작업을 트랜잭션 안에서 처리 후 기록해야 하는 경우저는 Spring Batch를 통해 데이터 마이그레이션 처리와 스케쥴러 용도로 사용했습니다.! 최적화 및 파티셔닝 기술을 통해 대용량 및 고성능 일괄 작업을 가능하게 하는 기능을 제공합니다. 배치 애플리케이션은 다음의 조건을 만족..
Querydsl 사용한 이유querydsl을 사용하여 동적 정렬을 하면 다음과 같은 장점이 있습니다.컴파일 시점에서 오류가 발생하여 오류를 찾기 쉽다.BooleanExpression을 통해 여러 개의 조건문을 가독성 있게 작성할 수 있고 null인 경우 무시하여 조건문을 처리할 수 있다.querydsl 쿼리문을 작성할 때 파라미터 바인딩이 자동으로 처리되어 조건문을 작성할 때 편리합니다. 제가 실습한 동적 정렬 기능은 2가지 이상의 정렬을 처리했습니다.예를 들어 쇼핑몰이라고 생각하겠습니다. 1. "카테고리"를 선택하여 먼저 생성되거나 나중에 생성된 카테고리 순으로 정렬하여 조회합니다.2. "가격"을 입력받아 해당 가격보다 싸거나 비싼 가격의 상품을 정렬하여 조회합니다. Controller.class먼저 ..