
좋은 설계는 커플링을 없애는 것이 아니라 균형을 잡는 것이다
모듈형 소프트웨어 설계를 위한 ‘균형 잡힌 결합(커플링)‘이라는 혁신적인 프레임워크를 설명하는 책이다. 50년 이상 축적된 소프트웨어 공학의 통찰을 바탕으로, 검증된 원칙과 기법을 정제해 소프트웨어 설계 의사결정을 위한 간결하고 실용적인 지침으로 제시한다. 저자는 구체적인 사례를 통해 결합이 무조건 줄여야 할 대상이 아니라, 모듈성, 복잡성, 변경 비용 같은 기준으로 판단해서 활용할 수 있는 설계 도구임을 보여준다. 복잡한 시스템을 더 잘 나누고, 더 오래 살아남는 구조로 설계하고 싶은 아키텍트와 개발자에게 탄탄한 판단 기준을 제공하는 책이다.
도서구매 사이트(가나다순)
| [교보문고] [도서11번가] [알라딘] [예스이십사] [쿠팡] |
출판사 제이펍
저작권사 Addison-Wesley Professional
원서명 Balancing Coupling in Software Design (9780137353484)
도서명 소프트웨어 설계의 결합 균형
부제 균형 잡힌 커플링으로 복잡한 시스템을 견고하게 만드는 모듈형 설계 원칙
지은이 블라드 코노노프
옮긴이 장연호
감수자 (없음)
시리즈 (없음)
출판일 2026. 04. 30
페이지 308쪽
판 형 46배판변형(188*245*17.8)
제 본 무선(soft cover)
정 가 30,000원
ISBN 979-11-24205-48-8 (93000)
키워드 커플링, 모듈성, 복잡성, 공생성, 지식흐름, 통합강도, 거리, 변동성, 아키텍처, 설계
분 야 소프트웨어 공학 / 개발방법론
관련 사이트
■ 아마존 도서 페이지
■ 저작권사 도서 페이지
관련 시리즈
■ (없음)
관련 포스트
■ 2026.04.14 - [출간 전 책 소식] - 본격 ×커플링× 찬양 도서
관련 도서
■ (없음)
관련 파일 다운로드
■ (없음)
강의 보조 자료(교재로 채택하신 분들은 https://jpub.tistory.com/notice/1076을 통해 다음 자료를 요청하실 수 있습니다.)
■ 본문의 그림과 표
미리보기(앞부속, 본문 일부)
정오표 페이지
■ (등록되는 대로 링크를 걸겠습니다.)
도서구매 사이트(가나다순)
| [교보문고] [도서11번가] [알라딘] [예스이십사] [쿠팡] |
도서 소개
디커플링 만능론을 깨고 ‘의도된 연결’을 설계하라
좋은 소프트웨어 설계는 왜 이렇게 어려울까? 모듈 이름 하나 바꿨을 뿐인데 시스템 절반이 흔들리고, 기능 하나 추가하는 일이 폭탄 해체처럼 느껴진다면 문제는 구현 기술이 아니라 설계의 결합(커플링) 방식에 있을지 모른다. 좋은 소프트웨어 시스템을 구축하려면 결합을 제대로 다뤄야 한다. 그 중요성에도 불구하고, 결합은 지금까지 충분한 주목을 받지 못하고 오히려 없애야 할 대상으로 지목되곤 했다.
결합은 함수 작성부터 객체 모델 설계, 그리고 분산 시스템을 아키텍처 수준에서 구성하는 데에까지 거의 모든 설계 결정에 영향을 미친다. 결합을 0으로 만드는 일이 불가능하다는 것을 우리는 이미 알고 있다. 이 책은 50년 이상 연구된 소프트웨어 공학의 통찰을 바탕으로, 구조적 설계에서 출발해 공생성 모델로 이어지는 고전적인 결합 이론과 현대 분산 시스템의 복잡한 현실을 잇는 실용적 프레임워크를 제시한다. 저자는 결합을 무조건 줄여야 할 대상이 아니라, 모듈성, 복잡성, 변경 비용 같은 판단 기준에 의한 ‘설계 결정’으로 재정의한다.
통합 강도, 거리, 변동성 등 결합의 세 가지 핵심 차원을 관통하는 ‘균형 잡힌 결합’ 설계 프레임워크를 통해, 결합이 다양한 차원에서 어떤 영향을 미치는지 식별하고 평가하는 방법을 제시한다. 왜 어떤 설계는 복잡성을 낳고, 어떤 설계는 모듈성을 높이는지, 구체적인 사례와 함께 그 이유를 탐구한다. 모듈화되고, 진화 가능하며, 안정적인 소프트웨어 시스템을 설계하고 싶은 아키텍트와 개발자라면 꼭 읽어볼 가치가 있는 책이다.
주요 내용
- 결합의 개념을 정의하고, 그것이 시스템 설계와 아키텍처에서 어떤 역할을 하는지 설명한다.
- 결합은 시스템의 복잡성을 키우는 원인인 동시에 모듈성을 만드는 기반이 될 수 있음을 보여준다.
- 결합을 모듈식 소프트웨어 설계를 위한 실질적인 도구로 바꾸는 통합적 프레임워크를 소개한다.
- 소프트웨어 시스템이 지속적으로 성장하는 과정에 맞춰 설계 결정을 어떻게 진화시켜야 하는지 안내한다.
지은이 소개
블라드 코노노프(Vlad Khononov)
직접 컴퓨터 게임을 만들고 싶어서 8세 때 베이직 책을 집어 들었다. 아직 게임을 출시하지는 못했지만 소프트웨어 엔지니어링이 그의 열정이자 직업이 되었다. 20년 이상의 업계 경험을 바탕으로, 웹마스터에서 수석 아키텍트에 이르기까지 크고 작은 회사에서 근무했다. 컨설턴트이자 트레이너로서 기업이 비즈니스 도메인을 이해하고 레거시 시스템을 풀어내며 복잡한 아키텍트 과제를 해결하도록 돕고 있다. 저서로 8개 언어로 번역된 《도메인 주도 설계 첫걸음》(위키북스, 2022) 등이 있다. 또한 연설자로서 전 세계의 주요 소프트웨어 엔지니어링 및 아키텍처 콘퍼런스에서 발표했으며, 복잡한 개념을 간단하고 접근하기 쉬운 용어로 설명하는 능력으로 유명하다.
옮긴이 소개
장연호
1990년대 후반부터 웹 개발자로 일해왔다. 베이직과 파스칼로 프로그래밍에 입문했고, 다양한 언어로 자작 게임을 개발하고 있다. 신화와 역사, 판타지와 SF를 좋아하고, 록과 헤비메탈 음악을 즐기며, 8비트와 펜티엄 이전의 고전 게임과 애니메이션 마니아다. 번역한 책으로 《러스트 프로페셔널 코드》, 《러스트 웹 개발》, 《한 줄 한 줄 짜면서 익히는 러스트 프로그래밍》 등이 있다.
차례
옮긴이 머리말 xi
베타리더 후기 xiii
이 책에 쏟아진 찬사 xv
추천 서문(레베카 J. 워프스브록) xvii
추천 서문(켄트 벡) xviii
머리말 xx
감사의 글 xxv
들어가며 xxvi
PART I 결합
CHAPTER 1 결합과 시스템 설계 3
1.1 결합이란 무엇인가? 4
1.2 결합의 규모 4
1.3 지식의 흐름 7
1.4 시스템 8
1.5 요점 13
1.6 복습 문제 14
CHAPTER 2 결합과 복잡성: 커네빈 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
CHAPTER 3 결합과 복잡성: 상호작용 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
CHAPTER 4 결합과 모듈성 55
4.1 모듈성 56
4.2 모듈 57
4.3 소프트웨어 시스템에서의 모듈성 60
4.4 모듈성, 복잡성, 결합 66
4.5 모듈성에서의 결합 71
4.6 요점 72
4.7 복습 문제 7
PART II 차원
CHAPTER 5 구조적 설계의 모듈 결합 77
5.1 구조적 설계 78
5.2 모듈 결합 78
5.3 모듈 결합 수준 비교하기 91
5.4 요점 92
5.5 복습 문제 93
CHAPTER 6 공생성 95
6.1 공생성이란 무엇인가? 96
6.2 정적 공생성 96
6.3 동적 공생성 102
6.4 공생성 평가하기 108
6.5 요점 111
6.6 복습 문제 112
CHAPTER 7 통합 강도 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
CHAPTER 8 거리 145
8.1 거리와 캡슐화 경계 145
8.2 거리에 영향을 추는 추가 요인 151
8.3 거리 대 근접성 154
8.4 거리 대 통합 강도 155
8.5 요점 155
8.6 복습 문제 156
CHAPTER 9 변동성 159
9.1 변화와 결합 160
9.2 왜 소프트웨어는 바뀌는가? 161
9.3 변경률 평가하기 163
9.4 변동성과 결합 강도 169
9.5 추론된 변동성 171
9.6 요점 172
9.7 복습 문제 172
PART III 균형
CHAPTER 10 결합 균형 177
10.1 결합 차원 조합하기 178
10.2 강도, 거리, 변동성을 조합하기 183
10.3 숫자 척도로 결합 균형 잡기 186
10.4 요점 192
10.5 복습 문제 193
CHAPTER 11 결합 재조정 195
11.1 탄력적 설계 196
11.2 소프트웨어 변경 벡터 196
11.3 결합 재조정 200
11.4 요점 207
11.5 복습 문제 207
CHAPTER 12 소프트웨어 설계의 프랙털 기하학 209
12.1 성장 210
12.2 혁신 217
12.3 프랙털 기하학 222
12.4 프랙털 모듈성 223
12.5 요점 224
12.6 복습 문제 225
CHAPTER 13 균형 잡힌 결합의 실제 227
13.1 마이크로서비스 227
13.2 아키텍처 패턴 232
13.3 비즈니스 객체 238
13.4 메서드 243
13.5 요점 248
13.6 복습 문제 249
CHAPTER 14 결론 251
맺음말 255
APPENDIX A 결합의 발라드 257
APPENDIX B 결합 관련 용어 261
APPENDIX C 복습 문제 해답 267
참고 문헌 271
찾아보기 276
제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)
| 블로그 유튜브 인스타그램 트위터 페이스북 |
'도서 소개' 카테고리의 다른 글
| 몰입을 설계하는 게임 기획(제2판) (0) | 2026.04.27 |
|---|---|
| 7일 단기 완성 해킹 입문 (0) | 2026.04.23 |
| 펜 한 자루로 시작하는 별나라의 어반 스케치 (0) | 2026.04.16 |
| LUVIT♥ 클로드와 함께하는 LLM 프로젝트 (0) | 2026.04.16 |
| 21개의 실무 앱으로 배우는 Dify (0) | 2026.04.15 |