이해관계자들의 Concern(고려 사항)들을 반영하여소프트웨어 시스템의 구조와 그 구성 요소 간의 관계, 기능/비기능 요구 사항과 제약 조건 등을 정의한 설계도쉽게 말하면, 프로그램을 어떻게 나누고, 어떻게 연결하고, 어떻게 동작하도록 설계할지 큰 그림을 잡는 것초기에
소프트웨어 시스템의 목적과 사용 맥락을 정의하고, 문서화하고, 관리하는 구조화된 활동 집합사용자의 실제 요구와 소프트웨어 기술을 연결하는 다리 역할요구사항 누락 → 기능 미흡 → 재작업 비용 증가 → 테스트/검증 지연오해/커뮤니케이션 오류→ 반면, 초기 요구 정의에 충
소프트웨어 개발 생명주기(SDLC)RequirementsDesignDevelopmentTestingProduction
UML(Unified Modeling Language)은 소프트웨어 집약 시스템의 설계, 명세, 시각화, 구축, 문서화를 위한 표준화된 모델링 언어이다. 객체지향 패러다임을 효과적으로 구현하고 다양한 개발 참여자 간의 의사소통을 원활하게 하기 위해 고안되었다.복잡한 시
아키텍처 스타일은 반복적으로 등장하는 소프트웨어 구조 유형을 추상화한 것으로, 일정한 구성 요소와 이들 간의 관계 및 제약 조건을 정의→ 아키텍처 스타일은 소프트웨어 엔지니어가 품질 속성(QA)에 대해 논리적으로 사고하고 판단하는 데 도움을 줌정의: 시스템이 언제든 요
SW Architecture란?소프트웨어 아키텍처는 시스템에 대해 추론하기 위해 필요한 구조들의 집합으로, 이는 소프트웨어 요소들과 그들 간의 관계 및 각 요소와 관계의 속성을 포함한다.Architectural View(아키텍처 뷰)는 시스템 아키텍처의 특정 관심사(c
소프트웨어 아키텍처는 단순히 기능(FR, Functional Requirements)을 구현하는 것이 아니라, 다양한 품질 속성(QA, Quality Attributes)을 만족시키고, 제약 조건을 준수하는 설계 결정을 포함함. 이 때 핵심 역할을 하는 요소가 Arch
컴포넌트 설계 원칙(Component Design Principles)은 모듈화(Modularity), 변경 용이성(Changeability), 재사용성(Reusability), 유지보수성(Maintainability)을 극대화하기 위해 소프트웨어 컴포넌트의 구성 방식
서버, 네트워크, 특정 하드웨어 부품을 비롯한 특정 컴퓨터 시스템이 주어진 기능을 실제로 수행할 수 있는 시간의 비율$$가용성 = {업타임 \\over 업타임 + 다운타임}$$$$업타임: 정상적인 사용 시간, 다운 타임: 모종의 이유로 인해 정상적인 사용이 불가능한 시
Load Balancer(로드밸런서): 들어오는 트래픽(요청)을 여러 서버 또는 리소스로 효율적으로 분산해 성능과 가용성을 확보하기 위한 하드웨어 장치 또는 소프트웨어목적: 부하 분산, 성능 향상, 서비스 안정성 확보즉, “하나의 서버로 모든 요청이 몰리는 문제를 방지