메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

유연성을 가진 가산적 프로그래밍을 구현하기 위한 도움을 주는 책

1b***

|

2022-04-12

유연한 소프트웨어를 만드는 설계 원칙

상황 변화에 따라 기존 프로그램을 변경하지 않고 다른 기능을 첨가해 \\\\\\\\\\\\\\\'가산형 프로그래밍\\\\\\\\\\\\\\\'을 사용해 진화하는 시스템을 만드는 비법을 살펴본다.

  • 저자 : 크리스 핸슨 , 제럴드 제이 서스먼
  • 번역 : 류광
  • 출간 : 2022-03-30

이 책은 '21년 발간한 원서 'Software Design for Flexibility: How to Avoid Programming Yourself into a Corner'를 번역한 책으로 중고급 수준의 난이도의 책으로 MIT에서 많이 사용하지만 일반업계에서 많이 사용하지는 않는 LISP계열의 함수형, 교육용 소프트웨어인 스킴(Scheme)을 예제코드 사용언어로 채택하였다.

 

전반적으로 예제와 코딩을 책 본문에 충실히 활용하여 탁상공론이 아닌 실무서에 가깝도록 책을 구성한점은 좋아보인다. 

 

저자는 크리스 핸슨, 제랄드 제이 서스먼 2명이 공저하였으며 크리스 핸슨은 구글에서 10년간 일하였으며 MIT/GNU 스킴 시스템의 주 저자로 일하였으며 다른 저자 제랄드 제이 서스먼은 MIT 전기공학부 파나소닉 교수로 재직중이다.

 

저자들의 약력에서 살펴볼 수 있듯 기술에 대한 근본 이해도 무시하지 않으며 응용성, 실용적 활용에 촛점을 두고 프로그래밍을 바라보고 있어 본책은 현업에 종사하며 이러한 기술을 어떻게 활용할 것인가에 대한 원초적 물음을 가진 분들에게도 큰 도움이 될 수 있어 보인다.

 

책 내용은 전체적으로 본문 503페이지 가량의 약간 두꺼운 분량이지만 책상앞에 두어도 큰 부담이 되지는 않아보이며 총 8장으로 구성되어 있다.

 

8장중 

1장은 자연과 설계의 유연성을 비유하여 설명하며 전반적인 책방향에 대해 간략히 설명하고 있다.

 

2장은 영역특화언어(DSL)을 중심으로 조합자, 정규표현식, 래퍼, 추상화등에 대해 다루고 있다.

 

3장은 산술 주체의 변형에 대해 학습하며 산술연산조합, 확장성 있는 일반 프로시저, 효율적인 일반 프로시저 등을 다루며 자동미분을 예제로 다루고 있다.

 

4장은 패턴부합, 항재식성, 부합기 설계, 통합 부합, 그래프상의 패턴 부합등을 다룬다.

 

5장은 모델 평가와 해석, 컴파일, 프로시저 등을 언급하고 있다.

 

6장은 계층화에 대해 설명하고 있으며 계층활용, 계층화 구현, 계층적 산술, 값의 의존성 주해추가 등을 다루고 있다.

 

7장은 전파에 대해 언급하고 있으며 예제로 별과의 거리라는 천문학 내용을 소재로 하고 있으며 전파 매커니즘, 다중대안 세계관, 값들 병합, 가능한 세계검색등을 보여준다.

 

8장은 1장에서 7장까지의 내용을 마무리하는 장으로 앞의 내용을 정리하며 맺음말로 본문을 정리한다.

 

이 책의 장점으로는 일반적으로 사용하지 않지만 미국 이공계를 대표하는 최고 명문대 MIT에서 개발한 LISP 계열 스킴언어를 주요 언어로 사례 중심 접근을 하므로 스킴언어의 함수적인 강함과 유연성에 대해 다시금 생각하는 기회가 되는 책이라 볼 수 있다.

 

전체적인 총평은 난이도가 중상으로 보이나 이미 컴퓨터학 통계학관련 전공 학생, 전공과 무관하게 프로그래밍의 개념이 어느정도 있는 직장인, LISP계열 언어에 대해 알고 있고 이공계열 전공으로 과학예제에 대해 프로그래밍을 해보고자 하는 학부, 석박사 학생에게 적합해 보이며 기본적으로 프로그래밍 언어에 대한 이해도를 가지고 있다는 전제로 서술되어 있으므로 이에 대한 이해가 부족한 독자들은 책을 읽기전이나 읽는 도중에 선행 학습이 있어야 더 쉽고 깊은 이해가 가능하다고 생각된다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?