티스토리 뷰
juneyr.dev/reactive-programming
자세히 나와있다 먼저 읽자
차단되지 않는 백 프레셔를 갖는 비동기 스트림 처리의 표준을 제공하는 것이 목적이다.
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);
'Spring' 카테고리의 다른 글
java7, spring 비동기 처리 (0) | 2021.09.05 |
---|---|
mybatis 쿼리 where 조건 쓸때 and 때문에 에러날 경우 (0) | 2020.12.11 |
spring 컨트롤러에 접근 전에 항상 접근하게 하는 어노테이션(@ControllerAdvice @ModelAttribute) (0) | 2020.12.10 |
@Transactional(readOnly = true) (0) | 2020.11.22 |
mybatis resultType에 넣을 수 있는 값 (0) | 2020.11.05 |
댓글