
634
3
부
사람
16.216.2
소프트웨어 아키텍트란?소프트웨어 아키텍트란?
소프트웨어 아키텍처에 대한 가장 유명한 정의 중 하나는 랄프 존슨
Ralph
Johnson
이 보낸 이메일
에서 나왔다. “아키텍처는 중요한 것에 관한 것이다. 그것이 무엇이든 간에.”
22
그렇다면 중요한
일은 모두 아키텍트에 의해 수행된다는 뜻일까? 다른 일은 전부 중요하지 않다는 의미일까? 자
주 인용되는 이 말의 문제점은 랄프가 공유한 정의를 포괄적으로 이해하지 못한 채 단독으로
사용되는 경우가 많다는 것이다. 첫째, 그가 소프트웨어 개발자의 관점에서 이야기하고 있다는
사실만큼은 분명하다. 그는 계속해서 이렇게 말한다.
따라서 더 나은 정의는 이렇다. ‘대부분의 성공적인 소프트웨어 프로젝트에서 해당 프로젝트에 참
여하는 전문 개발자들은 시스템 설계에 대한 공유된 이해를 갖고 있다. 이 공유된 이해를 ‘아키텍
처’라고 한다. 이와 같은 이해에는 시스템이 구성 요소로 분해되는 방식과 구성 요소가 인터페이스
를 통해 상호작용하는 방식이 포함된다. 이러한 구성 요소는 일반적으로 더 작은 구성 요소로 구
성되지만, 아키텍처에는 모든 개발자가 이해하는 구성 요소와 인터페이스만 포함된다.’
이 정의가 더 나은 이유는 아키텍처가 사회적 구성물이라는 점이 확실하기 때문이다 (소프트웨어
도 그렇지만 ...