더북(TheBook)

3.2 변화의 유형

우리는 처음부터 시스템 아키텍처와 설계를 구분해 왔습니다. 시스템 아키텍처는 기본적인 구조를 의미하며, 시스템 설계는 특정 시점의 구조를 나타냅니다. 시스템 아키텍처는 시간이 흐름에 따라 시스템이 진화하는 모습을 그리는 데 반해, 시스템 설계는 특정 시점을 포착합니다. 다시 말해 아키텍처는 시간 흐름을 감안한 설계라고 할 수 있습니다.

이처럼 아키텍처 설계는 잠재적으로 나타날 수 있는 모든 시스템의 구현을 담고 있습니다. 따라서 시스템을 상대적으로 조금만 변경한다면 별도의 아키텍처 작업 없이도 적용할 수 있습니다. 아울러 일부만 변경할 때는 별도로 설계를 변경하지 않고 현재 시스템 설계 내에서 구현하기도 합니다.

이와 반대로 상대적으로 많이 변경해야 한다면 기존 아키텍처에 부합하지 않는 새로운 설계를 요구하기도 합니다. 이 경우에는 시스템 아키텍처 자체가 진화해야 하며, 잠재적으로 사용할 수 있는 설계 집합도 변해야 합니다. 이러한 이유로 아키텍처와 설계, 구현 간 구분이 중요함에도 종종 모호해지는 문제가 발생합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.