이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
옮긴이 머리말 xi베타리더 후기 xiii이 책에 쏟아진 찬사 xv추천 서문(레베카 J. 워프스브록) xvii추천 서문(켄트 벡) xviii머리말 xx감사의 글 xxv들어가며 xxviPART I 결합CHAPTER 1 결합과 시스템 설계 31.1 결합이란 무엇인가? 41.2 결합의 규모 41.3 지식의 흐름 71.4 시스템 81.5 요점 131.6 복습 문제 14CHAPTER 2 결합과 복잡성: 커네빈 172.1 복잡성이란 무엇인가? 172.2 커네빈 192.3 커네빈 도메인의 비교 242.4 소프트웨어 설계에서의 커네빈 252.5 커네빈 애플리케이션 292.6 커네빈과 복잡성 302.7 요점 302.8 복습 문제 31CHAPTER 3 결합과 복잡성: 상호작용 333.1 복잡성의 본성 343.2 복잡성과 시스템 설계 343.3 계층적 복잡성 373.4 자유도 413.5 복잡성과 제약 443.6 결합과 복잡한 상호작용 453.7 예제: 결합과 복잡성을 연결하기 453.8 요점 513.9 복습 문제 52CHAPTER 4 결합과 모듈성 554.1 모듈성 564.2 모듈 574.3 소프트웨어 시스템에서의 모듈성 604.4 모듈성, 복잡성, 결합 664.5 모듈성에서의 결합 714.6 요점 724.7 복습 문제 7PART II 차원CHAPTER 5 구조적 설계의 모듈 결합 775.1 구조적 설계 785.2 모듈 결합 785.3 모듈 결합 수준 비교하기 915.4 요점 925.5 복습 문제 93CHAPTER 6 공생성 956.1 공생성이란 무엇인가? 966.2 정적 공생성 966.3 동적 공생성 1026.4 공생성 평가하기 1086.5 요점 1116.6 복습 문제 112CHAPTER 7 통합 강도 1157.1 결합의 강도 1167.2 통합 강도 1187.3 침입 결합 1197.4 기능 결합 1227.5 모델 결합 1257.6 계약 결합 1307.7 통합 강도 논의 1387.7.1 예제: 분산 시스템 1397.8 통합 강도와 비동기 실행 1407.9 요점 1427.10 복습 문제 142CHAPTER 8 거리 1458.1 거리와 캡슐화 경계 1458.2 거리에 영향을 추는 추가 요인 1518.3 거리 대 근접성 1548.4 거리 대 통합 강도 1558.5 요점 1558.6 복습 문제 156CHAPTER 9 변동성 1599.1 변화와 결합 1609.2 왜 소프트웨어는 바뀌는가? 1619.3 변경률 평가하기 1639.4 변동성과 결합 강도 1699.5 추론된 변동성 1719.6 요점 1729.7 복습 문제 172PART III 균형CHAPTER 10 결합 균형 17710.1 결합 차원 조합하기 17810.2 강도, 거리, 변동성을 조합하기 18310.3 숫자 척도로 결합 균형 잡기 18610.4 요점 19210.5 복습 문제 193CHAPTER 11 결합 재조정 19511.1 탄력적 설계 19611.2 소프트웨어 변경 벡터 19611.3 결합 재조정 20011.4 요점 20711.5 복습 문제 207CHAPTER 12 소프트웨어 설계의 프랙털 기하학 20912.1 성장 21012.2 혁신 21712.3 프랙털 기하학 22212.4 프랙털 모듈성 22312.5 요점 22412.6 복습 문제 225CHAPTER 13 균형 잡힌 결합의 실제 22713.1 마이크로서비스 22713.2 아키텍처 패턴 23213.3 비즈니스 객체 23813.4 메서드 24313.5 요점 24813.6 복습 문제 249CHAPTER 14 결론 251맺음말 255APPENDIX A 결합의 발라드 257APPENDIX B 결합 관련 용어 261APPENDIX C 복습 문제 해답 267참고 문헌 271찾아보기 276
|
Vlad Khononov
블라드 코노노프의 다른 상품
장연호의 다른 상품
|
디커플링 만능론을 깨고 ‘의도된 연결’을 설계하라좋은 소프트웨어 설계는 왜 이렇게 어려울까? 모듈 이름 하나 바꿨을 뿐인데 시스템 절반이 흔들리고, 기능 하나 추가하는 일이 폭탄 해체처럼 느껴진다면 문제는 구현 기술이 아니라 설계의 결합(커플링) 방식에 있을지 모른다. 좋은 소프트웨어 시스템을 구축하려면 결합을 제대로 다뤄야 한다. 그 중요성에도 불구하고, 결합은 지금까지 충분한 주목을 받지 못하고 오히려 없애야 할 대상으로 지목되곤 했다.결합은 함수 작성부터 객체 모델 설계, 그리고 분산 시스템을 아키텍처 수준에서 구성하는 데에까지 거의 모든 설계 결정에 영향을 미친다. 결합을 0으로 만드는 일이 불가능하다는 것을 우리는 이미 알고 있다. 이 책은 50년 이상 연구된 소프트웨어 공학의 통찰을 바탕으로, 구조적 설계에서 출발해 공생성 모델로 이어지는 고전적인 결합 이론과 현대 분산 시스템의 복잡한 현실을 잇는 실용적 프레임워크를 제시한다. 저자는 결합을 무조건 줄여야 할 대상이 아니라, 모듈성, 복잡성, 변경 비용 같은 판단 기준에 의한 ‘설계 결정’으로 재정의한다.통합 강도, 거리, 변동성 등 결합의 세 가지 핵심 차원을 관통하는 ‘균형 잡힌 결합’ 설계 프레임워크를 통해, 결합이 다양한 차원에서 어떤 영향을 미치는지 식별하고 평가하는 방법을 제시한다. 왜 어떤 설계는 복잡성을 낳고, 어떤 설계는 모듈성을 높이는지, 구체적인 사례와 함께 그 이유를 탐구한다. 모듈화되고, 진화 가능하며, 안정적인 소프트웨어 시스템을 설계하고 싶은 아키텍트와 개발자라면 꼭 읽어볼 가치가 있는 책이다.결합의 개념을 정의하고, 그것이 시스템 설계와 아키텍처에서 어떤 역할을 하는지 설명한다.결합은 시스템의 복잡성을 키우는 원인인 동시에 모듈성을 만드는 기반이 될 수 있음을 보여준다.결합을 모듈식 소프트웨어 설계를 위한 실질적인 도구로 바꾸는 통합적 프레임워크를 소개한다.소프트웨어 시스템이 지속적으로 성장하는 과정에 맞춰 설계 결정을 어떻게 진화시켜야 하는지 안내한다.
|