스터디를 하면서 느낀점 및 맺음말

조동호

함수형 프로그래밍에 큰 관심이 있었던 것은 아니다. Google의 Guava Library를 사용하면서 코드의 가독성이라는 주제에 대해 생각하기 시작하게 되었고, Java 외의 다른 언어들은 어떻게들 쓰고 있나 보기 시작하면서 자연스럽게 Scala와 함수형 프로그래밍으로 관심이 옮겨가게 되었던 것 같다. Functional하게 작성된 코드는 그렇지 않은 코드에 비해 확실히 읽기가 수월하다. 지금 생각해보면 상태 변경이 없는 코드가 더 읽기 쉬운게 당연한 거지만 그때는 그런 생각을 못했었다. 어떤 코드는 잘 읽히는데 왜 어떤 코드는 볼 때마다 헷갈리는 걸까. 그런 작은 의문에서 시작했던 것이 함수형 프로그래밍에 대한 공부에까지 이르렀다. 함수형 프로그래밍에 대해 공부하는 것은 즐거운 일이었다. 크게 의식하지 않고 사용했던 함수들을 한번 더 들여보다 그들이 지닌 함의를 깨달아 가는 과정은 그 나름의 매력이 있는 일이었다. 큰 깨달음이나 완벽한 이해를 얻지 못해도 좋다. 당장은 어렵더라도 그러한 관심과 노력이 이어지는한, 함수형 프로그래밍 언어를 점점 더 함수적으로 사용할 수 있게 되리라 믿는다.

김진억

함수형 프로그래밍이 장점이 많음에도 불구하고 많은 개발자들이 어려워 하고 꺼려하는 이유는 수학적 이론을 기반으로 한 추상적인 개념들 때문이라 생각된다. 카테고리 이론, 펑터, 모노이드, 모나드 등등 이 모든 개념들이 생소하기도 하지만, 검색 했을 때 그 결과 내용이 더 이해하기 어려워 많은 사람들을 좌절에 빠트리는 것 같다. 수학 이론을 기반으로 했기 때문에 수학적 개념들을 이해하고 함수형 프로그래밍에 접근한다면 더 도움이 되겠지만, 굳이 이를 이해하지 않아도 접근하는데 크게 문제가 되지 않으리라 생각된다. 함수형 프로그래밍에서는 함수의 추상화를 통해서 함수를 재사용 함으로써 효율적인 프로그래밍을 할 수 있다. 예전에 중,고등학교에서 수학을 배울때 공식을 배우고, 이 공식을 적용해 답을 얻거나 또 다른 결과를 유추할 수 있었던 것 처럼, 함수형 프로그래밍에서의 추상화(Monoid, Functor, Monad 등등)를 통해, 또 다든 결과를 얻거나 또 다른 함수들을 만들어 효율적인 프로그래밍을 할 수 있다. 추상적인 용어에 너무 집착해서 좌절을 맛보기 보다는 (라이프니츠의 모나드, 카테고리 이론을 따라갔다가 크게 낭패를 봤다는…), 단순하게 받아들이고, 코드, 함수의 공통점, 법칙을 기반으로 이것들로 인해 얻을 수 있는 이점들을 배우고 사용하면 자연스럽게 함수형 프로그래밍에 익숙해지지 않을까 생각된다.

김경범

처음 함수형 프로그래밍에 대해서 관심을 갖게 된 계기는 Play framework를 스칼라로 공부면서 시작되었다. 처음 개발자로 직장을 구하고 새로운 것에 대한 호기심으로 시작한 스터디였다. 아직도 그때 놀랐던 감정이 남아 있다. for 루프 말고 다른 방식으로 컬렉션을 다루는 방법이라니. 그때 사용했던 함수가 바로 map, flatMap, reduce 이다. 그렇게 스칼라를 공부하기 시작한 것도 벌써 3년이 지났다. 그리고 이제서야 함수형 프로그래밍에 대해서 공부하게 되었다. 그리고 위에 나열한 함수들이 모나드, 모노이드, 펑터 그리고 이 모든 것들은 총칭하는 범주론(category theory) 이라는 엄청난 이론에 근거한 것임을 깨닫게 되었다. 3년 동안 스칼라를 사용하면서 그저 컬렉션을 다루는 함수로만 생각했던 것이 새로운 정의로 넘어가는 순간에 깨달음은 굉장히 달콤했다. 물론 그 과정이 엄청난 에너지를 소모했지만 말이다. 함수형 프로그래밍을 공부하면서 느낀 점은 이론 만큼이나 어려운 설명들이 계속 되었지만 한장씩 넘어갈 때마다 지식이 쌓이는 느낌이 좋았던 것 같다. 이제 스터디가 끝나고 더 이상 이러한 이론을 떠올리며 하루하루를 보내지 않아도 된다는 것이 너무나 감사할 다름이다. 나중에 함수형 프로그래밍에 대해서 공부할 예정이고, 스칼라에 대해서 조금 알고 있다면 이 책을 강력하게 추천한다. 그리고 꼭 긴 기간을 가지고 오랜기간 되새김질을 통해 탐험하면 좋겠다는 조언도 하고 싶다.

5개월간에 긴 스터디임에도 불구하고 함께 해준 김진억님, 김지수님, 김준섭님, 남석현님, 고재도님, 이창언님, 조동호님, 정진태님, 김소연님, 양원석님께 감사드립니다. 이렇게 열정적이고 참여율이 높은 스터디는 3년 동안 처음이었습니다. :)

results matching ""

    No results matching ""