ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Functional Thinking (함수형 사고)
    후기/Book Review 2017. 6. 15. 01:54

      나프다의 치즈님께서 읽어본 책이라 하여 나도 한 번 사서 읽어 보았다. 하지만 책내용이 그렇게 호락호락 하지만은 않다. 함수형 프로그래밍이 뭔지 일단 찾아보자.


    함수형 프로그래밍은 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다. 명령형 프로그래밍에서는 상태를 바꾸는 것을 강조하는 것과는 달리, 함수형 프로그래밍은 함수의 응용을 강조한다. 함수형 프로그래밍은 1930년대에 계산가능성, 결정문제, 함수정의, 함수응용과 재귀를 연구하기 위해 개발된 형식체계인 람다 대수에 근간을 두고 있다. 다수의 함수형 프로그래밍 언어들은 람다 연산을 발전시킨 것으로 볼 수 있다.

      위키: 함수형 프로그래밍



      읽어도 딱히 잡히는 것이 없다. 그 뒤로 순수한 함수, 익명 함수, 고계 함수 등이 나오는데 다 좋은 말이고 필요한 기능들임에 틀림없다. 그치만 익명 함수의 람다 말고는 딱히 잘 모르겠다.


    ...


      그간 거의 자바만 써온 나로서는 함수형프로그래밍은 다소 생소했다. 이제야 좀 실무에서 자바8의 람다와 스트림, 메서드 레퍼런스 등을 적용하고 사용하고 있는 나로서는 책의 내용을 다 이해하기 어려웠다. 뭔가 장점들이 엄청 많다고 하는데 안써봐서 그런지 제대로 이해를 못해서 그런지 체감이 되지 않는다. 자바의 람다와 스트림의 장점들을 조금씩 이해하고 있는 단계라 그런가... 어려운 부분들은 대충 읽으며 넘어갔다. 시간날 때 다시 읽어봐야 할것 같다. 


      좋았던 점은 책의 예제들이 자바8, 그루비, 스칼라, 클로저 등 다양한 언어들로 보여준다. 그래서 한 가지 언어에서 이해가 잘 되지 않더라도 다른 언어들의 구현들과 비교해 보면서 이해하는데 조금이나마 더 도움이 되었다. 


      JVM 언어 중에 그나마 스칼라가 가장 핫한거 같고, 곧 회사에서 사용한다고 하니 스칼라 공부하면서 함수형사고를 키워야겠다. 요즘 같이 빨리 변하는 시대에 한가지 언어만으로는 경쟁력 있게 살아남을 수 없다. 마지막 장에 나와있듯이 폴리글랏 프로그래밍을 함으로써 여러 언어들의 장점들을 취해서 사용할 줄 아는 개발자가 되어야겠다.


      더 찾아볼 것들 : 커링, 고계함수, 일급시민, 메타프로그래밍, 불변객체


    함수형 사고, 한빛미디어(닐 포드)


    댓글

Designed by Tistory.