-
Monad Transformer In Scala
안녕하세요~ 오늘은 Monad Transformer 에 대해서 포스팅해보려고 합니다 ㅎㅎ » 이 글을 좀 더 좋은 가독성으로 읽기 « Monad Transformer 란? 자, 다음과 같이 간단한 코드가 있습니다. case class User(id: String, bestFriendId: String) def getUser(userId: String): Future[Option[User]] = ??? def getBestFriendOfUser(userId: String): Future[Option[User]] = for { userOpt <- getUser(userId) bestFriendIdOpt = userOpt.map(_.bestFriendId) bestFriendOpt <- bestFriendIdOpt match { case Some(bestFriendId) => getUser(bestFriendId) case None => Future.successful(None) } } yield bestFriendOpt getBestFriendOfUser 함수를 보면 Future 와 Option...
-
Purely Functional Business Logic In Scala
안녕하세요~ 오늘은 스칼라에서 비지니스 로직을 purely functional 하게 설계하는 방법에 대해서 소개해볼까 합니다. 함수형 프로그래밍, 스칼라, cats, DDD 에 대해서 알고 계시면 이해가 수월하시겠지만 모르시는 분들을 위해서 기본적인 설명도 같이 첨부해두었습니다. » 이 글을 좀 더 좋은 가독성으로 읽기 « 다루는 내용 cats 의 RWST (ReaderWriterStateT) 를 활용해서 핵심 비지니스 로직을 purely functional 하게 작성하는 방법 그렇게 작성된 비지니스 로직을 DDD (Domain Driven Development) 설계에서 사용하는 방법 비지니스 로직에 대한 고찰 소프트웨어 설계와 개발에 있어서...