행위와 구조
- 모든 소프트웨어 시스템은 '행위(Behavior)'와 '구조(Structure)' 두 가지 가치를 제공한다.
- 개발자는 반드시 두 가지 가치를 모두 높게 유지해야하는 책임을 가진다.
행위 (Behavior)
- 개발자는 기능 명세서나 요구사항 문서를 구체화할 수 있도록 돕고, 요구사항을 충족시키기 위해 코드를 작성한다.
- 단순히 요구사항을 구현하고 버그를 수정하는 것만이 개발자의 책임이 아니다.
아키텍처(Architecture)
- 소프트웨어를 만든 이유는 기능을 쉽게 변경할 수 있도록하기 위함이다.
- 변경사항을 적용하는 데 드는 비용은 변경되는 범위(Scope)에 비례해야하며, 변경사항의 형태(Shape)와는 관련이 없어야 한다.
- 아키텍처가 특정 형태를 선호할수록 변경은 어려워지기 때문에 아키텍처의 형태는 독립적이여야 한다.
기능인가 아키텍처인가?
1) 행위
- 긴급하지만 매번 높은 중요도를 가지는 것은 아니다.
2) 아키텍처
- 중요하지만 즉각적인 긴급성을 필요로 하는 경우는 절대 없다.
더 높은 가치
- 개발자가 흔히 저지르는 실수는 '긴급하지만 중요하지 않은 기능'과 '긴급하면서 중요한 기능'을 구분하지 못하고 '중요도가 높은' 아키텍처를 무시한 채 '중요도가 떨어지는 기능'을 선택한다.
- 개발자는 이러한 부분을 인지하고 업무관리자에게 아키텍처의 중요성을 이해시키는 책임을 가진다.
- 아키텍처의 중요성을 인지하고 변경이 불가능한 소프트웨어 시스템이 되지 않도록 노력해야 한다.
서적 : http://www.yes24.com/Product/Goods/77283734
'Architecture' 카테고리의 다른 글
[Clean Architecture 정리] 4장. 구조적 프로그래밍 (0) | 2022.07.16 |
---|---|
[Clean Architecture 정리] 3장. 패러다임 개요 (0) | 2022.07.10 |
[Clean Architecture 정리] 1장. 설계와 아키텍처란? (0) | 2022.07.09 |
[Clean Code 정리] 시스템 (0) | 2022.05.30 |
[Clean Code 정리] 클래스 (0) | 2022.05.30 |
댓글