설계(design)과 아키텍처(architecture)의 사이에는 오랫동안 많은 혼란이 있었다.
설계란 무엇인가? 아키텍처는? 둘의 차이는?
결론적으로 얘기하면 둘은 아무 차이가 없다.
새로운 집을 설계하는 아키텍트가 있다고 하자.
이 집은 모든 고수준의 결정사항을 지탱하는 모든 세부사항을 자세하게 확인할 수 있다.
이러한 저수준의 세부사항과 고수준의 결정사항은 집의 전체 설계의 구성요소가 된다.
소프트웨어 설계도 마찬가지다.
저수준의 세부사항과 고수준의 구조는 모두 소프트웨어 전체 설계의 구성요소다.
고수준에서 저수준으로 향하는 의사결정의 연속성만 있을 뿐이다.
[목표는?]
그렇다면 이러한 의사결정의 목표는? 좋은 소프트웨어의 목표는?
소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화하는데 있다.
[무엇이 잘못되었나?]
현대의 개발자는 뼈빠지게 일한다. 하지만 그들의 뇌는 잠에 취해 있다.
훌륭하고 깔끔하게 잘 설계된 코드가 중요하다는 사실을 알고 있는 바로 그 뇌가 잠자고 있다.
엉망으로 만들면 깔끔하게 유지할 때보다 항상 느리다.
빨리가는 유일한 방법은 제대로 가는 것이다.
[결론]
소프트웨어 아키텍처를 심각하게 고려할 수 있으려면 좋은 소프트웨어 아키텍처가 무엇인지 이해해야 한다.
'Book Notes' 카테고리의 다른 글
| [개발서적] Clean Architecture 3. 패러다임 개요 (0) | 2025.11.04 |
|---|---|
| [개발서적] Clean Architecture 2. 두 가지 가치에 대한 이야기 (0) | 2025.11.01 |
| [개발서적] Clean Code 17. 냄새와 휴리스틱 (1) | 2025.10.28 |
| [개발서적] Clean Code 15. Junit 들여다보기 (0) | 2025.10.28 |
| [개발서적] Clean Code 13. 동시성 (0) | 2025.10.28 |