쏙쏙 들어오는 함수형 코딩 서평

심플한 코드로 복잡한 소프트웨어 길들이기

쏙쏙 들어오는 함수형 코딩
코드숨 스터디(2022.07.27 - 2022.09.14) 두달 간 스터디를 진행했다. 대규모 스터디였고 매 시간 질문과 답, 실습 등을 수행하며 책을 내 것으로 만드려고 노력했다.




이 책은 무엇을 말하고 있지? 🤔

함수형 언어가 아닌 언어로 함수형 코딩을 가르쳐준다. 복잡한 소프트웨어를 심플한 코드로 길들이기 라는 부제목을 갖고 있다. 처음에 복잡한 소프트웨어를 제시하고 변경에 용이한 불변성 데이터를 만드는 법을 차근히 설명해준다. 액션, 계산, 데이터란 무엇인지, 고차함수, 일급함수는 무엇인지 원론적인 이야기보단 실용적인 부분이 많이 담겨있다. 예제들과 연습문제로 학습에 이해를 도와준다. 책을 읽는 것으로 끝내면 아는 것 같은 착각에 빠지는데 반드시 예제를 풀어보고 안보고 책에서 해결했던 과정을 실습을 꼭 해보길 추천한다.


무엇을 알게되었지? 💡

함수형 사고는 함수형 프로그래머가 소프트웨어 문제를 해결하기 위해 사용하는 기술과 생각을 말한다. 그 중 가장 중요한 2가지는 다음과 같다.

  1. 액션과 계산, 데이터를 구분해서 생각하는 것
  2. 일급 추상

함수형 사고가 무엇이고 어떤 것이 중요한지 알게되었다.

함수형 코딩에서 제일 먼저 하는 것은 액션, 계산, 데이터가 무엇이고 어떻게 구분하는지 왜 구분하는지 다룬다. 함수형 코딩에서 액션, 계산 데이터로 구분하는 이유는 무엇일까? 쉽게 다룰수 있는 부분과 조심히 다뤄야 할 부분을 명확하게 하기 위해서이다.

객체지향 설계, 함수형 코딩 등 이런 패러다임들은 결국 변경이 쉬운가? 에 집중하고 있다. 함수형 코딩도 변경성에 초점을 맞춰서 데이터, 계산, 액션으로 분류해내어 데이터의 불변성을 보장하고 변경하기 쉬운 코드로 만드는 방법을 알려준다. 액션, 계산, 데이터로 구분해내는 법, 계층형 설계, 타임라인 등을 배웠다. 뒤로 갈수록 내용이 어려웠지만 액션, 계산, 데이터로 구분하는 법을 알게 된 것만으로도 큰 수확이었다.

계층형 설계, 타임라인으로 코드가 어떤 흐름인지 분석하는 법을 배웠다. 디버깅만으로는 발견하기 힘든 버그, 재현하기 어려운 버그들을 타임라인으로 문제를 찾는 법을 알았다.

일급함수, 고차함수가 어떤 것인지 잘 몰랐었는데 책에 적절한 예시와 설명, 활용 예제까지 계속해서 나와서 알게되었다.


무엇을 할 수 있게 되었지? 🔍

알고리즘을 풀때에도 여기서 배운 액션, 계산, 데이터로 구분하기 계층형 설계, 타임라인으로 코드가 어떤 흐름인지 분석하기 등을 유용하게 적용할 수 있었다.

코드를 짤 때 부수효과가 없는지, 불변성 데이터를 지키고 있는지, 액션을 더 작게 쪼갤 수는 없는지 한번 더 생각하게 되었다. 후반부는 어려워서 이해를 잘 못했다. 다시 한 번 필요한 부분들을 읽어봐야겠다.


Action! 🎈

  • 업무에서 계산, 데이터, 액션으로 리팩토링해보기
  • 업무에서 타임라인을 적용해 분석해보기



후기 📝

함수형 코딩을 실무관점에서 차근히 학습할 수 있게 쓰여진 책이다. 후반부에 난이도가 급 상승(?)한것처럼 어려웠다. 설명이 약간 불친절한 느낌도 있었다. 이와 같은 책들을 가장 유용하게 학습하려면 실습이 최고인거 같다.

results matching ""

    No results matching ""