2022.08.11
● 계획
- 오늘 나의 학습 목표
리액티브 프로그래밍의 이해
리액티브 스트림즈가 무엇인지 이해
명령형 프로그래밍과 선언형 프로그래밍이 무엇인지 이해
리액티브 프로그래밍을 학습하기 위한 사전 지식이 무엇인지 이해
● 점검 및 평가
- 새롭게 학습한 내용은
- 이해되지 않은 부분은
- 보완하기 위해 무엇을
Spring MVC 기반의 애플리케이션은 명령형 프로그래밍이었다면
이번에 배운 리액티브 프로그래밍은 람다 선언 처럼 선언형 프로그래밍 방식이다
이름에서도 알 수 있듯
반응을 잘한다는 의미인데
클라이언트의 요청에 반응을 잘한다는 의미다
시스템 관점에서는 클라이언트 요청에 대한 응답 대기 시간을 최소화할 수 있도록
요청 스레드가 차단되지 않게 함으로써(논 블로킹) 클라이언트에게 즉각적으로 반응할 수 있도록 구성되었다고 볼 수 있다
리액티브 시스템의 특징과 설계원칙을 공부하니
또 새로운 무언가를 배우기 때문에 한 번에 와닿진 않았다
이해가 어렵다는 것 보다는 생소하다는 게 맞을 것이다
정말 힘들게 MVC기반의 프로그래밍을 이때까지 배웠는데
갑자기 사뭇 다른 개념의 프로그래밍을 또 배우고 있는 것이다
그것도 깊게도 아니고 전체적으로 어떤지 공부하고 있는데
솔직히 이게 맞나 싶긴했다
아직 제대로 복습도 못해서 전부 100% 이해는 못했는데
갑자기 새로운걸 다시 배우고 있다니
그렇지만 찾아가면서 공부를 하다보니
많은 트래픽 상황에서 기존 서블릿 방식에서 스레드를 무작성 생성하다 꽉 차면 감당이 안되는 상황이 많은데
리액티브 프로그래밍은 빠짐 없이 클라이언트와 요청을 주고받다보니 안정성이 존재한다
논블로킹이 큰 장점이라고 할 수 있는 이 리액티브 프로그램을
나중에
취업해서 현업에서도 쓸 일이 많을 것 같다고 생각했다
그러니 이것도 공부해둘 필요가 있겠지 어차피 선언형 프로그래밍을 아예 처음 접하는 것도 아니고
스트림이나 람다를 그래서 배웠던 걸까?
Uploaded by Notion2Tistory v1.1.0