Framework29 [Batch] Spring Batch Scope의 개념과 Job Parameter 사용 방법 Spring Batch Scope란Spring Batch에서 Scope란 개념이 존재합니다. Scope는 빈의 생성 및 관리와 관련된 범위를 정의하는 개념으로, _작업(job) 실행 과정에서 특정 컨텍스트나 상태를 유지해야 하는 경우에 사용_됩니다.Spring Batch에선 모든 빈을 처음에 한 번에 생성하지 않고, 특정 Scope 내에 있는 빈을 실행 시점에 생성합니다. 이렇게 하는 이유는 배치 애플리케이션을 효율적으로 동작시키기 위함입니다. Scope를 활용하여 실행 시점에 빈을 생성하는 것이, 그렇지 않았을 때보다, 어떤 면에서 더 효율적일까요?Spring Batch에서 실행 시점에 빈을 생성하는 이유1. 동적 데이터 및 실행 환경의 요구 처리배치 작업은 실행 시점마다 다른 JobParameters.. Framework/Spring 2024. 11. 27. [Batch] 배치 애플리케이션의 이해와 Spring Batch 기본 활용법 1. 배치의 정의배치(Batch)는 대량의 데이터를 정기적이고 반복적으로 처리하는 프로그램입니다. 주로 사용자가 없는 새벽 시간대에 실행되며, 대규모 데이터의 처리, 집계, 변환 등 비즈니스 로직을 실행하는 데 활용됩니다. 2. 배치 애플리케이션이 필요한 이유2.1 WAS와 배치의 구분WAS (Web Application Server)는 사용자 요청을 실시간으로 처리하는 서버입니다.하지만 배치와 같이 대규모 데이터를 처리하거나 비즈니스 로직을 길게 실행해야 하는 작업은 WAS에서 실행하기 적합하지 않습니다.주요 이유는 다음과 같습니다:성능 문제: 실시간 요청을 처리하는 서버에서 대량 데이터 작업을 수행하면, 응답 속도가 느려져 사용자 경험이 저하됩니다.안정성 문제: 장시간 실행되는 작업은 서버 부하를 유.. Framework/Spring 2024. 11. 24. [Spring] Spring Boot 환경설정 가이드 1. Spring Initializr 활용하여 Spring Boot 프로젝트 생성하기1.1 프로젝트 정보(스펙) 설정하기Spring Initializr는 Spring Boot 프로젝트를 빠르고 쉽게 생성할 수 있는 도구입니다. 먼저, Spring Initializr 웹 사이트에 접속합니다. 다음은 프로젝트 설정의 각 요소에 대한 설명입니다.Project: Maven 또는 Gradle 빌드 시스템 중 하나를 선택합니다. 일반적으로 Gradle을 많이 사용합니다.Language: Java, Kotlin, Groovy 중 선택합니다. 대부분 Java를 선택합니다. Spring Boot Version: 최신 버전 또는 안정적인 버전을 선택하는 것이 좋습니다.Project Metadata:Group: 보통 패키지.. Framework/Spring 2024. 9. 23. [Spring] Spring 프레임워크란 무엇인가? 서론오늘은 자바 백엔드 진영의 대표적인 프레임워크인 스프링에 대해서 알아보도록 하겠습니다.본론스프링의 어원과 탄생 배경스프링(Spring)이란 영어로 봄을 말합니다. 왜 봄이라고 이름을 지었을까요? 스프링 프레임워크가 등장하기 전인 2000년대 초로 돌아가보면, EJB(Enterprise Java Beans)라는 자바 기업용 애플리케이션 프레임워크를 활용하여 어플리케이션 개발을 했습니다. EJB는 당시 자바의 표준이었죠. 하지만 너무 무겁고 복잡하고 비효율적이었습니다. 이에 불만을 느낀 로드 존슨이란 개발자가 EJB 없이도 고품질의 애플리케이션을 만들 수 있다는 것을 "Expert One-on-One J2EE Design and Development"란 책을 통해 증명해냅니다.로드 존슨은 순수한 자바 코.. Framework/Spring 2024. 9. 20. [Spring] IoC와 DI란 무엇인가? 제어의 역전 (IoC, Inversion of Control)개발자가 작성한 객체나 메서드의 제어를 개발자가 아니라 외부(프레임워크)에 위임하는 설계 원칙을 제어의 역전이라고 한다.관련 용어빈 (Spring Bean)스프링이 IoC 방식으로 관리하는 오브젝트를 뜻한다. 자바 빈과 구분 짓기 위해, 스프링 빈이라고도 부른다.참고로 스프링 내 모든 오브젝트가 전부 빈이 아니다. 그 중에서 스프링이 직접 그 생성과 제어를 담당하는 오브젝트만을 빈이라고 부른다.빈 팩토리 (Bean Factory)스프링의 IoC를 담당하는 핵심 컨테이너를 말한다.스프링 컨테이너의 최상위 인터페이스로, 스프링 빈을 관리하고 조회하는 역할을 담당한다. 대표적으로 getBean() 메소드를 제공한다.애플리케이션 컨텍스트 (Applic.. Framework/Spring 2024. 9. 20. [Test] Spring Boot 환경에서의 유닛테스트와 통합테스트, 슬라이스 테스트 서론오늘은 Spring Boot 환경에서 유닛 테스트와 통합 테스트, 각각의 테스트 과정에서 활용되는 어노테이션과 메서드들은 무엇이 있는지 정리해보겠습니다.대상독자테스트코드를 처음 작성해보시는 분들, Slice Test를 처음 들어보시는 분들, 테스트코드를 하고 싶지만 심리적인 장벽 때문에 아직 시도해보지 못한 분들에게 이 글을 추천합니다.이론유닛 테스트(Unit test)와 통합 테스트 (Integration test)꼭 짚고 넘어가야 하는 유닛 테스트와 통합 테스트의 정의에 대해서 알아봅시다.유닛 테스트보통 개발자가 테스트 코드를 짠다고 하면, 유닛 테스트 짜는 것을 말합니다. 코드 레벨에서의 테스트를 하며, 특정 함수나 클래스와 같이 작고 고립된 코드의 기능을 확인하는 자동화된 테스트를 진행합니다... Framework/Spring 2024. 9. 19. [Spring] 팩토리메서드 패턴 적용해서 확장성 높은 코드 만드는 법 문제상황 게시판 목록 조회 API 게시판 유형 별로 다른 테이블을 조회해야 했다. API를 각각 분리하거나, 하나의 게시판 조회 API에서 Type에 따라 if/else 분기에 따라 다른 요소를 조회해야 했다. 예) 일반게시글, 비밀게시글, 인기글A, 인기글B 기존 레거시 시스템에서는 이러한 유형의 데이터들을 if/else로 Service 레이어에서 각각 다른 Repository (여기선 Mapper)를 사용해서 로직을 처리하였다. @Service @RequiredArgsConstructor public class CommunityBoardService { private final CommunityContentsFactoryService communityContentsFactoryService; @Tra.. Framework/Spring 2024. 3. 7. DispatcherServlet를 중심으로 본 스프링 MVC 동작 원리 오늘은 Spring MVC를 이해하는 핵심인 DispatcherServlet의 동작원리를 알아봄으로써 스프링 웹 어플리케이션이 어떻게 동작하는지 알아보도록 하겠습니다. 정의 디스패처 서블릿(DispatcherServlet)은 Dispatch(보내다) + Servlet(클라이언트의 요청을 처리하고 결과를 반환하는 Servlet의 구현 규칙을 지킨 웹 프로그래밍 기술)의 합성어입니다. 디스패처 서블릿은 서버로 들어오는 모든 HTTP 요청을 가장 먼저 받아서 적합한 컨트롤러에게 응답을 위임하는 프론트 컨트롤러(FrontController)입니다. 역할 이러한 역할은 위와 같은 다이어그램으로 도식화될 수 있습니다. 그런데 프론트 컨트롤러(FrontController), 핸들러(Handler), 핸들러 어댑터(H.. Framework/Spring 2024. 1. 31. [Spring] 모니터링을 위한 스프링 액추에이터 알아보기 프로덕션 준비 기능전투에서 실패한 지휘관은 용서할 수 있지만 경계에서 실패하는 지휘관은 용서할 수 없다는 말처럼, 서비스를 운영하는 개발자는 장애 상황이 언제든지 발생할 수 있다. 하지만 모니터링(경계)하여 장애 원인을 파악하고 명확하게 해결하는 것이 중요하다.개발자가 애플리케이션을 개발할 때 요구사항만 개발하는 것이 아니라, 서비스를 실제 운영 단계에 올렸을 때 서비스에 문제가 없는지 모니터링하고 지표들을 심어서 감시하는 행위를 해야 한다.이러한 기능들을 프로덕션 준비 기능이라고 부른다. 쉽게 말해, 프로덕션을 운영에 배포할 때 준비해야 하는 비 기능적 요소들을 뜻한다. 아래와 같은 요소가 존재한다.지표, 추적, 감시모니터링스프링 액추에이터스프링 부트가 제공하는 액추에이터는 프러덕션 준비 기능을 매우 .. Framework/Spring 2024. 1. 18. [Spring] JPA Auditing을 활용하여 생성/수정시간 자동화하는 방법 서론 오늘은 Spring Boot 환경에서 JPA Auditing을 활용하여 생성/수정시간 자동화하는 방법에 대해서 알아보겠습니다. 본론 BaseTimeEntity란 클래스를 만들어 생성과 수정 시간이 필요한 모든 요소의 상위 클래스로 지정하여, Entity들의 createdDate, modifiedDate를 자동으로 관리하겠습니다. JPA Auditing Entity 클래스의 상단에 @MappedSuperclass를 추가해줍니다. 이를 추가함으로써, JPA Entity 클래스들이 BaseTimeEntity을 상속할 경우 필드들(createdDateTime, modifiedDateTime)도 칼럼으로 인식하도록 만듭니다. 또 @EntityListeners(AuditingEntityListner.class.. Framework/Spring 2023. 6. 22. [React] CRA(Create React App) 환경에서 env 파일 사용하는 방법 서론 CRA(Create React App) 환경에서는 API 끝점, 키 및 기타 설정과 같은 환경별 구성을 관리하는 것이 확장 가능하고 유연한 애플리케이션을 구축하는 데 매우 중요합니다. 다행히도, CRA는 환경 파일을 사용하여 환경 변수를 처리하는 간단한 방법을 제공합니다. 이 튜토리얼에서는 CRA 프로젝트에서 env 파일을 효과적으로 활용하는 방법에 대해 알아보겠습니다. 1단계: 환경 파일 생성 시작하려면 프로젝트 루트에 새 파일을 만들고 이름을 ".env"로 지정하십시오. CRA는 이 파일을 자동으로 인식하고 개발 중 환경 변수로 내용을 로드합니다. 파일 이름은 점으로 시작해야 하며 파일 확장명이 없어야 합니다. 2단계: 환경 변수 정의 .env 파일 내에서 환경별 변수를 키-값 형식으로 정의할 .. Framework/React & RN 2023. 6. 2. [RN] React Native/Typescript 환경에서 env 파일 사용하는 방법 서론 대상독자 RN 개발 시, env 파일을 사용하고 싶은 개발자 학습목표 오늘은 RN Expo와 타입스크립트 환경에서 env 파일을 설정하는 방법에 대해서 알아보겠습니다. 본론 라이브러리 설치하기 // js yarn add react-native-dotenv; // ts yarn add -D @types/react-native-dotenv; react-native-dotenv를 설치해줍니다. 타입스크립트의 경우, 타입을 지정하기 위한 @types/react-native-dotenv 라이브러리를 추가로 설치해줍니다. babel.config.js 수정하기 그런 뒤, babel.config.js 파일에서 해당 값을 plugins 항목에 넣어줍니다. module.exports = function () { re.. Framework/React & RN 2023. 3. 27. 이전 1 2 3 다음 반응형