개발 공부 기록

개발 공부 기록

  • 분류 전체보기 (218)
    • spring (57)
      • JPA (19)
      • TEST (4)
      • 비동기 처리 (4)
      • SECURITY (1)
      • BATCH (0)
      • WebFlux (10)
      • Reactor (6)
    • 문제풀이 (2)
      • 백준 (2)
      • 프로그래머스 (0)
    • java (43)
      • java (39)
      • servlet_jsp (3)
      • jdbc (1)
    • 프론트 (7)
      • html (6)
      • css (1)
    • DB (12)
      • Oracle-기초 (8)
      • Mysql-기초 (4)
      • Redis (0)
    • CS (4)
      • Network (4)
      • 디자인 패턴 (0)
    • Project (0)
      • e-commerce (0)
    • Book (80)
      • 이펙티브 자바 (55)
      • 클린코드 (0)
      • 모던 자바 인 액션 (25)
      • TDD and Acceptance TDD for .. (0)
    • claude code (0)
  • 홈
  • 태그
  • 방명록
RSS 피드
로그인
로그아웃 글쓰기 관리

개발 공부 기록

컨텐츠 검색

태그

영속성 가변인수 webflux 비동기 Reactor 제네릭 이펙티브 자바 리액티브 프로그래밍 단위 테스트 통합 테스트 flux 웹플럭스 Future 리액티브 CompletableFuture Reactive 람다식 JPA 메서드 참조 스트림

최근글

댓글

공지사항

아카이브

