Programming/Spring6 Spring 동시성 제어를 위한 트랜잭션 관리 금융 애플리케이션에서는 데이터 정합성을 보장하는 것이 가장 중요한 요소 중 하나이다. 수백만건의 트랜잭션이 실시간으로 처리되는 환경에서 동시성 문제를 해결하지 못하면 데이터 손실이나 중복, 정합성 훼손 같은 심각한 문제가 발생할 수 있다. 1. 트랜잭션트랜잭션은 데이터베이스의 상태를 변화시키는 작업 단위를 의미하며, 반드시 ACID 속성을 만족해야 한다.Atomicity : 트랜잭션은 모두 실행되거나 모두 실행되지 않아야 한다.Consistence : 트랜잭션 전후로 데이터베이스의 상태는 항상 일관성을 유지해야 한다.Isolation: 하나의 트랜잭션이 완료될 때까지 다른 트랜잭션이 간섭할 수 없어야 한다.Durability : 트랜잭션이 완료된 이후의 변경 사항은 영구적으로 반영되어야 한다. 2. Sp.. 2024. 11. 26. Spring Batch 1.Spring Batch 란?Spring Batch는 대량의 데이터를 효율적을 처리하귀 위한 스프링 프레임워크 기반 오픈소스 프로젝트이다. 대규모 데이터 처리 시 필요한 배치 처리를 쉽게 구현할 수 있도록 다양한 기능과 설정을 제공한다. 2. Spring Batch의 구성요소jobjob은 배치 프로세스의 최상위 개념으로, 하나 이상의 step으로 구성된다각 job은 처리 논리적 단위이다.JobLauncher를 통해 실행된다.StepStep 은 job 의 하위 구성요소로, 실제배치 작업이 수행되는 단계이다.Reader > Processor > Writer 구조로 데이터를 처리한다Tasklet단일 작업 단위를 의미하며, 간단한 작업을 처리할 때 유용하다.하나의 Step 안에서 실행된다Chunk 기반 처리데.. 2024. 11. 23. Spring Bean Lifecycle Spring Framework의 IoC(Inversion of Control) 컨테이너는 Bean의 생성, 초기화, 소멸 등 생명주기를 관리한다. Spring Bean 생명 주기의 각 단계를 알아보자. 1. Spring Bean Lifecycle 이란?Spring Bean Lifecycle 은 Spring IoC 컨테이너에 의해 관리되는 객체의 생명주기를 뜻한다. Bean은 ApplicationContext 에 등록되고, 초기화 및 솜려 과정에서 다양한 Callback method 가 호출된다.단계객체 생성 (Instantiation): Bean 정의에 따라 객체가 생성된다.의존성 주입 (Dependency Injection) : 필요한 의존성이 주입된다.초기화 (Initialization) : @Pos.. 2024. 11. 20. [Spring] Swagger에 대해서 Swager는 RESTful API를 설계, 빌드, 문서화, 테스트 할 수 있는 오픈 소스이다. API 개발자와 소비자 간의 의사소통을 원활하게 하며, API 사용방법을 이해하기 쉽게 해준다. Spring Framework에서도 이를 활용해 API를 문서화 할 수 있다. Spring Framework는 Spring Boot와 달리 수동으로 더 많은 설정을 해주어야 한다.Spring에서 Swagger 설정하기SpringFox 라이브러리를 사용하여 Swagger를 통할 할 수 있다.1. Maven 의존성 추가 pom.xml 파일에 Swaager와 관련된 SpringFox 의존성을 추가 한다. io.springfox springfox-swagger2 2.9.2 io.springfox .. 2024. 9. 5. Cron을 이용한 Scheduling 방법 Spring Framework 에서 일정한 시간 간격으로 작업을 수행하기 위해 스케쥴링 기능을 사용할 수 있다.그 중에서도 Cron 표현식을 이용한 스케쥴링은 작업시간을 유연하게 지정할 수 있어서 많이 활용된다.1. Spring 에서 스케줄링 활성화Spring 에서 스케줄링 기능을 사용하려면 먼저 @EnableScheduling 어노테이션을 통해 스케쥴링 기능을 활성화 해야 한다. 이 어노테이션은 보통 @Configuration 클래스에 추가 된다.import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.EnableScheduling;@Configuration@Enab.. 2024. 8. 19. Maven 과 Gradle Maven 과 Gradle 모두 자바 프로젝트에서 사용되는 Build 도구이다.이 둘은 프로젝트의 빌드, 관리 및 배포를 자동화 하는데 사용된다.MavenApache에서 개발한 자동화 도구로 pom.xml ㅍ일을 사용하여 프로젝트의 의존성, 빌드 명령어를 정의한다.표준 디렉토리 구조와 빌드 프로세스를 따름으로써 설정을 최소화하는걸 지향한다.장점1.플러그인: 다양한 플러그인이 있어 여러 작업을 쉽게 자동화 할 수 있다.2.표준화된 구조:표준화 되어 있어 신규 프로젝트 및 기존 프로젝트를 진행하기 편함3.다양한 자료: 오래된 도구로서 많은 자료와 커뮤니티에서 많은 정보를 얻을 수 있음.단점1.빌드 속도: 프로젝트가 크고 무거워질수록 빌드 속도가 느려짐2.XML 구성: XML 기반 설정 파일이 길고 복잡해 질.. 2024. 7. 21. 이전 1 다음 728x90 반응형 LIST