2.1 리액티브 스트림즈(Reactive Streams)란? 데이터 스트림을 Non-Blocking이면서 비동기적인 방식으로 처리하기 위한 리액티브 라이브러리 표준 사양 구현체 예시 : Reactor, RxJava, Akka Streams, Java 9 Flow API 등 2.2 리액티브 스트림즈 구성요소 Publisher : 데이터 생성 및 통지 Subscriber : 구독한 Publisher로부터 통지된 데이터를 전달 받아 처리 Subscription : Publisher 구독, 요청할 데이터의 개수 지정, 구독 취소 Processor : Publisher와 Subscriber 기능 모두 2.3 코드로 보는 리액티브 스트림즈 컴포넌트 Publisher package org.reactivestreams..
1.1 리액티브 시스템(Reactive System)이란? Reactive : 반응을 하는 Reactive System : (어떤 이벤트나 상황에) 반응을 잘하는 시스템 클라이언트의 요청에 즉각 응답함으로써 지연 시간을 최소화 1.2 리액티브 선언문으로 리액티브 시스템 이해하기 MEANS (수단) : 메시지 기반 통신 FORM (형태) : 탄력성과 회복성 탄력성 : 시스템의 작업량이 변화하더라도 일정한 응답 유지 회복성 : 시스템에 장애가 발생하더라도 응답성 유지 VALUE (가치) : 빠른 응답성을 바탕으로 유지보수와 확장이 용이한 시스템 구축 1.3 리액티브 프로그래밍(Reactive Programming)이란? 리액티브 시스템을 구축하는 데 필요한 프로그래밍 모델 리액티브 시스템의 설계 원칙에 부합..
회사에서 Reactive Programming, Project Reactor 세미나 준비하면서 참고한 책 https://product.kyobobook.co.kr/detail/S000201399476 샘플 코드 : https://github.com/bjpublic/Spring-Reactive 스프링으로 시작하는 리액티브 프로그래밍 | 황정식 - 교보문고 스프링으로 시작하는 리액티브 프로그래밍 | *리액티브 프로그래밍의 기본기를 확실하게 다진다*리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는 product.kyobobook.co.kr Part 01 | 리액티브 프로그래밍(Reactive Programming) Part 02 | Project Reactor
※ 본 글은 원문 Return Early Pattern을 번역 및 요약한 내용입니다. Nested if public String returnStuff(SomeObject argument1, SomeObject argument2) { if (argument1.isValid()) { if (argument2.isValid()) { SomeObject otherVal1 = doSomeStuff(argument1, argument2) if (otherVal1.isValid()) { SomeObject otherVal2 = doAnotherStuff(otherVal1) if (otherVal2.isValid()) { return "Stuff"; } else { throw new Exception(); } } el..
세미나를 위해 준비했던 Java 8과 Java 11 비교 자료. 내가 창조한 자료는 없고 참고자료를 보기 쉽게 짜깁기한 것이라 볼 수 있다. 티스토리는 markdown 문서를 다소 특이하게 출력하는구나, 하지만 일일이 수정하기는 귀찮으므로 이대로. Java Support RoadMap 릴리즈 출시 공식 업데이트 종료 Premire Support Extended Support JDK8 2014.03 2019.01 2022.03 2030.12 JDK9 2017.09 2018.03 2018.03 Not Available JDK10 2018.03 2018.09 2018.09 Not Available JDK11 2018.09 2019.03 2023.09 2026.09 JDK12 2019.03 2019.09 201..
08. 분산 시스템의 골칫거리 결국 엔지니어로서의 우리의 임무는 모든 게 잘못되더라도 제 역할을 해내는 시스템을 구축하는 것이다. (p274) 네트워크 관련 문제 시계 및 타이밍 문제 결함과 부분 장애 분산 시스템에서는 시스템의 어떤 부분은 잘 동작하지만 다른 부분은 예측할 수 없는 방식으로 고장나는 것도 무리가 아니다. 이를 부분 장애라고 한다. (p275) 클라우드 컴퓨팅과 슈퍼컴퓨팅 클라우드 컴퓨팅 (cf. 슈퍼컴퓨팅) 언제라도 사용자에게 지연 시간이 낮은 서비스를 제공해야 함 (온라인) 규모의 경제 덕에 낮은 비용으로 동일한 성능을 제공하지만 실패율도 높음 IP와 이더넷을 기반으로 하며 높은 양단 대역폭을 제공하기 위해 클로스 토폴로지로 연결돼 있음 시스템이 커질수록 구성 요소 중 하나가 고장날 ..
04. 부호화와 발전 p113-114 대부분의 경우 애플리케이션 기능을 변경하려면 저장하는 데이터도 변경해야 한다. 서버 측 애플리케이션에서는 한 번에 몇 개의 노드에 새 버전을 배포하고 새로운 버전이 원활하게 실행되는지 확인한 다음 서서히 모든 노드에서 실행되게 하는 순회식 업그레이드(rolling upgrade) 방식이 있다. 클라이언트 측 애플리케이션은 사용자에 전적으로 좌우된다. 이것은 예전 버전의 코드와 새로운 버전의 코드, 이전의 데이터 타입과 새로운 데이터 타입이 어쩌면 모든 시스템에 동시에 공존할 수 있다는 의미다. 시스템이 계속 원활하게 실행되게 하려면 양방향으로 호환성을 유지해야 한다. 하위 호환성 : 새로운 코드는 예전 코드가 기록한 데이터를 읽을 수 있어야 한다. 상위 호환성 : 예..
- Total
- Today
- Yesterday