Easy Scalaz 1, State



Comment

State State 를 설명하는 수많은 문구들이 있지만, 타입만큼 간단한건 없습니다. State[S, A] :: S => (S, A) A state transition, representing a function 즉 S 를 받아 (S, A) 를 돌려주는 함수를, 타입클래스 State[S, A] 로 표현합니다. 더 엄밀히는, (scalaz 구현에서는) type State[S, A] = StateT[Id, S, A]…

Read this article

Reactive Message Patterns w/ Actor Model, Chapter 1



Comment

Why Enterprise Software Development Is Hard 엔터프라이즈 소프트웨어를 구현할 때 마주치는 문제점은, 고려해야할 것이 너무나 많다는 점입니다. Physical Tiers Application Servers Software layers Frameworks and Patterns Toolkits Databases Messaging Systems Third-Party Applications ... 이런 요소들로 구성된 complexity stack 의 내부를 잘 살펴보면, 결국 관심사는 command 에 의해 생성된 domain event 를…

Read this article

Reactive Programming 5, Actor



Comment

(http://prabhubuzz.wordpress.com) Actor 는 원래 1973년에 인공지능 연구를 위해 개발되었는데, 1995년에는 Erlang/OTP 에서 텔레커뮤니케이션 플랫폼을 위해 사용되기도했다. 2006년에는 스칼라 스탠다드 라이브러리로 구현되었고, 2009년에는 Akka 가 만들어졌다. Why Actors? 액터가 왜 필요한지를 기존의 스레드를 사용하는 방법과 비교해 알아보자. 지난번에 배웠던 bank account 예제를 들고오면 class BankAccount { private var…

Read this article

Reactive Programming 4, Observable, Rx



Comment

지난시간엔 단일 데이터에 대해 latency 를 지원하는 Future, Promise 에 대해서 알아봤다. 이번에는 컬렉션에서 latency 를 지원하는 방법인 Observable 을 배워보자. One Many Synchronous T/Try[T] Iterable[T] Asynchronous Future[T] Observable[T] From Futures to Observables Future 의 정의를 다시 보면, trait Future[T] { def onComplete[U](f:…

Read this article

Reactive Programming 2, Stateful



Comment

지금까지 우리가 작성한 프로그램은 side-effect free 였기 때문에, time 이 중요한 요소가 아니였다. 무슨말인고 하니, 모든 프로그램은 sequence of actions 에 대해 항상 같은 결과를 주게 되어있었다. 이건 substitution model 에 반영되어 있다. Substitution Model substitution model 을 복습해 보면, 프로그램의 evaluation 은 rewriting 이다. def f(x1, ..., xn) = B;…

Read this article