이 글은 Scala Type Level Programming 시리즈물인 Easy Scalaz 의 3 번째 글입니다. Monad Transformer 지난 시간엔 State Monad 를 다루었습니다. 그러나 State 만 이용해서는 유용한 프로그램을 작성할 수 없습니다. 우리가 다루는 연산은 Option, Future 등 다양한 side-effect 가 필요하기 때문인데요, 서로 다른 Monad 를 조합할 수 있다면 좋겠지만, 아쉽게도 Functor, Applicative 와 달리 모나드는 … Continue reading Easy Scalaz 3 – Monad Transformer
Easy Scalaz 2 – State Monad
이 글은 Scala Type Level Programming 시리즈물인 Easy Scalaz 의 2 번째 글입니다. State Monad State 를 설명하는 수많은 문구들이 있지만, 타입만큼 간단한건 없습니다. State[S, A] :: S => (S, A) A state transition, representing a function 즉 S 를 받아 (S, A) 를 돌려주는 함수를, 타입클래스 State[S, A] 로 표현합니다. 더 엄밀히는, (scalaz 구현에서는) … Continue reading Easy Scalaz 2 – State Monad
Easy Scalaz 1 – Type Classes
이 글은 Scala Type Level Programming 시리즈물인 Easy Scalaz 의 1 번째 글입니다. About Type Classes 프로그래머가 하는 행위를 극도로 단순화해서 표현하면 저수준 의 데이터를 고수준 데이터로 변환하는 일입니다. 여기서 저수준이란, Stream, Byte, JSON, String 등 현실세계의 데이터를, 고수준이라 함은 비즈니스 로직, 제약조건 등이 추가된 도메인 객체, 모델 등 데이터를 말합니다. 이로 인해 저수준을 고수준으로 … Continue reading Easy Scalaz 1 – Type Classes
Reactive Programming in Scala 5 – Actor
Coursera 의 Reactive Programming In Scala 수업 중 5 번째 챕터입니다. Actor 는 원래 1973년에 인공지능 연구를 위해 개발되었는데, 1995년에는 Erlang/OTP 에서 텔레커뮤니케이션 플랫폼을 위해 사용되기도했다. 2006년에는 스칼라 스탠다드 라이브러리로 구현되었고, 2009년에는 Akka 가 만들어졌다. Why Actors? 액터가 왜 필요한지를 기존의 스레드를 사용하는 방법과 비교해 알아보자. 지난번에 배웠던 bank account 예제를 들고오면 class BankAccount { private … Continue reading Reactive Programming in Scala 5 – Actor
Reactive Programming in Scala 4 – Observable, Rx, Scheduler
Coursera 의 Reactive Programming In Scala 수업 중 4 번째 챕터입니다. 지난시간엔 단일 데이터에 대해 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: Try[T] => … Continue reading Reactive Programming in Scala 4 – Observable, Rx, Scheduler

