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

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

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

막다른 골목 없이 진화하는 시스템 개발하기

한빛미디어

번역서

판매중

  • 저자 : 크리스 핸슨 , 제럴드 제이 서스먼
  • 번역 : 류광
  • 출간 : 2022-03-30
  • 페이지 : 504 쪽
  • ISBN : 9791162245408
  • eISBN : 9791162245934
  • 물류코드 :10540
  • 초급 초중급 중급 중고급 고급
1 2 3 4 5
4.2점 (27명)
좋아요 : 19

책소개

누가 코드를 이렇게 짜놨어?

 

프로그래머들은 시간에 쫓기는 나머지, 어쩔 수 없이 제한된 용도로만 사용 가능한, 성장의 여지가 거의 없는 코드를 작성한다. 그로 인해 과거의 자신이 쌓은 벽에 가로막혀 코드를 새로 수정해야 하는 상황이 벌어지기도 한다. 하지만 최고의 시스템은 진화할 수 있는 유연성을 갖췄다. 기존 코드를 수정하는 대신 새 코드를 추가해 새로운 상황에 적응하는 가산적 프로그래밍을 활용한다. 이 책은 제럴드 제이 서스먼과 크리스 핸슨이 도합 100년이 넘는 프로그래밍 경험에서 발견한, 프로그래머가 막다른 골목을 피하는 데 도움이 되는 기법들을 담았다. 이 책은 동적으로 확장 가능한 일반적 프로시저처럼 극도로 강력하지만 잠재적으로 위험한 기법들도 소개한다. 각 장에는 연습문제와 리스프의 방언인 스킴으로 만들어진 예제 코드를 실었다. 천문 거리 계산에서 자동 미분, 어드벤처 게임에 이르기까지 다양한 예제를 살펴본다.

 

 

940px_상세이미지_유연한 소프트웨어를 만드는 설계 원칙.jpg

저자소개

크리스 핸슨 저자

크리스 핸슨

크리스 핸슨은 데이테라의 기술 직원이다. 여러 해 동안 MIT에서 지내면서 MIT/GNU 스킴 시스템의 주 저자로 일했다. 구글에서도 10년간 일했다.

제럴드 제이 서스먼 저자

제럴드 제이 서스먼

MIT 전기공학부 파나소닉 교수(Panasonic Professor of Electrical Engineering)

 

류광 역자

류광

25년 이상의 번역 경력을 가진 전문 번역가로, 『컴퓨터 프로그래밍의 예술』(The Art of Computer Programming) 시리즈와 『UNIX 고급 프로그래밍』(Advanced Programming in UNIX Environment ) 제2판 및 제3판, 『인공지능: 현대적 접근방식』(Artificial Intelligence: A Modern Approach) 제3판 및 제4판, 『Game Programming Gems』 시리즈를 비롯해 80권 이상의 다양한 IT 전문서를 번역했다. 본서와 관련이 깊은 번역서로는 『유연한 소프트웨어를 만드는 설계 원칙』(한빛미디어, 2020)이 있다.

 

