더북(TheBook)

효과적인 소프트웨어 아키텍처 관행은 제품 개발 조직이 더 나은 소프트웨어를 더 빠르게 생산할 수 있게 합니다. 하지만 이러한 효과적인 관행을 논의하기에 앞서, 먼저 소프트웨어 아키텍처라는 용어를 이해해야 합니다. 소프트웨어 아키텍처는 업계에서 자주 사용하는 용어지만 때로는 모호하게 사용하기도 합니다. 다만 이 책에서 다루는 내용은 엄격한 아키텍처 정의와 밀접하게 연관되어 있으므로 먼저 아키텍처부터 명확하게 정의해야 합니다.

소프트웨어 아키텍처는 자주 소프트웨어 설계와 혼용해서 사용합니다. 하지만 실제로 두 개념은 다릅니다. 소프트웨어 설계는 시스템 요소를 특정 시점에 맞게 구체적으로 나타내는 과정입니다. 예를 들어 시스템의 각 릴리스(release)1에 포함될 변경 사항을 어떻게 개발하고, 해당 변경 사항이 어떻게 동작하도록 할지 결정하는 과정은 소프트웨어 설계에 해당합니다.

시스템의 다음 버전을 만들 때는 이전 버전을 수정하여 새로 설계하고 그 변경 사항을 시스템에 적용합니다. 즉, 이전 설계를 완전히 버리고 처음부터 다시 시작하는 것이 아니라, 기존 설계를 기반으로 하여 설계합니다. 이에 따라 모든 설계는 항상 바로 이전 설계와 관련이 있습니다.

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