000 | 00000cam c2200205 c 4500 | |
001 | 000046010153 | |
005 | 20191220160359 | |
007 | ta | |
008 | 191220s2019 ulkad 001c kor | |
020 | ▼a 9788966262472 ▼g 14000 | |
020 | 1 | ▼a 9788966261017 (세트) |
035 | ▼a (KERIS)BIB000015369119 | |
040 | ▼a 241050 ▼c 241050 ▼d 241050 ▼d 211009 | |
041 | 1 | ▼a kor ▼h eng |
082 | 0 4 | ▼a 004.2/2 ▼2 23 |
085 | ▼a 004.22 ▼2 DDCK | |
090 | ▼a 004.22 ▼b 2019 | |
100 | 1 | ▼a Martin, Robert C. |
245 | 1 0 | ▼a 클린 아키텍처 : ▼b 소프트웨어 구조와 설계의 원칙 / ▼d 로버트 C. 마틴 지음 ; ▼e 송준이 옮김 |
246 | 1 9 | ▼a Clean Architecture : ▼b a craftsman's guide to software structure and design |
260 | ▼a 서울 : ▼b 인사이트, ▼c 2019 | |
300 | ▼a xxv, 406 p. : ▼b 삽화, 도표 ; ▼c 23 cm | |
440 | 0 0 | ▼a 프로그램 프로그래밍 프로그래머 시리즈 = ▼x Program programming programmer ; ▼v 11 |
500 | ▼a 부록: A. 아키텍처 고고학 | |
500 | ▼a 색인수록 | |
650 | 0 | ▼a Software architecture |
650 | 0 | ▼a Computer software ▼x Development |
650 | 0 | ▼a Computer programming ▼x History |
700 | 1 | ▼a 송준이, ▼e 역 |
900 | 1 0 | ▼a 마틴, 로버트 C., ▼e 저 |
945 | ▼a KLPA |
Holdings Information
No. | Location | Call Number | Accession No. | Availability | Due Date | Make a Reservation | Service |
---|---|---|---|---|---|---|---|
No. 1 | Location Science & Engineering Library/Sci-Info(Stacks1)/ | Call Number 004.22 2019 | Accession No. 121251611 | Availability Available | Due Date | Make a Reservation | Service |
Contents information
Book Introduction
소프트웨어 아키텍처의 보편 원칙을 적용하면 소프트웨어 수명 전반에서 개발자 생산성을 획기적으로 끌어올릴 수 있다. 《클린 코드》와 《클린 코더》의 저자이자 전설적인 소프트웨어 장인인 로버트 C. 마틴은 이 책 《클린 아키텍처》에서 이러한 보편 원칙들을 설명하고 여러분이 실무에 적용할 수 있도록 도와준다.
단순히 선택지들을 나열하는 책이 아니다. 상상할 수 있는 모든 분야의 소프트웨어 환경에서 반 세기를 살아온 저자의 경험에 기초하여, 성공하기 위해서는 어떤 선택을 해야 하고 무엇이 결정적인지를 이야기해 준다. 저자의 명성에 걸맞게 이 책에는 여러분이 직면할 현실적인 도전들을 극복할 수 있는 진지한 해결책으로 가득 차 있다.
"살아있는 전설이 들려주는 실용적인 소프트웨어 아키텍처 원칙"
소프트웨어 아키텍처의 보편 원칙을 적용하면 소프트웨어 수명 전반에서 개발자 생산성을 획기적으로 끌어올릴 수 있다. 《클린 코드》와 《클린 코더》의 저자이자 전설적인 소프트웨어 장인인 로버트 C. 마틴은 이 책 《클린 아키텍처》에서 이러한 보편 원칙들을 설명하고 여러분이 실무에 적용할 수 있도록 도와준다.
단순히 선택지들을 나열하는 책이 아니다. 상상할 수 있는 모든 분야의 소프트웨어 환경에서 반 세기를 살아온 저자의 경험에 기초하여, 성공하기 위해서는 어떤 선택을 해야 하고 무엇이 결정적인지를 이야기해 준다. 저자의 명성에 걸맞게 이 책에는 여러분이 직면할 현실적인 도전들을 극복할 수 있는 진지한 해결책으로 가득 차 있다.
이 책에서 다루는 내용
● 소프트웨어 아키텍트가 해내야 할 일과 그 일을 해내기 위한 규율과 실천법을 배운다.
● 기능, 구성요소 분리, 데이터 관리를 위한 소프트웨어 설계 핵심 원칙을 숙달한다.
● 프로그래밍 패러다임이 규율을 강제하기 위해 개발자의 자유를 어떻게 제약하는지 알아본다.
● 무엇이 정말 중요하고, 무엇이 중요치 않은 '세부사항'인지 이해한다.
● 웹, 데이터베이스, 리치 클라이언트, 콘솔, 임베디드 애플리케이션의 고수준 구조를 최적화한다.
● 구성요소 혹은 서비스 사이의 경계와 계층을 제대로 정의한다.
● 아키텍처가 잘못되는 이유와 잘못된 결과가 나오지 않게 예방하거나 고치는 방법을 배운다.
이 책은 모든 소프트웨어 아키텍트, 시스템 분석가, 설계자, 소프트웨어 관리자는 물론 다른 사람의 설계를 구현해 내야 하는 모든 프로그래머가 읽어야 하는 필독서다.
Information Provided By: :

