굳이 정리할 필요 없을 것 같아서 PASS

1. 시스템 설계의 정의


소프트웨어 시스템의 아키텍처나 구성 요소, 인터페이스, 데이터의 효율적인 관리 전략을 세우는데 시스템 설계는 필수이다. 잘 설계된 시스템은 성능, 유지보수성 등에서 뛰어나다. 이 장에서는 시스템 설계라는 주제를 소개하고, 다양한 설계 유형과 중요성을 다룬다. 시스템 설계의 중요성에 대해 배워보자.

소프트웨어를 만들 때 규모가 크던 작던 특정 요구 사항을 이루기 위해 아키텍처를, 구성요소를, 인터페이스 등을 정의하는 과정이 있다. 이를 시스템 설계라고 한다.

1.1 소프트웨어 시스템

소프트웨어 시스템은 특정 요구사항을 수행하기 위해 함께 동작하는 컴포넌트, 모듈, 프로그램의 집합이다. 필요에 따른 소프트웨어 애플리케이션의 집합으로 구성된다. 또한 이는 단순 프로그램일 수도, 네트워크로 연결되어있는 분산 시스템일 수도 있다.

1.2 분산 소프트웨어 시스템

분산 소프트웨어 시스템은 서로 통신을 주고 받으며 하나의 공동 목표를 달성하려고 동작하는 여러 독립적인 컴포넌트이다. 지리적으로 다른 위치에 있는 여러 기기와 네트워크에 걸쳐있는 것이 특징이다.

분산 시스템은 주로 확장성, 가용성, 장애 허용이 중요한 요구 사항으로 등장하는 대규모 애플리케이션을 구축할 때 사용한다. 분산 시스템은 고민할 것이 많기 때문에 개발 및 유지보수가 쉽지 않다.

1.3 시스템 설계의 이해

굳이 정리 안해도 될듯

2. 시스템 설계의 다양한 유형