Devlopment/Reactive, Concurrency

    ReactiveX

    이 글은 ReactiveX - Intro를 번역한 글입니다. Original Text[1] ReactiveX - Intro ReactiveXReactiveX는 observable sequences를 사용하여 비동기(asynchronous) 및 이벤트 기반 프로그램(event-based programs)을 작성하기 위한 라이브러리입니다. 옵져버 패턴(observer pattern)을 확장하여 데이터 및 / 또는 이벤트의 시퀀스를 지원하고 낮은 수준의 스레딩(low-level threading), 동기화(synchronization), 스레드 안전성(thread-safety), 동시 데이터 구조(concurrent data structures,) 및 논 블로킹 I/O(non blocking I/O)과 같은 ..

    리액티브란 무엇인가? (What's in a Name : Reactive)

    이 글은 "What's in a Name : Reactive"를 번역하고 정리한 글입니다. Original Text[1] What's in a Name : Reactive 용어, 뜻 상세 정보, 사용 예 반응형(Responsive) 사용자 인터페이스의 일시적인 동작을 설명할 때 UI가 사용자 입력에 신속하게 반응하거나 응답하는 경우 예) 반응형 웹(Responsive web) 리액션을 보여준다 예) 스프레드 시트, Model-View-Controller 패턴 Spreadsheet 스프레드 시트에서 셀 "A42"의 값을 변경하면 수식에서 A42를 참조하는 다른 모든 셀이 즉시 업데이트되는 예 즉각적인 의미이므로이 행동을 "리액티브"라고 생각할 수도 있음 데이터 바인딩 데이터 바인딩이 되어서 실시간으로 GU..

    리액티브 프로그래밍 대 리액티브 시스템 (Reactive Programming vs Reactive Systems)

    리액티브 프로그래밍 대 리액티브 시스템 (Reactive Programming vs Reactive Systems)

    아래 글은 LightBend의 "Reactive Programming versus Reactive Systems"를 번역한 글입니다. 리액티브 프로그래밍 대 리액티브 시스템 Reactive Programming vs Reactive Systems 끊임없는 혼란과 과부하가 걸린 바다에서 단순한 반응 설계 원리 세트에 착수Jonas Boner와 Viktor Klang, Lightbend Inc. 요약2013년에 Reactive Manifesto를 공동 저작 한 이후, Reactive는 선택한 일부 기업 내에서 단지 프린지 프로젝트에서만 사용되는 애플리케이션 구축을위한 사실상 확인되지 않은 기술이 되었습니다. - 미들웨어 분야의 수많은 대기업에서 전반적인 플랫폼 전략의 일부가되었습니다. 이 글의 목표는 Rea..

    리액티브 스트림(Reactive Streams)

    Original text[1] reactive-streams.org (http://www.reactive-streams.org/) [2] reactive stream wiki (https://en.wikipedia.org/wiki/Reactive_Streams) 이 글은 위 원본 글을 번역한 글입니다. 오역이 있을 수 있습니다. 리액티브 스트림(Reactive Streams)리 액티브 스트림은 논블로킹(non blocking) 역압(back pressure)으로 비동기 스트림 처리 표준을 제공하기위한 계획입니다. 여기에는 런타임 환경 (JVM 및 JavaScript)과 네트워크 프로토콜을 위한 노력이 포함됩니다. 문제데이터의 스트림, 특히 볼륨이 미리 결정되지 않은 "라이브"데이터를 처리하려면 비동기 시..

    데이터 스트림

    스트림이란 용어가 리액티브와 같이 참 많은 곳에서 사용이 된다.데이터 스트림이란 용어도, 스트림이란 용어도 있는데 간략하게 알아보자. 데이터 스트림(Data stream)일단 데이터 스트림이란 무엇일까?다음과 같이 정의할 수 있다.데이터가 열을 지어 흐르는 것처럼 입력되는 것정해진 포맷을 사용하여 문자 또는 바이트 형식으로 송수신되는 데이터 항목의 연속적인 흐름데이터의 양이 한정되어 있지 않고 지속적으로 생성되고, 시간에 따라 값이 변하는 데이터의 흐름연속적으로 흘러들어오는 데이터 (예 : 바이트 배열)예) 주식 가격, 사용자 클릭, IoT, 게임 데이터, 사용자 행동 정보, 채팅 실시간 처리(Real-time processing)대량의 데이터를 빠르게 처리하기 위한 데이터 처리의 목표 또는 제약 사항실..

    동시성 관련 분류

    Reactive쪽으로 파고들면 파고들수록 머리가 아프다.다른 분의 말대로 정말 이것은 리택티브의 홍수이다.정리하기가 쉽지 않다. JVM 환경에서 리액티브 API • Reactor 2.5- 4세대이자 리액티브 스트림(Reactive Streams)을 기반으로 함 - https://projectreactor.io/- https://github.com/reactor/reactor-core- https://projectreactor.io/docs/core/release/api/ • RxJava 1.x- 2세대이자 가장 많이 사용되는 구현체- http://reactivex.io/- https://github.com/ReactiveX/RxJava • Akka Stream 2.x- 3세대이자 Reactive API ..

    vert.x VS Akka

    Vert.x vs akka from Chang-Hwan Han Reference[1] Vert.x VS Akka (https://java.libhunt.com/project/vertx/vs/akka)[2] Why we chose Akka for our cloud device solution(https://techblog.king.com/why-we-choose-akka-for-our-cloud-device-solution/)[3] Difference in message-passing model of Akka and Vert.x(http://stackoverflow.com/questions/21481238/difference-in-message-passing-model-of-akka-and-vert-x)[..

    리액티브 프로그래밍이란 무엇입니까? What is reactive programming?

    리액티브 프로그래밍이란 무엇입니까? What is reactive programming?이 글은 영어 글에 대해 번역한 글입니다. 일부 오역이 있을 수 있습니다. 원본 : https://medium.com/reactive-programming/what-is-reactive-programming-bc9fa7f4a7fc#.j3uzfx76t 리액티브 프로그래밍이란 무엇입니까?Reactive (프로그래밍 패러다임과 그이면의 동기)를 이해하려면 개발자와 기업이 직면한 과제를 단 10년 만에 직면한 과제와 비교하는 것이 도움이됩니다.개발자와 기업을 위한 두 가지 주요 변화는 다음과 같습니다.하드웨어의 발전인터넷모든 개발자가 직면하게 될 문제를 해결하기 위해서는 직업의 역사를 탐구해야합니다. 왜 지금 상황이 다른가요..

    1. 소프트웨어 패러다임 - 성능 그리고 동시성

    함수형 프로그래밍(functional programming)이나 리액티브 프로그래밍(reactive programming) 또는 함수형 리액티브 프로그래밍(functional reactive programming)에 대한 관심이 뜨겁다. 이러한 소프트웨어 패러다임에 있어서 늘 나오는 이야기는 비슷하다. 멀티 코어의 시대와 멀티 스레드 프로그래밍의 어려움과 문제점들이 이야기되고 모바일 시대와 IoT로 인해서 늘어나는 트래픽양이 이야기된다. 결론적으로 내가 내린 결론은 이러하다. 이러한 패러다임의 변화는 물론 개발의 편리성이나 이점들도 있지만 결국은 현대의 하드웨어에 맞춰서 소프트웨어의 성능을 최대한으로 끌어내기 위한 것이다. 성능의 중요성은 대형 서비스일수록 매우 중요하다. 페이스북이나 아마존 라인, 트위..

    동시성(Concurrency) vs 병렬성(Parallelism)

    동시성(Concurrency) 논리적인 용어동시에 실행되는 것처럼 보이는 것싱글 코어에서 멀티 스레드를 동작시키기 위한 방식하지만 멀티 코어에서도 동시성은 사용 가능함코어 수에 따른 방식보다는 작업 방식에 대한 부분인데 굳이 이해하기 좋고 좁게 보자면 이렇게 이해할 수 있을꺼 같음멀티 태스킹을 위해 여러 개의 스레드가 번갈아가면서 실행되는 성질동시성을 이용한 싱글 코어의 멀티 태스킹은 각 스레드들이 병렬적으로 실행되는 것처럼 보이지만 사실은 번갈아가면서 조금씩 실행되고 있는 것 병렬성(Parallelism) 물리적인 용어실제로 작업이 동시에 처리되는 것멀티 코어에서 멀티 스레드를 동작시키는 방식한 개 이상의 스레드를 포함하는 각 코어들이 동시에 실행되는 성질병렬성은 데이터 병렬성(Data parallel..