07 아키텍쳐 설계 절차 및 적용 - ChoDragon9/posts GitHub Wiki
소프트웨어 기능이 복잡, 다양해지면서 기능을 효과적으로 분할하고 다시 통합하는 과정이 매우 중요해졌다. 예전처럼 개발하는 방식은 이제 한계가 왔다. 시스템이 크고 복잡해졌기 때문에 구조를 만들어야 할 필요가 생겼다.
요구사항은 개발 초기에 반영되어야 만족하는 시스템을 개발 할 수 있다. 요구 사항이 누락되어 시스템 개발 과정에 도출된다면 전체 구조가 흔들릴 가능성이 매우 높다. 현실은 요구사항에 대한 누락이 자주 발생하고 관심이 부족하다. 아키텍처 설계를 제대로 하려면 요구사항 개발에 주목해야 한다.
아키텍처 설계는 개발 이전에 선행해서 진행해야 한다. 프로젝트 초기 단계부터 각 시스템 이해관계자와 긴밀한 소통을 통해 아키텍처 구조를 만들어가야 한다. 아키텍처 설계와 관련해서 가장 큰 이슈는 아직도 아키텍처 설계 필요성에 대한 인식과 아키텍처 설계 방법에 대한 이해가 부족하다는 것이다.
그래디 부치는 성공적인 시스템에는 실패한 시스템에서 볼 수 없는 공통적인 특징 두가지가 있다고 말했다. 그것은 바로 강력한 아키텍처 비전이 존재한다는 점과 반복적이고 점증적인 개발 주기를 잘 적용했다는 점이다.
아키텍처를 제대로 이해하려면 아키텍처와 관련된 다음과 같은 개념을 먼저 이해할 필요가 있다.
- 아키텍처 : 품질 속성 달성을 위한 프로젝트의 설계 그림이다.
- 품질 속성 시나리오 : 이해관계자들의 요구사항에서 도출된 품질 속성을 소프트웨어 아키텍처 설계관점으로 명확히 이해하기 위하여, 표현한 시나리오
- 아키텍처 스타일 : 소프트웨어의 작동 원리를 중심으로 계층적(Layer) 아키텍처 스타일을 정의하고 디자인 패턴(Design Pattern)을 활용한다.
아키텍처 평가
아키텍처가 충분히 설계되어 있는지 품질을 평가한다. 아키텍처 완성이 아니고 설계를 한 것이기 때문에 평가 단계가 필요하다. PoC 대상에 대한 검증을 실행한다.