소프트웨어 요소들과 각 요소의 외부 속성 그리고 이들 사이의 관계를 구성하는 시스템의 구조이다.
소프트웨어 구조(software architecture)는 소프트웨어의 구성요소들 사이에서 유기적 관계를 표현하고 소프트웨어의 설계와 업그레이드를 통제하는 지침과 원칙이다.(위키백과)
Clean Architecture
에자일소프트웨어 개발선언의 일원이기도 한 'Robert C Martin'님이 정의하고 소개한 소프트웨어 아키텍쳐중 하나로서,
의존성 규칙(Dependency Rule)을 따르며, 소프트웨어 각 계층을 각 관심사에 맞게 분리하고, 쉽게 변경 및 테스트가 가능하도록 설계하는 소프트웨어 구조