TIL
TIL_20221129
번잔중
2022. 11. 29. 23:25
오늘 할 일
🔦 코드 스테이츠 69일차
[Spring Webflux] 리액티브 프로그래밍
- Daily Coding
- 리액티브 프로그래밍이란?
- 리액티브 스트림즈란?
- Hello, Reactive로 알아보는 리액티브 프로그래밍 구조
다른거
- 1일 1커밋
오늘 배운 것
🧬 [Spring Webflux] 리액티브 프로그래밍
리액티브 프로그래밍이란?
- 리액티브 시스템은 클라이언트의 요청에 반응을 잘하는 시스템을 의미한다.
- 리액티브 스트림즈(Reactive Streams)는 리액티브 프로그래밍을 위한 표준 사양(또는 명세, Specification)이다.
- 리액티브 스트림즈는 아래의 네 개 컴포넌트로 구성된다.
- Publisher
- Subscriber
- Subscription
- Processor
- 리액티브 스트림즈의 구현체
- Project Reactor
- RxJava
- Java Flow API
- 기타 리액티브 확장(Reactive Extension)
Hello, Reactive로 알아보는 리액티브 프로그래밍 구조
- 선언형 프로그래밍 방식은 실행 로직의 일부만 람다 표현식으로 전달하며 전달 받은 람다 표현식을 기반으로 Operation 메서드 내부에서 전체 로직을 실행한다.
- 리액티브 프로그래밍에서 사용되는 용어 정의
- Publisher
- Publisher는 데이터를 내보내는 주체를 의미한다.
- Emit
- Publisher가 데이터를 내보내는 것을 Emit 이라고 한다.
- Subscriber
- Subscriber는 Publisher가 emit한 데이터를 전달 받아서 소비하는 주체를 의미한다.
- Subscribe
- Subscribe는 구독을 의미한다.
- Signal
- Signal은 Publisher가 발생시키는 이벤트를 의미한다.
- Operator
- Operator는 리액티브 프로그래밍에서 어떤 동작을 수행하는 메서드를 의미한다.
- Sequence
- Sequence는 Operator 체인으로 표현되는 데이터의 흐름을 의미한다.
- Upstream / Downstream
- Sequence 상의 특정 Operator를 기준으로 위쪽의 Sequence 일부를 Upstream이라고 하며, 아래 쪽 Sequence 일부를 Downstream이라고 표현한다.
- Publisher
다른거
- 1일 1커밋
프로그래머스 Lv.2 전화번호 목록 문제를 풀었습니다. 문제를 잘못 이해해서 접두사가 되는 문자열이 정해져 있는 줄 알았는데, 모든 경우에 서로 접두사가 되는 경우가 있다면 false를 반환하는 문제였네요. 문제를 풀던 중 startsWith() 이라는 메소드를 하나 배웠습니다. 입력한 문자열로 시작하는지 찾아주는 메소드입니다. 비슷하게 입력한 문자열로 끝나는지 확인하는 endsWith()가 있습니다.
Programmers 전화번호 목록
GitHub - chaning49/algorithm: 코딩테스트를 위한 알고리즘 공부
코딩테스트를 위한 알고리즘 공부. Contribute to chaning49/algorithm development by creating an account on GitHub.
github.com
느낀점
- 리액티브를 이론 + 실습 아주 조금만 배워서 그런지 아직 어디에 쓰는 것인지를 모르겠다. 응답 대기시간을 최소화한 Non-blocking을 위해 사용하는 것이라는데 무슨 말인지 아직 감이 하나도 안온다. 그냥 람다식 쓰는 느낌?... 사용할 줄 알면 상당히 좋다고 하셨는데 모르겠다 ㅎ...
- 새벽까지 어제 하던 것을 다시 했는데, 모르겠어서 질문을 해야겠다... 내일 수업이 걱정된다.
내일 할 일
🔦 코드 스테이츠 70일차
[Spring Webflux] Project Reactor
- Daily Coding
- Project Reactor란?
- 마블 다이어그램 & 스케쥴러
- Operators 사용법
다른거
- 1일 1커밋