😁오늘 배운 내용

Currying? 커리? 커링? 카레냐?

함수형 프로그래밍 수업을 들으면서 go 함수와 pipe, reduce함수를 이해하느라 굉장히 애를 먹었는데, 그 과정에서 애를 먹었던 개념이 커링이라는 개념이다. 정말 세상에는 똑똑한 사람들이 많고, 인터넷에 자신들의 지식을 잘 정리해서 공유해주시는 분들이 많다. 이 분들이 작성한 글 덕분에 나도 커링에 대해 조금 알 것 같다.

커링을 이해하는데 아래 두 링크가 큰 도움을 주었다. 꼭 읽어보자!
https://ko.javascript.info/currying-partials

https://sujinlee.me/currying-in-functional-javascript/

결국 커링은 n개의 인자를 받아야 하는 함수를 쪼개서 1개의 인자를 받는 n개의 함수로 쪼개는 것이다.
각각의 함수들은 다음에 실행할 함수를 리턴하고, 리턴된 함수는 다음 인자를 받아 실행되며 또 그 다음에 실행될 함수를 리턴하는 식으로 꼬리에 꼬리를 물면서 실행되어 결국 원하는 결과값을 얻게 된다.

😂느낀점

밀린 강의를 들으며 실제로 코드를 씹고 뜯고 맛보고 즐기는 과정을 통해, 점점 함수형 프로그래밍의 매력에 빠지게 되는 나를 발견하게 된다. 함수의 높은 재사용성과 코드가 간결해지는 점이 가장 큰 매력으로 다가왔다. 프로그래밍 패러다임에는 우위가 없지만, 코드의 유지보수성 면에서는 함수형 프로그래밍이 유리하지 않을까? 그래서 협업 시에도 함수형 프로그래밍으로 코드를 작성하면토록 하면 좋을 것 같다는 생각이 들었다.

profile
인사이트 있는 개발자가 되고 싶어요

0개의 댓글