lsb***
2025-05-30

좋은 코드엔 프로그래밍 패러다임의 경계가 없다! 복잡한 문제를 해결하기 위해 객체지향, 함수형, 명령형을 자유롭게 넘나들며 설계하고 구현하는 법. 견고한 코드, 유연한 문제 해결을 위한 멀티패러다임 프로그래밍의 모든 것
“한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.”
- 1장: 책은 현대 프로그래밍 언어가 멀티패러다임으로 발전하게 된 시작점과 교착점을 이야기하며 시작한다.
- 2장: LISP 라는 함수형 프로그래밍 언어로 함수형 언어의 장점, 타입 추론, 함수 타입, 제네릭 개념과 활용 방법을 알아본다. 그리고 메타 프로그래밍이란 무엇이고, 그 역할은 무엇인지 논의한다.
- 3장: 코드, 객체, 함수의 관계와 IP(명령형), OOP(객체지향), FP(함수형) 각각에서 어떻게 사용되는지 설명한다. 이 장에서는 하스켈 언어가 나오며 지연 평가, Generator, Iterator, 합성을 구현하고 활용하는 방법에 대해 배운다.
- 4장: 비동기 프로그래밍의 중요성과 다양한 모델을 알아보며, 비동기 작업의 결과를 값으로 다루며 가독성과 유지보수성을 높이는 방법을 배우며 비동기에서의 지연 평가 방법도 알아본다.
- 5장: 실전 함수형 프로그래밍에 대해서 배워본다. 함수형으로 알고리즘 문제 풀기, 백엔드 프로그래밍(스케줄러), 리스트 프로세싱 패턴화를 통해 실전 감각을 익혀본다. 이 장에서 마플코퍼레이션 현우님의 FxTS 라이브러리가 나온다! 얼마나 기쁠까.. 내 책에 같은 회사 동료분이 개발한 우리 회사의 라이브러리를 싣는 느낌은..!?
- 6장: HTML 템플릿 엔진, 동시성 핸들러를 만들면서 여러 패러다임을 조합한 프로그래밍을 배운다. 객체지향, 함수형, 명령형을 언제 어느 상황에서 조합해야 하는지 명확한 가이드를 받을 수 있었다.
- 7장: Setting App, Todo App을 만들고 발전시켜보면서 객체지향설계를 기반으로 한 프런트엔드 개발과 멀티패러다임 프로그래밍 패턴을 배워 볼 수 있다.
저자의 생각 흐름을 읽으며, 소통하는 것 같은 느낌
저자분이 독자와 소통하는 것 같은 느낌으로 [왜 ~하지 않을까?], [가상의 예시] 등을 들어서 왜 그렇게 하지 않았는지에 대한 설명을 위한 빌드업을 느낄 수 있었다.
반복적 개념 요약
명령형 방식(IP), 객체지향적 방식(OOP), 함수형 방식(FP)가 어떻게 다른지 앞에 나왔던 부분을 반복적으로 요약해주기도 하였다.
Promise의 발전 과정
JS/TS에 필수적인 Promise가 ES의 역사와 함께 어떻게 발전해왔나 알아볼 수 있었다.
Java로 치면 Future, CompletableFuture 등을 예로 들 수 있을 것 같다.
연습문제 구성
많지는 않았지만, 코드를 따라치기에 지루하셨던 분들을 위한 연습문제도 제공된다.
ChatGPT 사용 후 개선
저자님이 현업에서 ChatGPT한테 어떻게 프롬프트를 하고, 결과물을 어떤 방식으로 바꿔나가는지 볼 수 있었다.
실전 연습
1~4장에서 배운 개념을 토대로 5,6,7장에서는 이커머스 현업 예시, HTML 템플릿 엔진 개발, Todo App 3단계 개선 등을 통해 멀티 패러다임 프로그래밍을 체화할 수 있도록 설계→구현→반복→개선을 구성하였다.
저는 객체지향과 함수지향 이 두 패러다임이 공존하기는 어렵다고 생각했었지만, 이 책을 통해 개안을 하였습니다!
구조 문제는 객체지향으로, 로직 문제는 함수형으로 해결하기