Author Introduction
로버트 C. 마틴(지은이)
‘밥’이라고 불리며, 오브젝트 멘토(Object Mentor, Inc.)의 창립자이자 대표다. 밥과 그의 소프트웨어 컨설턴트 팀은 객체 지향 디자인, 패턴, UML, 애자일 방법론, 그리고 익스트림 프로그래밍으로 전 세계의 고객에게 서비스를 제공하고 있다. 소프트웨어 산업의 지도자로서 C++ 리포트의 편집장, 애자일 연합의 의장을 맡아 업계에 기여했다. 또한 엉클 밥 컨설팅(Uncle Bob Consulting)의 창립자며, 아들 미카 마틴과 함께 클린 코더스(Clean Coders)를 세웠다. 《클린 코드》, 《UML 실전에서는 이것만 쓴다》를 포함한 베스트셀러의 저자이기도 한 그는 《Pattern Languages of Program Design 3》의 편집위원장, 《More C++ Gems》의 편집위원이었으며, 제임스 뉴커크와 《XP in Practice》를 공동 저술하기도 했다. 1996년부터 1999년까지는 <C++ Report>의 편집위원장이었으며, 국제 콘퍼런스와 무역 전시회에서 유명한 강연자이기도 하다. ■ 『Designing Object Oriented C++ Applications Using the Booch Method』 ■ 『Patterns Languages of Program Design 3』 ■ 『More C++ Gems』 ■ 『Extreme Programming in Practice』 ■ 『소프트웨어개발의 지혜 - 원칙, 디자인패턴, 실천방법』(야스미디어) ■ 『UML, 실전에서는 이것만 쓴다 - aJva 프로그래머를 위한』(인사이트) ■ 『Clean Code 클린 코드 - 애자일 소프트웨어 장인 정신』(인사이트)
송준이(옮긴이)
대기업에서 SI로 개발을 시작했고, 멜론에서 빅데이터와 검색엔진 시스템을 개발했다. 스타트업에 대한 동경으로 재능마켓, 인공지능 업체에서 일하기도 했다. 지금은 동대문 패션 플랫폼 스타트업인 '와이즈패션'에서 일하고 있다.

