평소에 함수형 언어 매니아들이 주장하는만큼 이펙트를 엄격하게 구분하는게 중요하다곤 생각안했는데, local first 앱을 만들다가 네트워크 요청을 포함한 IO와 그렇지 않은 IO를 구분해야하는 이유를 찾았다. 앱의 초기화 로직에 네트워크 요청이 숨어있으면 API 서버 장애시 앱이 아예 안켜지는 문제가 있다. 방금 이거랑 관련된 버그 찾느라 시간을 많이 썼다.

좀더 부연설명을 하자면, 앱 실행시에 API 서버에 네트워크 요청을 보내는건 괜찮다. 하지만 그 요청에 대한 응답을 기다리도록 하면 안된다. API 서버에 장애가 났을때도 앱이 켜지긴 해야하니까 말이다. 그럼 이때, 요청을 보내는 것과 응답을 기다리는걸 구분을 해야하는데, 이건 평범하게 이펙트를 분리하는걸론 달성 못할것이다. 우리가 effectful하다고 하는 것도 결국 함수에 대한 설명으로, 함수는 인자를 주는것과 결과를 받는것이 결합되어 있다. 이 둘을 송신과 수신으로 분리해놓은 세션 타입을 사용해야 내가 원하는 바를 정확히 기술할수 있을거 같다.

3

❤️

1 person reacted.

지금까지 다루어 봤던 언어는 아래와 같습니다. MSX Basic Z80 Assembly Pascal GW-Basic C Macromedia Director Visual Basic PHP Flash Actionscript C++ Javascript

그리고 지금은, 하스켈을 비즈니스에 쓰려고 몇 년간 노력하고 있습니다. 지금 상태는, 하스켈 자체를 연구하는 게 아니라, 하스켈 (혹은 함수형 언어) 이해가 어려운 이유를 연구하는 아마추어 연구가쯤 되어버렸습니다. 하스켈 주제로 블로그를 운영 중이지만, 아직은 하스켈 프로그래머라고 자신 있게 말하진 못하고 있습니다. 가끔 이해에 도움이 될만한 측면이 보이면, 가볍게 아이디어를 여러 SNS에 올려보곤 하는데, 그다지 프로그래머에게 쓸모 있는 내용이 포함되진 않는 것 같습니다.

😲

1 person reacted.

Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!

Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다.

FedifyHolloBotKit、そしてこのサイト、Hackers' Pubを作っています。

嗨,我是 FedifyHolloBotKit 以及這個網站 Hackers' Pub 的開發者!