본문 바로가기

Framework/Spring6

[Spring] SpringWebFlux에서의 효과적 Error처리와 백프레셔(BackPressure) Reactive Programming에서 백프레셔(Backpressure) 처리 전략을 이해하고, Spring WebFlux를 활용하여 구현하는 방법을 알아보도록 합니다. Project Reactor의 예제 코드를 활용하여 Publisher 와 Consumer 측에서의 백프레셔(Backpressure) 전략을 확인해 봅니다. traditional try-catch traditional 한 명령형 프로그래밍에서 오류 처리는 일반적으로 try-catch 블록을 통해 처리됩니다. try { // 예외를 발생시킬 수 있는 작업 수행 int result = performOperation(); System.out.println("Result: " + result); } catch (ArithmeticExceptio.. 2023. 4. 1.
[Spring] Tomcat VS Netty Connector - NIO(non-blocking I/O) or BIO(Blocking I/O) Tomcat과 Netty의 차이점을 클라이언트의 요청과 응답을 처리하는 Server Connect의 측면에서 우선 적으로 살펴보도록 하겠습니다. BIO (Blocking I/O) 및 NIO (Non-blocking I/O) 커넥터의 작동 원리에 대해서 알아보겠습니다. Connector Spring에서 커넥터는 클라이언트 요청을 수신 및 처리하고, 추가 처리를 위해 애플리케이션으로 전달하고, 응답을 클라이언트로 다시 보내는 역할을 하는 필수 구성 요소입니다. 커넥터의 주요 역할 1. 연결을 설정하고 관리하여 클라이언트와 서버 간의 통신을 활성화합니다. 2. 클라이언트 요청을 애플리케이션이 처리할 수 있는 형식으로 변환하고, 응답의 경우 그 반대로 변환합니다. 3. 동시 클라이언트 요청을 효율적으로 처리하기.. 2023. 3. 26.
[Spring] Project Reactor EventLoop와 Flux와 Mono. Project Reactor는 JVM(Java Virtual Machine)에서 비동기 및 반응형 애플리케이션을 구축하기 위해 Reactive Streams를 활용하는 라이브러리입니다. 주요 publisher인 Mono와 Flux와 함께 다양한 연산자들을 제공하여 개발자들이 비동기 이벤트 시퀀스를 효율적으로 처리할 수 있도록 지원합니다. 이러한 기능 덕분에 Reactor는 Spring WebFlux와 같은 반응형 라이브러리 및 프레임워크의 기반으로 널리 사용되고 있습니다. Reactive Programing과 Reactive Stream에 대해서는 이전 포스팅을 참조해 주시면 감사하겠습니다. [Spring] Reactive Programming 개요 [Spring] Reactive Programming .. 2023. 3. 21.
[Spring] Reactive Programming 개요 Spring Webflux를 학습하기 이전에 Reactive Programming에 대해서 명령형 프로그래맹, 선언적 프로그래밍 그리고 Data Stream 과 주요 특징들, Reactive Stream 과 주요 요소들에 대해서 자세하게 알아보도록 하겠습니다. 서론 사실 Reactive Programming을 spring에 작성해야 할까 고민을 좀 했다. Rxjava도 있고 Rxjs도 있는 만큼 Reactive X를 활용하는 곳에 사용해도 되기 때문이다. WebFlux에 대한 포스팅을 하기전 Programming 패러다임부터 하나하나 전부 작성할 것 이기 때문에 Spring 카테고리에 작성하도록 하겠습니다. Reactive Programing ? In computing, reactive programm.. 2023. 3. 19.
[Spring] @Transactional 어노테이션 이해하기(2) 롤백(rollback) 규칙, 시간 제한(Timeout), readOnly Flag Spring Boot @Transactional 어노테이션을 이해하기 위해 @Transactional 어노테이션이 무엇이며 제공하는 설정은 무엇인지 알아보겠습니다. 1편에 이어서 2편에서는 @Transactional 어노테이션이 제공해 주는 트랜잭션 롤백(Transaction Rollback) 규칙과 , 시간제한(Transaction Timeout), readOnly Flag와 JPA에서의 ReadOnly Flag에 특징들에 대해서 이어서 살펴보도록 하겠습니다. 1편을 아직 못 보신 분들은 아래 링크를 참조해주시면 감사합니다. https://colevelup.tistory.com/34 [Spring boot] @Transactional 어노테이션 이해하기(1) 전파유형(Propagation) 과 격리수준.. 2023. 3. 12.
[Spring] @Transactional 어노테이션 이해하기(1) 전파유형(Propagation) 과 격리수준(Isolation) Spring Boot @Transactional 어노테이션을 이해하기 위해 @Transactional 어노테이션이 무엇이며 제공하는 설정은 무엇인지 알아보겠습니다. 1편에서는 @Transactional 어노테이션이 제공하는 트랜잭션 전파(Transaction Propagation) 및 격리(Transaction Isolation)에 대해서 어떻게 적용되며 어떻게 선언하는지 등 우선적으로 자세하게 알아보도록 하겠습니다. 트랜잭션(Transacntion)과 ACID 들어가기 앞서 데이터베이스 트랜잭션은 단일 작업 단위로 실행되는 하나 이상의 데이터베이스 작업 시퀀스입니다. 트랜잭션은 ACID 원칙을 적용하여 데이터 일관성과 무결성을 보장합니다. ACID는 원자성, 일관성, 격리성, 내구성을 의미합니다. 원자.. 2023. 3. 11.