Haskell의 **Monad(모나드)**는 처음 접하면 마치 "저주"처럼 느껴질 수 있지만, 사실 핵심 아이디어는 아주 단순합니다. 모나드는 **"어떠한 값을 맥락(Context) 속에 넣고, 그 맥락을 유지하면서 계산을 이어가는 방법"**에 대한 표준입니다.1. 모나드를 이해하는 비유: "포장된 선물"모나드를 이해하기 위해 세 가지 구성 요소를 선물 상자에 비유해 보겠습니다.포장된 값: 일반적인 값(예: 5)이 아니라, 어떤 상태나 위험 요소가 포함된 상자 안에 들어있는 값(예: Maybe 5)입니다.포장지(맥락): 값이 처한 상황입니다.Maybe: "값이 없을 수도 있음"이라는 맥락IO: "외부 세계와 상호작용함"이라는 맥락[] (List): "값이 여러 개일 수 있음"이라는 맥락연결 고리 (>>=..