순차적으로 a처리 > b처리 > ... > f처리 를 한다면
명령형 프로그래밍이면 if else, try catch로 범벅되지.
1. 복잡한 흐름을 갖거나 연쇄적인 처리가 필요한 경우
실제처리 보다 에러, 흐름제어 코드가 더 많고 복잡해지기도 해.
2. 게다가 함수 결과의 타입이나 값이 밖으로 나오는데
함수에 국한되는 내용이 밖으로 나오는건 좋지않아.
엄일히 말하연 그것도 로직이 스코프 밖으로 튀어나오는거라 할 수 있거든.
대신 각 함수의 입출력을 값이 갖는 특성
\'값이 있다/없다, 성공/실패, 성공/에러\' 타입으로 감싸면
연쇄처리 + 에러핸들링 + 흐름제어가 단순해지고
외부로 유출되는 로직도 줄고 함수간 의존성도 줄지.
요즘처럼 동기+비동기+연쇄처리가 기본인 환경에선 필수지.
간추리면 패턴 매칭, 모나드로 개이득.
- 비동기, 에러핸들링, 리팩토링 위드 모나드 이런 키워드로 검색해 보면 잘 설멍된 자료 있을테니 참고해.
명령형 프로그래밍이면 if else, try catch로 범벅되지.
1. 복잡한 흐름을 갖거나 연쇄적인 처리가 필요한 경우
실제처리 보다 에러, 흐름제어 코드가 더 많고 복잡해지기도 해.
2. 게다가 함수 결과의 타입이나 값이 밖으로 나오는데
함수에 국한되는 내용이 밖으로 나오는건 좋지않아.
엄일히 말하연 그것도 로직이 스코프 밖으로 튀어나오는거라 할 수 있거든.
대신 각 함수의 입출력을 값이 갖는 특성
\'값이 있다/없다, 성공/실패, 성공/에러\' 타입으로 감싸면
연쇄처리 + 에러핸들링 + 흐름제어가 단순해지고
외부로 유출되는 로직도 줄고 함수간 의존성도 줄지.
요즘처럼 동기+비동기+연쇄처리가 기본인 환경에선 필수지.
간추리면 패턴 매칭, 모나드로 개이득.
- 비동기, 에러핸들링, 리팩토링 위드 모나드 이런 키워드로 검색해 보면 잘 설멍된 자료 있을테니 참고해.
함수 붐은 온다..! - dc App