635
16
장
진화하는 아키텍트
확인해야 한다. 논리적이지만 물리적이지 않거나 형태는 있지만 개발자 경험이 없는 등 한 측
면만 바라보면 아키텍트의 실효성은 제한된다. 아키텍처를 시스템을 이해하는 것이라는 사실
을 받아들인다면, 관심을 두는 범위를 제한하는 것은 추론하고 변경하는 능력을 제한하는 것과
같다.
아키텍처는 그 안에서 살아가는 사람들에게는 보이지 않을 수 있다. 실제로 존재하지 않을 정
도로 아주 미미할 수도 있다. 올바른 결과를 얻을 수 있도록 안내하고 도와주는 무언가가 될 수
도 있다. 숨 막히고 위압적일 수도 있다. 또한 악의 없이 자신도 모르게 기쁨을 주기도 하고, 악
의 없이 정신을 짓밟기도 한다. 따라서 아키텍처가 '중요한 것'에 관한 것이든 아니든 간에 아키
텍처는 분명
중요하다중요하다
.
소프트웨어 아키텍처를 정의하는 데 자주 사용되는 또 다른 명언은 마틴이 랄프의 견해를 공유
하는 동일한 글에서 나오며 다음과 같다. ‘따라서 아키텍처를
사람들이 바꾸기 어렵다고 인식하사람들이 바꾸기 어렵다고 인식하
는 것는 것
으로 정의하게 될지 모른다.’ 아키텍처는 바꾸기 어려운 것이라는 마틴의 생각은 어느 정
도 일리가 있다. 건축 환경에서의 아키텍처 개념으로 돌아가게 한다. 바꾸기 어려운 것일수록
우리가 올바른 방향으로 나아가고 있는지 확인하기 위해 미리 생각해야 한다. 하지만 복잡한
아이디어에 대한 단순한 정의를 실무적인 정의로 삼아 실행하는 데는 문제가 있다. 소프트웨어
아키텍처에 대해 전적으로 이와 같이 생각한다면 많은