Gleam에서 continuation으로 효과 추상화하기
Abstracting Effects with Continuations
에러를 값으로 표현하는 Result와 비동기 연산을 나타내는 Promise는 각각 계산의 특정 측면을 추적합니다. 이 글은 continuation을 사용해 계산의 세부 사항을 일반화하는 방법을 Gleam 코드로 보여줍니다. 동일한 비즈니스 로직을 동기, 실패 가능, 비동기 등 다양한 실행 환경에서 재사용할 수 있도록, fetch 함수를 continuation으로 감싸는 패턴을 소개합니다. 각 환경에 맞는 runner를 구현하여 로직과 효과를 분리하는 방법을 설명합니다.
continuation을 사용한다는 것은 "값을 어떻게 얻을지는 모르겠지만, 얻으면 다음에 무엇을 해야 하는지는 알고 있다"는 뜻입니다.