Book Notes

[개발서적] Clean Architecture 1. 설계와 아키텍처

feel2 2025. 11. 1. 10:46

설계(design)과 아키텍처(architecture)의 사이에는 오랫동안 많은 혼란이 있었다.

 

설계란 무엇인가? 아키텍처는? 둘의 차이는?

 

결론적으로 얘기하면 둘은 아무 차이가 없다.

 

새로운 집을 설계하는 아키텍트가 있다고 하자.

이 집은 모든 고수준의 결정사항을 지탱하는 모든 세부사항을 자세하게 확인할 수 있다.

 

이러한 저수준의 세부사항과 고수준의 결정사항은 집의 전체 설계의 구성요소가 된다.

 

소프트웨어 설계도 마찬가지다.

저수준의 세부사항과 고수준의 구조는 모두 소프트웨어 전체 설계의 구성요소다.

고수준에서 저수준으로 향하는 의사결정의 연속성만 있을 뿐이다.

 

[목표는?]

그렇다면 이러한 의사결정의 목표는? 좋은 소프트웨어의 목표는?

소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화하는데 있다.

 

[무엇이 잘못되었나?]

현대의 개발자는 뼈빠지게 일한다. 하지만 그들의 뇌는 잠에 취해 있다.

 

훌륭하고 깔끔하게 잘 설계된 코드가 중요하다는 사실을 알고 있는 바로 그 뇌가 잠자고 있다.

 

엉망으로 만들면 깔끔하게 유지할 때보다 항상 느리다.

빨리가는 유일한 방법은 제대로 가는 것이다.

 

[결론]

소프트웨어 아키텍처를 심각하게 고려할 수 있으려면 좋은 소프트웨어 아키텍처가 무엇인지 이해해야 한다.