📌 소프트웨어 아키텍처
- 소프트웨어 시스템의 기본 구조와 그러한 구조 및 시스템을 만드는 분야
- 각 구조는 소프트웨어 요소, 소프트웨어 사이의 관계, 요소와 관계의 속성으로 구성
- 시스템 및 개발 프로젝트의 청사진 역할을 하며 설계 팀이 실행하는 데 필요한 작업을 제시함
기본 원리
- 모듈화
- 추상화
- 전체적이고 포괄적인 개념 설계 → 차례로 세분화 / 구체화
- 단계적 분해
- 문제를 상위의 중요 개념 → 하위 개념 으로 구체화시키며 분할
- 정보 은닉
- 한 모듈 내부에 포함된 절차와 자료를 숨기며 독립적 수행을 가능하도록 함
- 다른 모듈이 접근하거나 변경하지 못하도록
좋은 아키텍처와 디자인이라면 기존의 소스코드가 플랫폼화되고, 빠른 속도로 기능을 추가할 수 있게 된다. (유지보수성 ⬆️)
👉 소프트웨어 아키텍처는 소프트웨어의 내부적인 질을 높이기 위해 고려되는 소프트웨어의 구조
소프트웨어 아키텍처에서 일반적으로 발생하는 문제점들에 대해 일반화된 솔루션을 제공하는 것이 소프트웨어 아키텍처 패턴
소프트웨어 아키텍처 패턴 👉 자주 사용되고, 이미 검증된 소프트웨어 아키텍처의 패턴