Backend/Spring

안녕하세요, 이번에는 제 이직 준비 과정에서 경험한 스프링 배치 관련 면접 질문에 대한 내용을 공유해보려고 합니다. 면접에서 자주 물어보는 질문들을 정리해보았습니다. 정말 간단히만 답을 적어둔 것이라 참고만 해주세요~ 1. 왜 스프링 배치를 사용하나요? 스프링 배치는 대용량 데이터 처리와 스케줄링을 효과적으로 다루기 위한 프레임워크로, 이를 통해 일관성 있고 안정적인 배치 작업을 수행할 수 있습니다. 특히 대용량 데이터를 읽어 파일생성과 같은 작업을 할때 유용하게 사용할 수 있습니다. 2. 멱등성은 어떻게 유지하나요? 멱등성은 동일한 입력에 대해 항상 동일한 출력을 보장하는 원칙입니다. 멱등성이 깨지는 경우의 대표적으로 데이터를 insert 하는 잡을 들 수 있는데 이러한 잡을 두번 돌리는 경우 DB에 ..
Spring 프레임워크는 Java 및 Kotlin과 같은 언어로 웹 응용 프로그램 및 엔터프라이즈 애플리케이션을 빌드하는 데 사용되는 강력한 도구 중 하나입니다. 이 블로그 글에서는 Spring의 중요한 기능 중 하나인 컴포넌트 스캔과 의존관계 자동 주입에 초점을 맞출 것입니다. Spring 프로젝트 설정 Spring 프레임워크를 시작하기 위해서는 프로젝트 구성 및 의존성 관리가 필요합니다. Spring Boot를 사용한다면 스프링 부트 스타터 의존성을 프로젝트에 추가할 수 있습니다. 아래는 Maven을 사용하는 Java 프로젝트의 pom.xml 예시입니다. org.springframework.boot spring-boot-starter Gradle을 사용한다면 build.gradle 파일에서 의존성을 ..
Spring Batch는 대용량 작업을 처리할 수 있는 오픈소스 프레임 워크입니다. 그러나 많은 데이터를 처리할 때 처리 속도가 느려질 수 있습니다. 이번 글에서는 이러한 속도 저하를 해결하기 위한 3가지 방법을 제시하고자 합니다. 첫 번째 방법 - 적절한 트랜잭션 범위 설정 처리해야 할 데이터 양이 많을 때, 트랜잭션 범위를 너무 작게 설정하면 오히려 처리 속도가 느려질 수 있습니다. 반대로, 트랜잭션 범위를 너무 크게 설정하면 메모리 점유율이 높아져 OutOfMemoryError가 발생할 가능성이 있습니다. 이를 해결하기 위해서는 적절한 트랜잭션 범위를 찾아야 합니다. 예를 들어, 만약 데이터베이스에서 1000만 건의 데이터를 조회해야 한다면, 한 번에 1000건 혹은 10000건씩 조회하는 것이 적..
스프링배치에서 대용량 데이터 처리를 위해서는 데이터의 정합성을 유지하기 위한 Transaction 처리가 필요합니다. 이번 포스트에서는 Spring Batch에서 Transaction 처리를 위해 사용하는 TransactionManager를 살펴보겠습니다. TransactionManager란? TransactionManager는 Spring에서 제공하는 인터페이스로, 데이터베이스와 같은 외부 리소스를 사용할 때, 이를 관리하는 역할을 합니다. Spring Batch에서는 Job과 Step에서 이러한 외부 리소스를 사용할 때, TransactionManager를 사용하여 데이터의 정합성을 유지합니다. Spring Batch의 Transaction 처리 Spring Batch에서는 Job과 Step에서 Tr..
Chung-A
'Backend/Spring' 카테고리의 글 목록