1. 요구 사항 수집, 분석 및 분류시스템 요구 사항의 정의: 클라이언트를 위해 만들어야 할 항목을 파악하고 정리하는 과정입니다.대규모 시스템 설계의 특성:일반적인 요구 사항과의 차이: 메서드, 알고리즘, 클래스 등을 구현하는 일반적인 요구 사항과 달리, 대규모 시스템은 추상화 단계와 범위가 다르며, 설계해야 하는 솔루션도 다릅니다.추상화 수준: 추상화 단계가 높아질수록 문제 해결을 위한 자유도와 경우의 수가 다양해지며, 문제의 범위가 넓어져 시각적인 구현이 어려워집니다.기술적 제한: 기존 코드를 기반으로 메서드나 알고리즘을 수행할 경우, 입력 값과 결과 값을 알고 있어야 하고, 사용할 프로그래밍 언어에도 제한이 있습니다.2. 요구 사항의 모호성 및 그 원인모호성의 원인:엔지니어의 요구 사항 구상 부족:..
소프트웨어 아키텍처 동기 (Motivation)소프트웨어 아키텍처 설계를 잘하면 시스템 구조가 커지더라도 성능 영향을 덜 받게 되고 기능을 추가할 때 확장성이 용이합니다. 반대로 아키텍처를 잘못 설계하게되면 성능 저하와 확장성의 문제가 생기고 이것을 개선하기위해 아키텍처를 다시 설계해야 하기 때문에 재설계 비용이 발생합니다.구조의 중요성: 우리가 개발하는 모든 소프트웨어는 특정한 구조를 가지고 있습니다. 시스템의 기능을 수행하도록 코드를 작성하는 방법은 무한하지만, 설계 방식에 따라 소프트웨어는 서로 다른 특성을 지니게 됩니다.성능과 규모 영향: 소프트웨어 아키텍처는 시스템의 성능과 규모에 직접적인 영향을 미칩니다. 예를 들어, 새 기능을 쉽게 추가할 수 있는지, 오류나 보안 공격에 대한 대응 방법 등에..