우당탕탕
[개발서적] 클린 아키텍처(Clean Architecture) 핵심 요약 및 리뷰 본문
클린 아키텍처(Clean Architecture) 핵심 요약 및 리뷰 - 시스템 구조, 책 하나로 끝낸다
안녕하세요!
오늘은 소프트웨어 설계와 구조의 정석, 『클린 아키텍처(Clean Architecture)』 – 로버트 C. 마틴 책을 한눈에 보기 쉽게 챕터별 리뷰 & 요약으로 작성해보려고 합니다.
“코드는 잘 짜는데, 왜 점점 개발이 어려워질까?” 실제 현장 개발자에게 진짜 필요한 아키텍처 원칙이 궁금하다면 꼭 읽어봐야 할 책입니다.
📚 목차 및 핵심요약
1. 서문 – 소프트웨어 아키텍처가 왜 중요한가
• “나쁜 구조는 개발을 더디게 한다”
• 소프트웨어 설계는 코드 품질, 생산성, 유연성의 기초
• 아키텍처를 무시하면 유지보수 지옥 도래!
2. 프로그래밍의 본질 & 소프트웨어 설계의 핵심 원칙
• SW 구조는 ‘변화를 쉽게 수용할 수 있어야 한다’
• 결합도(Dependency), 응집도(Cohesion), SOLID 원칙 강조
• “좋은 소프트웨어는 요구사항이 바뀌어도 쉽게 적응 가능해야 한다”
3. 프로그래밍 패러다임 – 절차적/객체지향/함수형
• 각 패러다임별 핵심 가치와 구조적 장단점 설명
• “패러다임보다 더 중요한 건, 아키텍처적 독립성(Immutability)”
4. 소프트웨어 설계의 5가지 구조 원칙 (SOLID)
• S: 단일 책임 원칙 (Single Responsibility Principle)
• O: 개방폐쇄 원칙 (Open/Closed Principle)
• L: 리스코프 치환 원칙 (Liskov Substitution Principle)
• I: 인터페이스 분리 원칙 (Interface Segregation Principle)
• D: 의존성 역전 원칙 (Dependency Inversion Principle)
• ⭐️ 아키텍처 설계는 SOLID 원칙 기반 위에 세운다
5. 경계(BOUNDARIES)와 계층(LAYERS)
• 시스템은 반드시 “계층(층)” 구조를 가져야 한다
• 엔티티(Entity)-유즈케이스(Use Case)-인터페이스(Interface)의 3 계층 모델 강조
• 외부 시스템(데이터, UI, 프레임워크)은 교체 가능성이 높으니 내부 핵심 로직과 분리 필요
6. 아키텍처 패턴 – 클린 아키텍처, 헥사고날, 온리언, 계란프라이
• 여러 설계 패턴의 공통점:
-> “비즈니스 로직(내부) ↔ 프레임워크·DB·UI(외부)” 분리
• 클린 아키텍처:
-> 내부 원(엔티티, 유즈케이스)은 결코 외부 원(인프라, UI, DB)에 의존하면 안 된다
-> 중심일수록 더 변경이 어렵고, 가치가 크다
7. 주입(Dependency Injection) vs 소유(Ownership)
• “의존성 방향은 항상 안에서 밖으로, 프레임워크를 소유하지 않고 사용만 해라”
• DIP(의존성 역전)은 가장 중요한 구조적 원칙
• 확장/테스트도 이런 구조에서 강한 힘을 발휘
8. 프레임워크, UI, DB를 로직에서 분리하라
• 프레임워크와 DB는 ‘바꿀 수 있는 도구’로 취급해야 함
• “비즈니스 규칙은 프레임워크, UI, DB에 종속돼선 안 된다”
9. 경계 넘어 데이터 전달 – DTO, Boundary, Gateways
• 데이터 전달 객체(VO/DTO), 인터페이스 어댑터 등 아키텍처 계층 간 변환 책임 분리
• 각 계층별 데이터를 변환, 필요한 정보만 전달
10. 실제 프로젝트의 클린 아키텍처 적용 사례
• 실제 대형 프로젝트에서 아키텍처가 무너진 이유와 교훈
• “아키텍처는 항상 변화한다, 핵심은 의존성 방향을 잘 지키는 것”
📝 한 문장 요약
“클린 아키텍처란, 비즈니스 로직(중심)이 UI/DB/프레임워크에 결코 종속되지 않는 탄탄하고 변화에 강한 구조를 만드는 법이다.”
읽으면서 느낀 점
• 레이어를 나누는 게 목적이 아니라, “내부 규칙이 가장 귀중하다는 인식이 깔려 있어야 한다”
• 테이블 구조에 끌려가지 말고, 본질(비즈니스 규칙)에 집중할 것
• “프레임워크 정할 때 시간 낭비 말고, 아키텍처 핵심부터 그려볼 것”
Reference
- Uncle Bob의 Clean Architecture 블로그 - https://blog.cleancoder.com
'여러내용들 > IT서적 요약' 카테고리의 다른 글
[개발서적] The Pragmatic Programmer 요약 및 리뷰 - 실전 개발자들의 성장 교과서 (2) | 2025.08.02 |
---|---|
[개발서적] 이펙티브 자바(Effective Java) 핵심 요약 및 정리 - 조슈아 블로크 (4) | 2025.07.31 |
[개발서적] 클린 코드(Clean Code) 핵심 요약 – 읽기 쉬운 코드가 진짜 좋은 코드다 (2) | 2025.07.30 |
[개발서적] 리팩터링(Refactoring) 핵심 요약 및 정리 – 마틴 파울러, 읽기 쉬운 코드의 재설계 (3) | 2025.07.29 |