티스토리 뷰

Spring

리액티브 프로그래밍

pakker 2021. 3. 17. 16:37

juneyr.dev/reactive-programming

 

Reactive Programming 101 : 리액티브 프로그래밍이 뭔가요

그날이 왔다. 여러가지 api 콜을 합쳐서 다시 하나의 응답으로 만들어 내보내주는 코드를 보는데, 이해를 전혀 못하겠는 때가.. 그래서 이번주는 Reactive Programming 101이다. 처음에 구현체로 내가 마

juneyr.dev

자세히 나와있다 먼저 읽자

차단되지 않는 백 프레셔를 갖는 비동기 스트림 처리의 표준을 제공하는 것이 목적이다.

 

Publisher(발행자), Subscriber(구독자), Subscription(구독), Processor(프로세서) 4가지의 인터페이스로 요약한다.

Publisher는 하나의 Subscription당 하나의 Subscriber에 발행 하는 데이터를 생성한다.

그리고 Subscriber가 구독 신청되면 Publisher로부터 이벤트를 수신할 수 있다.

이 이벤트들은 Subscriber 인터페이스의 메서드를 통해 전송된다.

 

 

ex. 사람의 이름을 가져와서 모두 대문자로 변경 후 이것으로 인사말 메세지를 만들어 출력 한다고 해보자.

	String name = "name";
        String upperName = name.toUpperCase();
        String greeting = "hello, " + upperName+ "!";
        System.out.println(greeting);

이경우는 각 줄이 같은 스레드에서 한단계씩 차례대로 실행된다.

그리고 각 단계가 완료될 때까지 다음 단계로 이동하지 못하게 실행 중인 스레드를 막는다.

이와는 다르게 리액티브 코드에서는 이렇게 한다.

Mono.just("name")
                .map(n->n.toUpperCase())
                .map(cn->"Hello, " + cn + "!")
                .suscribe(System.out::println);

    

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함