전체 글(218)

  • WebSockets

    WebSockets 1. 웹소켓이란?웹소켓 프로토콜, RFC6455, 는 클라이언트와 서버간에 단일 TCP 연결을 통해 전이중 양방향 통신을 위한 표준화된 방법을 제공한다.HTTP 의 TCP 와는 다르지만, HTTP 위에서 작동하며, 80, 443 포트를 사용하고 기존 방화벽 규칙을 재사용할 수 있다. 웹소켓 상호작용은 HTTP 요청으로 시작되며,이 요청은 HTTP Upgrade 헤더를 사용해서 프로토콜을 업그레이드하거나,이 경우에는 WebSocket 프로토콜로 전환한다. 예)GET /spring-websocket-portfolio/portfolio HTTP/1.1Host: localhost:8080// Upgrade 헤더Upgrade: websocket// Upgrade 연결 사용Connection: ..

    2026.04.04
  • Reactor(8) Sinks

    리액터에서 sink는독립적인 방식으로 신호를 안전하게 수동으로 발생시킬 수 있게 해주는 클래스이며,Publisher와 유사한 구조를 만들어서 여러 Subscriber를 처리할 수 있다(단, unicast() 계열은 예외로 하나의 Subscriber만 가능하다). 1. Safely Produce from Multiple Threads by Using Sinks.One and Sinks.Many reactor-core에서 제공하는 기본 Sink 구현들은멀티스레드 환경에서의 사용이 감지되도록 보장되어 있으며,그 결과 다운스트림 Subscriber 관점에서 스펙 위반이나 정의되지 않은 동작이 발생하지 않도록 한다.tryEmit* API를 사용할 경우여러 스레드에서 동시에 호출되면 즉시 실패(fail fast)..

    2026.02.10
  • Reactor(7) Error Handling

    Handling Erros 더보기quick look : https://projectreactor.io/docs/core/release/reference/apdx-operatorChoice.html#which.errors리액티브 스트림즈에서 에러는 종료 이벤트다.에러가 발생하는 즉시 시퀀스는 중단되고,연산자 체인을 따라 아래로 전파되어마지막 단계인 사용자가 정의한 Subscriber의 onError 메서드까지 전달된다. 이러한 에러들은 애플리케이션 레벨에서 반드시 처리되어야 한다.예를 들어, 에러 알림을 UI 에 띄운다던가 또는 의미있는 에러 내용을 REST endpoint 에 보낸다던가 말이다.이러한 이유로 subscriber 의 onError 메서드가 정의되어있다. Reactor는 또한 체인 중간에서 ..

    2026.02.09
  • Reactor(6) Thread, Scheduler, publishOn, subscribeOn

    Threading and Scheduler 리액터는 동시성 모델에 중립적이다.즉, 어떤 동시성 모델을 강제하지 않는다.오히려 개발자에게 통제권이 있다.그렇다고 해서 라이브러리가 동시성 처리를 도와주지 않는다는 말은 아니다.더보기Reactor는 비동기 라이브러리가 아니라, 스레드를 개발자가 선택하는 라이브러리다. Flux나 Mono를 얻었다고 해서, 그것이 자동으로 별도의 전용 스레드에서 실행된다는 뜻은 아니다.대신에 대부분 연산자들은 이전 연산자를 실행했던 스레드 위에서 계속해서 동작한다.별도로 지정하지 않는 한, 가장 위에 있는 연산자(소스)는 subscribe()를 호출한 스레드에서 실행된다. 아래 예제는 새 스레드에서 Mono 를 실행시킨다.public static void main(String[]..

    2026.02.07
  • Reactor(5) generate, create, push, handle

    Programmatically creating a sequence 이 섹션에서는 Flux나 Mono를 생성할 때,관련된 이벤트(onNext, onError, onComplete)를 프로그래밍적으로 정의하여 만드는 방법을 소개한다.이 메서드들은 이벤트를 발생시키는 API 를 제공하는데 sink 라고 부른다.sink 는 몇 가지 종류가 있는데 아래에서 살펴볼 것이다. 1. 동기식 생성: generate Flux를 프로그래밍적으로 생성하는 가장 단순한 방법은 generate 메서드를 사용하는 것인데, 이 메서드는 generator 함수를 인자로 받는다. 이것은 동기적이고 요소를 하나씩 내보내는 용도이다.sink 는 SynchronousSink 타입이고, next() 메서드는 콜백 호출 시 최대 한 번만 호..

    2026.02.05
  • Reactor(4) Create and Subscribe Flux, Mono

    Flux, Mono 를 생성하고, 구독하는 간단한 방법 Flux, Mono 를 시작하는 가장 간단한 방법은 수 관련 팩토리 메서드를 사용하는 것이다.예를 들어, 문자열 시퀀스를 만들기 위해 문자열을 나열하거나 컬렉션에 담은 채로 만들 수 있다.Flux seq1 = Flux.just("foo", "bar", "foobar");List iterable = Arrays.asList("foo", "bar", "foobar");Flux seq2 = Flux.fromIterable(iterable); 팩토리 메서드를 이용하는 다른 방법이다.// 주의! 값이 없어도 제네릭 타입은 필요하다.Mono noData = Mono.empty();Mono data = Mono.just("foo");// 첫 번째 인자는 값의 시..

    2026.02.03
  • Reactor(3) Flux, Mono

    reactor-core 는 리액터 프로젝트의 핵심 아티팩트로,리액티브 스트림즈의 스펙에 집중하고 자바 8을 타겟으로 한 리액티브 라이브러리다. 리액터는Publisher를 구현하면서도풍부한 연산자를 제공하는 조합 가능한(composable) 리액티브 타입들을 도입했는데, 그것이 바로 Flux와 Mono이다.Flux 객체는 0개 이상(0..N)의 아이템으로 이루어진 리액티브 시퀀스를 나타내며,Mono 객체는 하나의 값이 있거나 아예 없는 결과(0..1)를 나타낸다. 이러한 구분은 타입을 통해 비동기 처리가 단 건인지, 여러 건인지 알 수 있게 한다.예를 들어 Http 요청은 한 개의 응답을 하나만 생성하기 때문에 count 연산을 할 필요가 없다.이러한 Http 요청의 결과를 0 또는 1 개의 내용과 관련된..

    2026.02.01
  • Reactor(2) 리액티브 프로그래밍 소개

    리액터는 리액티브 프로그래밍 패러다임의 구현체며, 리액티브 프로그래밍 패러다임은 아래처럼 요약할 수 있다. 리액티브 프로그래밍은 데이터 흐름과 변경 사항 전파에 중점을 둔 비동기 프로그래밍 패러다임이다.이것은 정적 데이터(array, ...), 동적 데이터(event emitter, ...) 의 표현을 쉽게 원하는 원어로 표현할 수 있다는 의미다. 리액티브 프로그래밍으로 나아가기 위한 첫 번째 단계로 마이크로 소프트에서 .NET 시스템에 리액티브 확장 라이브러리를 만들었다.그 이후 RxJava 라이브러리가 JVM 위에서 동작하는 리액티브 프로그래밍을 구현했다.시간이 지나면서 리액티브 스트림즈를 통해 자바에 대한 리액티브 프로그래밍 표준화가 이뤄졌다.인터페이스 집합을 정의하고,JVM 위에서 동작하는 리액티..

    2026.02.01
  • Reactor(1) 시작하기

    1. 리액터 소개 리액터는 JVM 을 위한 완전한 넌블러킹 리액티브 프로그래밍 라이브러리로 효율적인 수요 관리(백프레셔)를 제공한다.자바 8의 함수형 API들과 바로 통합되며, 특히 CompletableFuture, Stream ,Durable 을 지원한다.또한 조합 가능한 비동기 시퀀스 API를 제공하는데,N 개의 원소를 처리하는 Flux,0 또는 1 개의 원소를 처리하는 Mono,그리고 리액티브 스트림즈 명세를 광범위하게 구현하고 있다. 리액터는 또한 reactor-netty 프로젝트와 함께 넌 블러킹 프로세스간 통신을 지원한다.마이크로 서비스 프로젝트에 적합한 reactor-netty 는 HTTP(웹소켓 포함), TCP, UDP를 위한 백프레셔 지원 네트워크 엔진을 지원한다.리액티브 인코딩과 디코딩..

    2026.01.28
이전
1 2 3 4 ··· 25
다음
티스토리
© 2018 TISTORY. All rights reserved.

티스토리툴바