soulfeve***
2025-05-30

좋은 코드엔 프로그래밍 패러다임의 경계가 없다! 복잡한 문제를 해결하기 위해 객체지향, 함수형, 명령형을 자유롭게 넘나들며 설계하고 구현하는 법. 견고한 코드, 유연한 문제 해결을 위한 멀티패러다임 프로그래밍의 모든 것
"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."
프론트엔드를 하다보면 함수형 프로그래밍에 대해서 조금씩 듣게 된다. 자주는 안듣는데, 용어에서 은연중에 숨어서 아닌척 하는 그런 양상같다. 백엔드를 하다보면 객체지향 프로그래밍이 굉장히 단단하게 자리잡고 있다. 객체와 디자인 패턴을 공부하는게 너무 당연하게 보이는 일이다.
그런데? 그런 생각이 들 때가 있다. 고질라랑 킹콩이 싸우면 누가 이길까와 비슷한 생각? 아이언맨이랑 캡틴 아메리카의 크로스오버처럼 객체지향이랑 함수형이 싸우면 누가 이길까? 누가 더 좋나? 둘이 동시에도 쓰나? 섞이나? 그런 만약에를 해소해주는 책이 이 책이다.
유인동님은 자바 스크립트를 하다보면 한 번씩 듣게되는 사람인 것 같다. 인프런의 함수형 프로그래밍 강의로 엄청 유명하다. 막상 함수형 공부를 하지 않아서 잘 보지 않았지만 네임드 선생님의 책을 읽을 수 있다면 너무 좋은 기회지 않을까? 그래서 한빛 미디어에 그 책이 나왔다는 소식을 볼 때부터 5월 나는 리뷰어다 서적을 신청할 때 나오길 바랬다.
난 함수형 프로그래밍을 겉핥기로만 공부했다. 유인동님의 인터넷 강의도 소마 시절에 구매할 수 있었는데, 아직도 안봤다. 객체지향에 대해서도 겉핥기로 대충만 아는 것 같다. 생각해보면 잘 모른다. 반성할 일이다.
코드에 대해서 책처럼 이렇게까지 생각해본 적이 없는 것 같다. 안해본 생각을 해야하니 머리가 아프기도 하고 그랬다.
책의 시작부터 이터레이터를 만들면서 시작하니까 아득했던 기억이 난다. 코드가 거기서 거기고 문제 해결에 맞춰서, 적당한 디렉토리, 파일 구조에 만들면 끝이 아니구나 싶었다.
두 패러다임은 각기 다르게 사용되는게 아니라 동시에 유연하게 '멀티 패러다임'으로 쓰인다. 내딴엔 자바 스크립트, 타입 스크립트를 쓴다고 쓴거같은데, 겉돌면서 쓴것 같다는 기분이 들 정도로 뇌가 말랑말랑해지고 함수형, 객체지향, 거기에 비동기처리까지 공부하고 생각해볼 기회가 된 것 같다.
어렸을 때 스타크래프트 게임을 해보면 입문이 어렵지 않은데, 실력 위에 실력이 있고, 그거보다 더 잘하는 사람이 있다. 더 멋진 전략, 최적화 전략이 장군 멍군하면서 있다. 그런 전략이 생각이 필요하지 않을 정도로 익숙해진 사람들은 숨쉬듯이 사용하게 되곤 한다. 이후엔 피지컬과 순간의 판단력이 중요해지는 프로게이머나 고인물들의 각종 응용을 볼 수 있다.
타입 스크립트는 그렇다하게 문법이 난해하지 않았다. 리액트도 하다보면 할만하다. 충분히 익숙해지면 기존의 방식은 너무 당연하고 숨쉬듯이 더 최선의 방법을 찾아낼 것 같다. 이 책은 그런 책이었다.
고차 함수 맛볼래요? 프론트엔드와 객체지향의 크로스 오버는 어때요? 이런 패턴 어떄요? 리스트 프로세싱을 더 맛있게 해볼까요? 같은 사고의 확장을 불러오는 책이다.
이번 방학때는 꼭 이 책으로 스터디를 해야겠다는 나쁜 생각을 하고 있다. 누가 같이 해줄지 모르겠지만 기대된다. 그리고 방학에 다 읽으면 서평을 다시 쓰고 싶다. 진득하게 읽어보면서 즐길 시간이 부족해서 아쉬웠다.