본문 바로가기
카테고리 없음

[함수형 프로그래밍] 모나드

by hbIncoding 2023. 7. 26.

1. 모나드란?

 1) 개념 설명

  • 값을 감싸고 있는 컨테이너 또는 wrapper 라고 할 수 있다.
  • 모나드는 순수 함수형 프로그래밍에서 부작용을 관리하고 값을 안전하게 조작하는 방법을 제공하는 디자인 패턴
  • 함수형 프로그램의 핵심 개념 중 하나로써, 코드의 안정성과 가독성을 높여준다.

 2) 주요 특징

  1. 값을 감싸고 있음 : 값을 감싸고 있기에 값에 대한 안전한 조작과 부작용을 효율적으로 처리 가능
  2. 평면화 : 중첩된 컨테이너의 값을 단인 컨테이너로 평면화 시키는 기능 제공. 이를 통헤 중첩된 컨테이너를 다루는 작업을 간단하게 처리
  3. 결합성 : 순수 함수 합성이 가능하게 해준다. 여러 개의 함수를 순차적으로 적용하거나 조합할 때 모나드를 사용하면 더욱 간편하고 안전하게 합성할 수  있다.
  4. 에러 처리 : 모나드는 예외 처리와 오류 처리를 추상화하여 안전한 방식으로 처리하게 도와준다.

2. 모나드 예시

  • JavaScript에서 Promise는 모나드의 한 예시이다.
    • 비동기 작업의 결과를 감사며, then메서드를 이용해 값을 추출하거나 에러 처리 수행
    • 여려개의 Promise를 결함하거나 순차적으로 실행할 수 있어 비동기적인 작업을 효율적으로 처리 가능