데브허브 | DEVHUB | 이펙티브 아키텍쳐 - 2. 설계이론과 의미
- 소프트웨어 설계는 코드 수준의 관용적인 방법(프랙티스)부터 시스템 전체에 이르기까지 규모에 따라 계층적으로 접근한다. 📏
- C4 모델은 컨텍스트, 컨테이너, 컴포넌트, 코드 레벨에서 설계를 구조화하는 접근 방식이다. 🗺️
- 설계 사고 체계는 일관된 가치관인 '철학' 🧠, 조직 내 합의된 규칙인 '원칙' 🤝, 그리고 특정 문제에 대한 미리 정해진 해결책인 '패턴' 🧩으로 구성되어 팀의 일관성과 효율성을 높인다.
- 소프트웨어 설계의 본질은 코드를 재배치하고 격리하는 행위이며, 리팩토링 또한 설계의 일환이다. ✂️
- 코드 재배치 및 격리의 핵심 기준은 '변화율'이다. 코드가 변하는 이유를 예측하고 식별하여, 변화하는 범주별로 코드를 분류하고 격리함으로써 한 부분의 변화가 다른 부분에 미치는 영향을 최소화한다. 🔄
- 궁극적으로 설계는 변화에 유연하게 대응하고, 코드의 유지보수성을 높이며, 시스템의 수명을 연장하는 데 기여한다. 🚀