메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

함수형 반응형 프로그래밍: FRP 입문서

ngelm***

|

2017-08-29

함수형 반응형 프로그래밍

함수형 반응형 프로그래밍에 관한 최초의 종합 안내서

  • 저자 : 스티븐 블랙히스 , 앤서니 존스
  • 번역 : 오현석
  • 출간 : 2017-08-01

스티븐 블랙히스/앤서니 존슨의 <함수형 반응형 프로그래밍>을 소개합니다. 최근 커뮤니티에서 Functional Reactive Programming(FRP)에 대한 관심이 증가하고 있으며, 또한 FRP에 대한 토론이 많이 이루어지고 있습니다. 

 

FRP의 정의에 대해 논란이 많습니다만, 이 논란에 대한 내용은 Conal ElliottPaul Hudak가 발표한 Functional Reactive Animation에 정확하게 정의되어 있습니다. 이에 대한 FRP 이슈를 소개한 글을 다음 링크에서 확인하실 수 있습니다.

 

Functional Reactive Programming에 대한 또 다른 매력적인 글로 Conal Elliott이 스택오버플로우에서 `What is functional reactive programming`의 답변이 매우 유명합니다[링크]. 그리고 이 답변을 번역해 놓은 오현석(이 책의 역자)님의 블로그의 글도 링크를 남깁니다. 

 

필자가 윗글에 대한 내용을 모두 이해하긴 아직 내공이 부족한 것 같습니다. 앞으로 꾸준히 학습하다 보면 이해하는 깊이가 더 늘어나겠지요.

 

함수형 반응형 프로그래밍이란?

<함수형 반응형 프로그래밍>의 저자들이 생각하는 FRP의 정의를 요약하면 다음과 같습니다.

 

- FRP는 자주 사용하는 옵저버 패턴을 대치한다. 옵저버 패턴을 리스너나 콜백이라고도 한다.

- FRP는 이벤트 위주의 로직을 조합하므로 조합 가능한 모듈로 코딩하는 방법이다.

- FRP는 다른 방식으로 사고한다. 프로그램을 입력에 대한 반응 또는 데이터의 흐름으로 표현한다.

- FRP는 프로그램 상태를 관리하는 데 질서를 부여한다.

- FRP는 근본적인 방식으로 옵저버 패턴으로 문제를 해결하려고 노력하는 사람이라면 결국에는 FRP를 발명하게 될 것이라 생각한다.

- FRP는 일반적인 프로그래밍 언어의 경량 소프트웨어 라이브러리로 구현된다.

- FRP는 상태가 있는 로직을 위한 완전한 내장 언어(embedded language)라고 볼 수도 있다.

 

<함수형 반응형 프로그래밍> 1장의 내용 중 일부분

 

이 책에서 다루는 내용은?

<함수형 반응형 프로그래밍>은 BSD 라이선스의 Sodium(https://github.com/SodiumFRP) 라이브러리를 제작한 분들이 작성한 책입니다. 책 내용 중 많은 부분에서 Sodium을 활용하여 FRP의 이해를 돕고 있으며, 예제에서 Sodium을 활용하고 있습니다. 이 책을 보기 전에는 Sodium 라이브러리에 대해 전혀 모르고 있었는데, 이 책을 통해 좋은 라이브러리를 하나 얻은 것 같습니다. Java를 기본으로 설명하고 있기 때문에 FP를 학습할 때마다 느껴지는 언어에 대한 부담은 다소 적을 것으로 생각됩니다.

 

이 책에서 소개하는 내용을 하나의 글로 소개하는 것은 무리가 있어 걱정이 많았습니다. 하지만 한빛미디어에서 이 책의 내용을 적절하게 구성해서 두 개의 글로 정리해 놓았습니다. 아쉽긴 하지만, 이 글을 소개하며 이 단락의 내용을 마치려 합니다. 대신 앞으로 FRP에 대해 깊이 있는 학습을 통해 FRP와 관련된 글을 작성해 보겠습니다.

 

- FRP로 이벤트 처리의 여섯 재앙 퇴치하기(1/2)

- FRP로 이벤트 처리의 여섯 재앙 퇴치하기(2/2)

 

개인적으로 함수형 반응형 프로그래밍에 관해 관심이 있다거나 혹은 학습하고 싶은 분이라면 꼭 한 번 읽어보는 것을 추천합니다. FRP에 대한 개념 정리부터 다양한 예제를 통해 FRP를 직접 맛볼 좋은 기회를 제공할 것으로 생각합니다.

 

마치면서...

<함수형 반응형 프로그래밍>을 읽고난 후, 처음 든 생각은 "이 책 다시 봐야겠다." 였습니다. 아주 잘 작성된 원고와 멋진 역자님께서 FRP에 대해 소개했지만, 필자의 역량이 부족한 것 같습니다. FRP 입문서라고 소개하고 있지만, 필자는 다소 어려웠습니다. 정확하게 이해한 개념이 30% 정도도 안되는 것 같습니다.

 

이 책의 저자가 참여하고 <함수형 반응형 프로그래밍>에서 다루고 있는 Sodium FRP 라이브러리의 코드를 보며 FRP의 개념에 대해 차분히 이해해야 할 것 같습니다. Sodium 라이브러리는 다양한 언어로 작성되어 있으니 한동안 손을 놓고 있었던 스칼라도 함께 학습하겠다고 다짐해봅니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?