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이라고 표현한다.

다른거

- 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커밋