개인 웹사이트 류광의 번역 이야기(https://occamsrazr.net)와 게임 개발 웹사이트 Gpg Study(https://gpgstudy.com)를 운영한다. 

 

 

목차

제1장 자연과 설계의 유연성

1.1 계산과 건축

1.2 유연성을 위한 똑똑한 부품

1.3 중복성과 축중성

1.4 탐색 행동

1.5 유연성의 비용

 

제2장 영역 특화 언어(DSL)

2.1 조합자

2.2 정규표현식

2.3 래퍼

2.4 문제 영역의 추상화

2.5 요약

 

제3장 산술 주제의 변형들

3.1 산술 연산의 조합

3.2 확장성 있는 일반적 프로시저

3.3 예제: 자동 미분

3.4 효율적인 일반적 프로시저

3.5 효율적인 사용자 정의 형식

3.6 요약

 

제4장 패턴 부합

4.1 패턴

4.2 항 재작성

4.3 부합기의 설계

4.4 통합 부합

4.5 그래프상의 패턴 부합

4.6 요약

 

제5장 평가

5.1 일반적 eval/apply 해석기

5.2 비엄격 인수를 가진 프로시저

5.3 실행 프로시저로의 컴파일

5.4 탐색 행동

5.5 바탕 후속 프로시저들의 노출

5.6 큰 힘과 큰 책임

 

제6장 계층화

6.1 계층 활용

6.2 계층화 구현

6.3 계층적 산술

6.4 값의 의존성 주해 추가

6.5 계층화의 약속

 

제7장 전파

7.1 예제: 별과의 거리

7.2 전파 메커니즘

7.3 다중 대안 세계관

7.4 값들의 병합

7.5 가능한 세계 검색

7.6 전파는 축중성을 가능하게 한다

 

제8장 맺음말

 

부록 A 지원 소프트웨어

부록 B 스킴

출판사리뷰

크리스 핸슨과 제럴드 제이 서스먼이 설명하는

유연성을 위한 가산적 프로그래밍 마스터 클래스

 

소프트웨어 개발자들은 주로 특정한 작업을 아주 잘 수행하는 소프트웨어를 설계해왔다. 이는 과거의 공학적 실천의 확장으로 개별 소프트웨어를 좁은 범위의 작업만을 수행하도록 설계했다. 이 경우, 풀고자 하는 문제가 변하면 소프트웨어도 변해야 한다. 그런데, 문제가 조금만 바뀌어도 소프트웨어는 크게 바꾸어야 할 때가 많다. 유연성에 초점을 두고 설계를 진행하면 환경 변화에 적응하는 시스템을 구축할 수 있다. 작동 중인 프로그램을 뜯어고칠 필요 없이, 그냥 새로운 기능을 구현한 코드를 추가하거나 기존 함수를 새로운 요구 사항에 맞게 조정하는 가산적 프로그래밍을 활용해 진화하는 시스템을 만들어보자.

 

 

대상 독자

  • 유연성에 집중한 프로그램 설계 방식을 알고 싶은 프로그래머
  • 복잡한 시스템을 구축해야 하는 아키텍트

 

배우는 내용

  • 표준 인터페이스를 따르는 짜맞춤 방식으로 작은 함수부터 산술 패키지 전체까지 다양한 구성 요소를 조립하는 시스템 구성법
  • 측정 단위나 자료 출처 같은 정보를 담은 독립적인 주해를 사용한 데이터 증강
  • 통합이나 전파를 이용한 독립적인 부분 정보 조각 조합
  • 영역 모형, 규칙 시스템, 패턴 부합, 전파, 의존성 지향적 역추적을 이용한 제어 구조와 문제 영역 분리
  • 동적으로 확장 가능한 평가자를 이용한 프로그래밍 언어 확장

 

추천사

 

대부분의 훌륭한 시스템은 한순간만 반짝하지 않고 오랫동안 빛을 발한다. 이 책은 망가짐 없이 발전하는 유연한 시스템을 만드는 비법을 훌륭하게 소개한다.

_리치 히키, 프로그래밍 언어 '클로저'의 주 저자

 

이 책은 소프트웨어 개발의 판도를 뒤바꿀 가산적 프로그래밍 개념을 소개한다. 가산적 프로그래밍을 사용하면 프로그래머가 곡예같은 노력을 하지 않아도 기존 디자인을 변경할 수 있다. 소프트웨어 디자인 과정에서 오랫동안 간과해왔던 문제를 우아하고 명확하게 지적한 뒤, 이에 대한 획기적인 해결책을 알려주는 책이다.

_댄 프리드먼, 인디애나주립대 컴퓨터과학과 교수

독자리뷰

오탈자 보기

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원 무료배송
닫기

리뷰쓰기

닫기
* 상품명 :
유연한 소프트웨어를 만드는 설계 원칙
* 제목 :
* 별점평가
1 2 3 4 5
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
유연한 소프트웨어를 만드는 설계 원칙
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
유연한 소프트웨어를 만드는 설계 원칙
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

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

자료실

최근 본 상품2