[도서리뷰] 제이펍 '쏙쏙 들어오는 함수형 코딩(Grokking Simplicity)'

jeipub-manning-grokking-simplicity

이 포스트는 제이펍에서 출간한 '쏙쏙 들어오는 함수형 코딩(Grokking Simplicity)'을 읽고 작성한 서평입니다.

INTRO

혼자 공부를 하면서 가장 어려운 부분은 내가 작성한 코드의 객관적인 평가를 받는 부분입니다. 최근에는 개발자 커뮤니티나 github 같은 환경들을 이용해 일부 자신의 코드를 평가받고 개선하고 있으나, 내가 작성한 코드가 평가를 받기 위한 최소한의 자격은 갖췄는지 의구심은 쉽게 해결되지 않습니다.

해당 도서에서는 이런 분들을 위해 코드를 작성할 때 지켜야 하는 규칙들을 소개하고 있으며, 나아가 실제 프로그램 개발 및 협업을 위해 필요한 개념(분산 시스템, 추상화, 계층형 설계, 디자인 패턴 등)들을 자세히 설명하고 있습니다.

도서 소개

소프트웨어의 복잡성을 다루기 위해 꼭 읽어야 할 책

이 책은 함수형 사고를 통해 의도하지 않은 복잡성이 코드 전체로 퍼져나가는 것을 막고 프로그래밍을 간단하게 하는 법을 담았다. 시스템의 상태를 바꾸는 액션과 그렇지 않은 계산을 구분하는 법을 익히고, 액션을 계산으로 리팩터링하여 단순한 소프트웨어로 만드는 방법을 배운다. 또한, 비동기와 멀티스레드를 사용할 때 발생하는 시간에 관한 문제를 해결하는 방법을 알려준다. 반복적인 코드를 없애고 표현력을 높이는 방법도 알 수 있다. 더 좋은 소프트웨어를 만드는 데 많은 영감을 줄 것이다.

jeipub-manning-grokking-simplicity

대상 독자

  • 2~5년 정도 소프트웨어 개발 경험이 있는 현업 종사자
  • 간단한 시스템을 만들고 있지만 큰 시스템을 다루는 것에 어려움을 느끼는 개발자

jeipub-manning-grokking-simplicity

목차

  1. 쏙쏙 들어오는 함수형 코딩에 오신 것을 환영합니다
  2. 현실에서의 함수형 사고

PART I 액션과 계산, 데이터

  1. 액션과 계산, 데이터의 차이를 알기
  2. 액션에서 계산 빼내기
  3. 더 좋은 액션 만들기
  4. 변경 가능한 데이터 구조를 가진 언어에서 불변성 유지하기
  5. 신뢰할 수 없는 코드를 쓰면서 불변성 지키기
  6. 계층형 설계 I
  7. 계층형 설계 II

PART II 일급 추상

  1. 일급 함수 I
  2. 일급 함수 II
  3. 함수형 반복
  4. 함수형 도구 체이닝
  5. 중첩된 데이터에 함수형 도구 사용하기
  6. 타임라인 격리하기
  7. 타임라인 사이에 자원 공유하기
  8. 타임라인 조율하기
  9. 반응형 아키텍처와 어니언 아키텍처
  10. 함수형 프로그래밍 여행에 앞서

책을 읽고

▶ 주관적인 평점 : 4.0점 / 5.0점


해당 도서의 대상 독자는 프로그래밍에 대한 이해가 있는 소프트웨어 개발자이며, 자바스크립트(javascript) 언어로 코드가 설명되어 있어 최소한의 프로그래밍 언어 한 종류에 대한 이해가 있어야 합니다. 함수형 프로그래밍의 개념부터 자세히 설명하고 코드로 이해를 돕는 구조라 자바스크립트(javascript)를 다루지 않더라도 설계된 코드의 구조 및 흐름을 이해하는데는 부족하지 않습니다.

저의 경우, R과 Python을 주로 다루면서 타 언어도 기본 지식 및 경험은 있었기에 크게 어렵지 않게 학습할 수 있었으나, 가끔 자바스크립트(javascript) 언어에 강한 종속성이 있는 함수들은 한번 더 검색해 가며 이해할 수 있었습니다.

개인적인 생각으로는 분석가보다 개발자분들에게 더 적합한 책이며, 특히 프로그램을 만들어야 하거나 서비스 개발을 업무로 하시는 분들에게는 개념과 절차 그리고 코드 개선에 대한 이해를 높일 수 있는 좋은 기회가 될 것입니다.

jeipub-manning-grokking-simplicity
▲ 구조 설계 예제 - 이메일 전송하기

jeipub-manning-grokking-simplicity
▲ 계층형 설계 패턴

관련 링크

[1] 출판사 도서 소개 - 쏙쏙 들어오는 함수형 코딩
[2] 예제 Code - manning
[3] 원서 홈페이지