소프트웨어 설계의 결합 균형 (균형 잡힌 커플링으로 복잡한 시스템을 견고하게 만드는 모듈형 설계 원칙)

소프트웨어 설계의 결합 균형 (균형 잡힌 커플링으로 복잡한 시스템을 견고하게 만드는 모듈형 설계 원칙)

$30.00
Description
좋은 설계는 커플링을 없애는 것이 아니라 균형을 잡는 것이다
모듈형 소프트웨어 설계를 위한 ‘균형 잡힌 결합(커플링)‘이라는 혁신적인 프레임워크를 설명하는 책이다. 50년 이상 축적된 소프트웨어 공학의 통찰을 바탕으로, 검증된 원칙과 기법을 정제해 소프트웨어 설계 의사결정을 위한 간결하고 실용적인 지침으로 제시한다. 저자는 구체적인 사례를 통해 결합이 무조건 줄여야 할 대상이 아니라, 모듈성, 복잡성, 변경 비용 같은 기준으로 판단해서 활용할 수 있는 설계 도구임을 보여준다. 복잡한 시스템을 더 잘 나누고, 더 오래 살아남는 구조로 설계하고 싶은 아키텍트와 개발자에게 탄탄한 판단 기준을 제공하는 책이다.
저자

블라드코노노프

직접컴퓨터게임을만들고싶어서8세때베이직책을집어들었다.아직게임을출시하지는못했지만소프트웨어엔지니어링이그의열정이자직업이되었다.20년이상의업계경험을바탕으로,웹마스터에서수석아키텍트에이르기까지크고작은회사에서근무했다.컨설턴트이자트레이너로서기업이비즈니스도메인을이해하고레거시시스템을풀어내며복잡한아키텍트과제를해결하도록돕고있다.저서로8개언어로번역된《도메인주도설계첫걸음》(위키북스,2022)등이있다.또한연설자로서전세계의주요소프트웨어엔지니어링및아키텍처콘퍼런스에서발표했으며,복잡한개념을간단하고접근하기쉬운용어로설명하는능력으로유명하다.

목차

옮긴이머리말xi
베타리더후기xiii
이책에쏟아진찬사xv
추천서문(레베카J.워프스브록)xvii
추천서문(켄트벡)xviii
머리말xx
감사의글xxv
들어가며xxvi

PARTI결합

CHAPTER1결합과시스템설계3
1.1결합이란무엇인가?4
1.2결합의규모4
1.3지식의흐름7
1.4시스템8
1.5요점13
1.6복습문제14

CHAPTER2결합과복잡성:커네빈17
2.1복잡성이란무엇인가?17
2.2커네빈19
2.3커네빈도메인의비교24
2.4소프트웨어설계에서의커네빈25
2.5커네빈애플리케이션29
2.6커네빈과복잡성30
2.7요점30
2.8복습문제31

CHAPTER3결합과복잡성:상호작용33
3.1복잡성의본성34
3.2복잡성과시스템설계34
3.3계층적복잡성37
3.4자유도41
3.5복잡성과제약44
3.6결합과복잡한상호작용45
3.7예제:결합과복잡성을연결하기45
3.8요점51
3.9복습문제52

CHAPTER4결합과모듈성55
4.1모듈성56
4.2모듈57
4.3소프트웨어시스템에서의모듈성60
4.4모듈성,복잡성,결합66
4.5모듈성에서의결합71
4.6요점72
4.7복습문제7

PARTII차원

CHAPTER5구조적설계의모듈결합77
5.1구조적설계78
5.2모듈결합78
5.3모듈결합수준비교하기91
5.4요점92
5.5복습문제93

CHAPTER6공생성95
6.1공생성이란무엇인가?96
6.2정적공생성96
6.3동적공생성102
6.4공생성평가하기108
6.5요점111
6.6복습문제112

CHAPTER7통합강도115
7.1결합의강도116
7.2통합강도118
7.3침입결합119
7.4기능결합122
7.5모델결합125
7.6계약결합130
7.7통합강도논의138
7.7.1예제:분산시스템139
7.8통합강도와비동기실행140
7.9요점142
7.10복습문제142

CHAPTER8거리145
8.1거리와캡슐화경계145
8.2거리에영향을추는추가요인151
8.3거리대근접성154
8.4거리대통합강도155
8.5요점155
8.6복습문제156

CHAPTER9변동성159
9.1변화와결합160
9.2왜소프트웨어는바뀌는가?161
9.3변경률평가하기163
9.4변동성과결합강도169
9.5추론된변동성171
9.6요점172
9.7복습문제172

PARTIII균형

CHAPTER10결합균형177
10.1결합차원조합하기178
10.2강도,거리,변동성을조합하기183
10.3숫자척도로결합균형잡기186
10.4요점192
10.5복습문제193

CHAPTER11결합재조정195
11.1탄력적설계196
11.2소프트웨어변경벡터196
11.3결합재조정200
11.4요점207
11.5복습문제207

CHAPTER12소프트웨어설계의프랙털기하학209
12.1성장210
12.2혁신217
12.3프랙털기하학222
12.4프랙털모듈성223
12.5요점224
12.6복습문제225

CHAPTER13균형잡힌결합의실제227
13.1마이크로서비스227
13.2아키텍처패턴232
13.3비즈니스객체238
13.4메서드243
13.5요점248
13.6복습문제249

CHAPTER14결론251

맺음말255

APPENDIXA결합의발라드257
APPENDIXB결합관련용어261
APPENDIXC복습문제해답267

참고문헌271
찾아보기276

출판사 서평

디커플링만능론을깨고‘의도된연결’을설계하라
좋은소프트웨어설계는왜이렇게어려울까?모듈이름하나바꿨을뿐인데시스템절반이흔들리고,기능하나추가하는일이폭탄해체처럼느껴진다면문제는구현기술이아니라설계의결합(커플링)방식에있을지모른다.좋은소프트웨어시스템을구축하려면결합을제대로다뤄야한다.그중요성에도불구하고,결합은지금까지충분한주목을받지못하고오히려없애야할대상으로지목되곤했다.
결합은함수작성부터객체모델설계,그리고분산시스템을아키텍처수준에서구성하는데에까지거의모든설계결정에영향을미친다.결합을0으로만드는일이불가능하다는것을우리는이미알고있다.이책은50년이상연구된소프트웨어공학의통찰을바탕으로,구조적설계에서출발해공생성모델로이어지는고전적인결합이론과현대분산시스템의복잡한현실을잇는실용적프레임워크를제시한다.저자는결합을무조건줄여야할대상이아니라,모듈성,복잡성,변경비용같은판단기준에의한‘설계결정’으로재정의한다.
통합강도,거리,변동성등결합의세가지핵심차원을관통하는‘균형잡힌결합’설계프레임워크를통해,결합이다양한차원에서어떤영향을미치는지식별하고평가하는방법을제시한다.왜어떤설계는복잡성을낳고,어떤설계는모듈성을높이는지,구체적인사례와함께그이유를탐구한다.모듈화되고,진화가능하며,안정적인소프트웨어시스템을설계하고싶은아키텍트와개발자라면꼭읽어볼가치가있는책이다.

주요내용
●결합의개념을정의하고,그것이시스템설계와아키텍처에서어떤역할을하는지설명한다.
●결합은시스템의복잡성을키우는원인인동시에모듈성을만드는기반이될수있음을보여준다.
●결합을모듈식소프트웨어설계를위한실질적인도구로바꾸는통합적프레임워크를소개한다.
●소프트웨어시스템이지속적으로성장하는과정에맞춰설계결정을어떻게진화시켜야하는지안내한다.