Table of Contents
=== 1부 소개 === 1장 설계와 아키텍처란? __목표는? __사례 연구 __결론 2장 두 가지 가치에 대한 이야기 __행위 __아키텍처 __더 높은 가치 __아이젠하워 매트릭스 __아키텍처를 위해 투쟁하라 === 2부 벽돌부터 시작하기: 프로그래밍 패러다임 === 3장 패러다임 개요 __구조적 프로그래밍 __객체 지향 프로그래밍 __함수형 프로그래밍 __생각할 거리 __결론 4장 구조적 프로그래밍 __증명 __해로운 성명서 __기능적 분해 __엄밀한 증명은 없었다 __과학이 구출하다 __테스트 __결론 5장 객체 지향 프로그래밍 __캡슐화? __상속? __다형성? __결론 6장 함수형 프로그래밍 __정수를 제곱하기 __불변성과 아키텍처 __가변성의 분리 __이벤트 소싱 __결론 === 3부 설계 원칙 === 7장 SRP: 단일 책임 원칙 __징후 1: 우발적 중복 __징후 2: 병합 __해결책 __결론 8장 OCP: 개방-폐쇄 원칙 __사고 실험 __방향성 제어 __정보 은닉 __결론 9장 LSP: 리스코프 치환 원칙 __상속을 사용하도록 가이드하기 __정사각형/직사각형 문제 __LSP와 아키텍처 __LSP 위배 사례 __결론 10장 ISP: 인터페이스 분리 원칙 __ISP와 언어 __ISP와 아키텍처 __결론 11장 DIP: 의존성 역전 원칙 __안정된 추상화 __팩토리 __구체 컴포넌트 __결론 === 4부 컴포넌트 원칙 === 12장 컴포넌트 __컴포넌트의 간략한 역사 __재배치성 __링커 __결론 13장 컴포넌트 응집도 __REP: 재사용/릴리스 등가 원칙 __CCP: 공통 폐쇄 원칙 __CRP: 공통 재사용 원칙 __컴포넌트 응집도에 대한 균형 다이어그램 __결론 14장 컴포넌트 결합 __ADP: 의존성 비순환 원칙 __하향식(top-down) 설계 __SDP: 안정된 의존성 원칙 __SAP: 안정된 추상화 원칙 __결론 === 5부 아키텍처 === 15장 아키텍처란? __개발 __배포 __운영 __유지보수 __선택사항 열어 두기 __장치 독립성 __광고 우편 __물리적 주소 할당 __결론 16장 독립성 __유스케이스 __운영 __개발 __배포 __선택사항 열어놓기 __계층 결합 분리 __유스케이스 결합 분리 __결합 분리 모드 __개발 독립성 __배포 독립성 __중복 __결합 분리 모드(다시) __결론 17장 경계: 선 긋기 __두 가지 슬픈 이야기 __FitNesse __어떻게 선을 그을까? 그리고 언제 그을까? __입력과 출력은? __플러그인 아키텍처 __플러그인에 대한 논의 __결론 18장 경계 해부학 __경계 횡단하기 __두려운 단일체 __배포형 컴포넌트 __스레드 __로컬 프로세스 __서비스 __결론 19장 정책과 수준 __수준 __결론 20장 업무 규칙 __엔티티 __유스케이스 __요청 및 응답 모델 __결론 21장 소리치는 아키텍처 __아키텍처의 테마 __아키텍처의 목적 __하지만 웹은? __프레임워크는 도구일 뿐, 삶의 방식은 아니다 __테스트하기 쉬운 아키텍처 __결론 22장 클린 아키텍처 __의존성 규칙 __전형적인 시나리오 __결론 23장 프레젠터와 험블 객체 __험블 객체 패턴 __프레젠터와 뷰 __테스트와 아키텍처 __데이터베이스 게이트웨이 __데이터 매퍼 __서비스 리스너 __결론 24장 부분적 경계 __마지막 단계를 건너뛰기 __일차원 경계 __퍼사드 __결론 25장 계층과 경계 __움퍼스 사냥 게임 __클린 아키텍처? __흐름 횡단하기 __흐름 분리하기 __결론 26장 메인(Main) 컴포넌트 __궁극적인 세부사항 __결론 27장 ‘크고 작은 모든’ 서비스들 __서비스 아키텍처? __서비스의 이점? __야옹이 문제 __객체가 구출하다 __컴포넌트 기반 서비스 __횡단 관심사 __결론 28장 테스트 경계 __시스템 컴포넌트인 테스트 __테스트를 고려한 설계 __테스트 API __결론 29장 클린 임베디드 아키텍처 __앱-티튜드 테스트 __타깃-하드웨어 병목현상 __결론 === 6부 세부사항 === 30장 데이터베이스는 세부사항이다 __관계형 데이터베이스 __데이터베이스 시스템은 왜 이렇게 널리 사용되는가? __디스크가 없다면 어떻게 될까? __세부사항 __하지만 성능은? __개인적인 일화 __결론 31장 웹은 세부사항이다 __끝없이 반복하는 추 __요약 __결론 32장 프레임워크는 세부사항이다 __프레임워크 제작자 __혼인 관계의 비대칭성 __위험 요인 __해결책 __이제 선언합니다 __결론 33장 사례 연구: 비디오 판매 __제품 __유스케이스 분석 __컴포넌트 아키텍처 __의존성 관리 __결론 34장 빠져 있는 장 __계층 기반 패키지 __기능 기반 패키지 __포트와 어댑터 __컴포넌트 기반 패키지 __구현 세부사항엔 항상 문제가 있다 __조직화 vs. 캡슐화 __다른 결합 분리 모드 __결론: 빠져 있는 조언 === 7부 부록 === 부록 A 아키텍처 고고학