모나드
-
[FP In Scala] 외부 효과와 입출력Software Development/Scala 2021. 6. 6. 19:33
모나드와 대수적 자료 형식으로 데이터베이스 조회나 파일 기록 같은 외부 효과를 처리하는 방법에 대해 알아본다. 핵심은 효과와 부수 효과의 구분이다. IO 모나드는 I/O효과를 수반한 명령식 프로그램을 참조 투명성(함수 외부의 영향을 받지 않는 것)을 어기지 않고 순수 함수적 프로그램에 내장하는 방법을 제공한다. 이 모나드는 효과 있는(effectful) 코드, 즉 외부 세계에 일정한 영향을 미쳐야 하는 코드를 프로그램의 나머지 부분과 명확히 분리한다. 또한 효과 있는 계산의 서술(description)을 순수 함수를 이용해서 계산하고, 그 서술을 개별적인 해석기를 이용해서 실행함으로써 실제로 효과를 수행한다는 것. 이는 명령식 프로그래밍을 위한 내장 영역 국한 언어(embedded domain-speci..