Chunk Step 기본 동작 트랜잭션은 Step 전체가 아니라 Chunk 단위로 생성/종료된다. Step 전체가 하나의 트랜잭션인 게 아니고 Step 은 여러 Chunk 트랜잭션의 모음이라고 생각하면 된다. Spring Batch 에서 chunk(CHUNKSIZE,
멀티스레드 Step 환경에서 ItemStreamReader 를 thread-safe 안전하게 감싸주며 여러 스레드가 동시에 read() 를 호출하더라도 동기화(synchronized) 처리되는 동작을 보장한다.SynchronizedItemStreamReader 는 확장
JobLauncherTestUtils 는 자체적으로 Job Bean 을 주입받아야 한다. 컨텍스트에 테스트용 Job Bean 이 없거나, 여러 Job Bean 이 존재해서 Spring 이 어떤 Job 을 사용해야 할지 모르는 상태에서 launchJob() 을 호출 하면
MapStruct 는 Java Bean Mapper 라이브러리다.DTO ↔ Entity 같은 객체 간 변환 코드를 자동으로 생성해주는 도구이다. 구현하다 보면 매핑할 일이 많은데 간단하게 구현할 수 있게 도와준다.필드가 많아지면 매번 이렇게 매핑 코드를 쓰는 게 엄청
JPA(Hibernate)에서 @Id 로 지정하는 건 엔티티를 고유하게 식별할 수 있는 단일 키를 의미한다.근데 어떤 테이블은 하나의 컬럼만으로는 PK 를 못 만들고 여러 컬럼을 합쳐야 유일해지는 경우가 있다. 이때 복합키를 사용하게 된다."userGroupId + u
애플리케이션 시작과 동시에 passJob 이 실행되도록 하는 방법은 spring.batch.job.name 을 명시해주는 것이다. properties 파일이 없다면 yml 파일에 추가해줘도 된다.application.properties 에 추가하는 방법applicati
spring-boot-starter-batch를 의존성에 넣으면 Job이 하나만 있는 경우 별도 코드를 작성하지 않아도 애플리케이션 실행 시 컨텍스트에 등록된 Job이 자동 실행된다.여러 개의 Job이 있을 경우 spring.batch.job.names (또는 spri
📌 Windows 에서 실행 터미널이나 PoswerShell, Git bash 등 make 또는 docker-compose 명령을 실행하면 Windows 환경에 설치된 Docker Desktop 이 백엔드에서 도커 엔진을 돌린다. 즉 컨테이너는 Windows 용 Do
Access denied for user 'pass_local_user'@'localhost' (using password: YES)Access denied 는 크게 두 가지 이유가 있다.비밀번호가 틀리거나 플러그인이 안 맞는 경우와 권한이 없는 경우이다.추가적으로 D
Makefile:6: * missing separator. Stop. Makefile 에서는 명령어 실행 줄은 반드시 Tab 문자로 시작해야한다. 근데 이 missing separator 는 거의 100% 명령어 앞에 Tab 이 아니라 Space 가 들어갔을 때 발생
Command 'make' not found, but can be installed with:sudo apt install make sudo apt install make-guileMakefile 에 있는 도커 컴포즈 명령을 실행하려는데 make 명령 오류
도커 데스크탑에 windows 에 설치된 WSL 버전이 너무 오래되어서 Docker가 작동하지 않는 상태라고 메세지가 뜬다. 그래서 Docker 엔진도 멈춰 있고(왼쪽 아래 Engine stopped), Ubuntu랑 통합도 제대로 작동하지 못하는 상황이다.관리자 권한
jpa 가 기본적으로 제공해주는 crud 와 쿼리 메서드 기능을 사용하더라도, 원하는 조건의 데이터를 수집하기 위해서는 필연적으로 jpql 을 작성하게 된다. 간단한 로직을 작성하는데는 큰 문제가 없다. 하지만 복잡한 로직의 경우엔 쿼리 열이 상당히 길어지고 jpql
QueryDSL을 사용하기 위해서는 다소 번거로운 Gradle 설정 및 사용법 등을 익혀야한다는 단점이 존재한다.
실제 객체와 비슷하지만 Controller 테스트에 필요한 기능만 가지는 가짜 객체를 만들어서 애플리케이션 배포하지 않아도 스프링 MVC 패턴 및 동작을 테스트 할 수 있는 클래스이다.요청을 전송하는 역할을 한다.결과로 ResultActions 객체를 받으며, Resu
JSP 환경에서 현재 작업중인 페이지에서 다른 페이지로 이동하는 페이지 전환 기능에 두가지 방식이 있다.(URL 변화 X , 객체 재사용 O)forward 방식은 이동한 URL 로 요청 정보를 그대로 전달한다. 말 그대로 forward(건네주기) 하는 것이다. 그렇기
이미 열려 있는 포트를 다른 프로세스에서 또 열려고 하면 포트 번호 중복 오류가 발생한다. (intellij community 사용중)Web server failed to start. Port 8080 was already in use.8080 포트 번호는 이미 사용
인텔리제이 ultimate 버전을 30일 무료 체험판으로 갖고있는 이메일들로 연명해왔었다..... 돌고돌아 다시 무료버전인 community Editiond 을 설치했다..
feature 를 따서 작업을 하고 main branch 에 merge 하는 과정에서 한 파일에서의 수정한 부분들이 충돌이 발생했다.conflicts 편집기를 사용해서 this branch has conflicts that must be resolved 해결할 수 있다
@RequiredArgsConstructor 를 사용한 예시@RequiredArgsConstructor 를 사용하지 않고 생성자 주입 코드를 모두 작성한 경우의 예시보통 DI(의존성 주입)을 방식에는 필드 주입(Field Injection), 수정자 주입(Setter