본문 바로가기

개발기술/Spring

(12)
배치처리 배치 처리란?한꺼번에(일괄로) 많은 데이터를 처리하는 방식. 주로 사용자 개입 없이, 예약된 시점에 자동 실행됨 배치 처리의 구성 요소 (Spring 기준)Spring에서는 보통 @Scheduled 또는 Spring Batch를 이용해 구현해. @Scheduled (간단한 주기성 작업)가볍고 단순한 배치에 적합트랜잭션/재시도/병렬처리 기능 없음@Scheduled(cron = "0 0 0 * * *") // 매일 자정public void sendDailyReport() { // 작업 수행} Spring Batch (전문 배치 프레임워크) @Beanpublic Job myJob() { return jobBuilderFactory.get("myJob") .start(step1()) ..
스프링 환경설정 ; 스프링 부트 Spring Boot란?1. Spring Boot는 Spring Framework를 더 쉽게 사용하도록 만든 확장 도구입니다.Spring Framework는 강력한 기능을 제공하지만, 설정이 복잡하고 개발 초기 설정에 시간이 많이 걸립니다.Spring Boot는 이러한 초기 설정을 자동화하고, 필요한 기능들을 빠르게 적용할 수 있도록 돕는 프레임워크입니다.2. Spring Boot의 주요 특징자동 설정(Autoconfiguration)Spring Boot는 대부분의 설정을 자동으로 처리합니다. 예를 들어, 데이터베이스를 연결하거나, 웹 서버를 실행할 때, 추가적인 설정 없이도 바로 동작합니다.자동 설정(@EnableAutoConfiguration)**클래스 경로(classpath)**에 존재하는 의존성(..
비동기 Web Flux WebFlux란?Spring WebFlux는 Spring 5에서 도입된 Reactive Programming을 지원하는 비동기, 논블로킹(non-blocking) 웹 프레임워크입니다. 기존의 Spring MVC가 Servlet 기반의 동기적, 블로킹 방식으로 작동하는 것과는 달리, WebFlux는 Reactive Streams API를 기반으로 하여 더 높은 확장성과 비동기 처리를 제공합니다.WebFlux의 주요 특징논블로킹 I/O (Non-blocking I/O) WebFlux는 Netty, Undertow와 같은 비동기 I/O 처리 엔진과 통합되어 동작합니다. 요청과 응답 처리 과정에서 I/O 작업이 블로킹되지 않아 많은 요청을 동시에 처리할 수 있습니다. Spring WebFlux는 비동기 I/O를..
Spring 스케쥴러 Spring SchedulerSpring Scheduler는 Spring Framework의 구성 요소로, 개발자가 특정 간격이나 시간에 작업을 수행할 수 있도록 도와줍니다. Spring Task API의 일부로, 외부 라이브러리에 의존하지 않고도 작업을 스케줄링할 수 있습니다. 백그라운드 작업 실행, 주기적인 데이터 처리, 작업 자동화, 정기적인 유지 보수 작업에 유용하게 사용할 수 있습니다.Spring Scheduler의 주요 기능간단한 설정:주석(annotation) 또는 XML 설정을 통해 스케줄 작업을 구성할 수 있어 간단하게 설정하고 관리할 수 있습니다.Spring Boot와의 통합:Spring Boot에서는 최소한의 설정으로도 사용 가능하며, 많은 설정이 자동으로 구성됩니다.Fixed Del..
MSA도입을 위한 Spring Cloud Spring Cloud Gateway 설정은 마이크로서비스 아키텍처에서 여러 개의 독립된 서비스로 나누어진 애플리케이션에 대한 요청을 중앙에서 관리하고, 라우팅과 필터링을 수행하기 위한 구성입니다. 이를 통해 사용자는 여러 서비스에 개별적으로 접근하지 않고, 하나의 진입점(Gateway)을 통해 서비스에 접근할 수 있게 됩니다.   1. 프로젝트 환경 설정Spring Boot 프로젝트 생성: Spring Initializr 또는 IDE를 통해 Spring Boot 프로젝트를 생성하고, Spring Cloud Gateway와 Security에 필요한 의존성을 추가합니다.의존성 추가:Spring Cloud Gateway: 라우팅과 필터링을 제공.Spring Security: 보안 기능을 제공하여 인증과 인가..
Spring 동시성이슈 해결 동시성이슈여러 요청이 동일한 자원에 접근하며 발생하는 문제를 통칭함. 주로 DB에서 동일한 레코드를 동시접근하면 문제가 발생.예) 사용자1과 사용자2가 계좌1의 잔액 1만원을 1천원 사용하는 요청을 동시에 보냈을때, 사용자1의 요청에 의해서 잔액이 9천원이 되기전에 사용자2의 요청이 시작되어 두 사용자의 요청 결과가 각각 잔액 9천원으로 저장되어 2천원 사용이 되어도 1천원만 감소하는 경우. 동시성이슈 해결방안1. DB의존적인 해결방식 : DB 기기의 Isolation Level을 Serializable로 장치를 하거나 JPA의 Optimist Lock, Pessimistic Lock을 사용하여 DB의 기능을 사용- 단점 : DB서버는 인프라 확장이 어려워 성능의 한계가 뚜렷한 기기이다. DB의존적인 방..
스프링 HTTP 요청 처리 파이프라인 스프링 초기화 흐름1.서버 시작 시:스프링 부트 애플리케이션을 실행하거나 Tomcat 같은 서블릿 컨테이너에 배포하면 서버가 초기화 과정을 시작합니다.2. 스프링 부트 애플리케이션 초기화Spring Boot의 가장 중요한 특징은 애플리케이션이 실행 시 자동으로 필요한 Bean과 설정을 구성해주는 것SpringApplication.run(): main() 메서드에서 호출되며, 스프링 애플리케이션의 전체 구동을 시작합니다.스프링 부트 자동 구성(Auto-Configuration) : SpringApplication.run()이 호출되면 스프링 부트는 애플리케이션의 설정값을 로드합니다. 이때 application.yml이 읽혀지며, 설정값이 자동 구성(Auto-Configuration) 과정에 활용됩니다.클래..
스프링 부트와 프로젝트 초기 환경설정 스프링 부트의 핵심 목표기능설명자동 설정 (Auto Configuration)상황에 따라 필요한 설정을 자동으로 적용내장 톰캣 제공Tomcat, Jetty 같은 서버를 내장, 즉시 실행 가능독립 실행 가능 JARjava -jar 하나로 바로 실행 가능의존성 스타터 제공필요한 라이브러리를 모은 starter 패키지로 간단하게 추가 가능간편한 설정application.yml 또는 .properties 한 파일로 대부분의 설정 처리 가능 자동 설정 (Auto Configuration)Spring Boot는 spring-boot-starter-web를 추가하면, 내부적으로 WebMvcAutoConfiguration 클래스를 로딩.이 클래스는 "웹 애플리케이션에 필요한 기본 설정"을 자동으로 등록해주는 역할@Co..