1. 모나드란?
1) 개념 설명
- 값을 감싸고 있는 컨테이너 또는 wrapper 라고 할 수 있다.
- 모나드는 순수 함수형 프로그래밍에서 부작용을 관리하고 값을 안전하게 조작하는 방법을 제공하는 디자인 패턴
- 함수형 프로그램의 핵심 개념 중 하나로써, 코드의 안정성과 가독성을 높여준다.
2) 주요 특징
- 값을 감싸고 있음 : 값을 감싸고 있기에 값에 대한 안전한 조작과 부작용을 효율적으로 처리 가능
- 평면화 : 중첩된 컨테이너의 값을 단인 컨테이너로 평면화 시키는 기능 제공. 이를 통헤 중첩된 컨테이너를 다루는 작업을 간단하게 처리
- 결합성 : 순수 함수 합성이 가능하게 해준다. 여러 개의 함수를 순차적으로 적용하거나 조합할 때 모나드를 사용하면 더욱 간편하고 안전하게 합성할 수 있다.
- 에러 처리 : 모나드는 예외 처리와 오류 처리를 추상화하여 안전한 방식으로 처리하게 도와준다.
2. 모나드 예시
- JavaScript에서 Promise는 모나드의 한 예시이다.
- 비동기 작업의 결과를 감사며, then메서드를 이용해 값을 추출하거나 에러 처리 수행
- 여려개의 Promise를 결함하거나 순차적으로 실행할 수 있어 비동기적인 작업을 효율적으로 처리 가능