맨위로가기

시스템 설계

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

시스템 설계는 지정된 요구 사항을 충족하기 위해 전자 제어 시스템의 인터페이스 및 데이터를 정의하고 개발하는 프로세스이다. 물리적 설계, 웹 시스템 설계, 기계 학습 시스템 설계 등 다양한 유형이 있다. 물리적 설계는 시스템의 실제 입력 및 출력 프로세스를 다루며, 웹 시스템 설계는 확장성, 가용성, 안정성을 고려해야 한다. 기계 학습 시스템 설계는 데이터 파이프라인, 모델 훈련 및 배포 인프라를 고려하여 실제 문제를 해결하기 위한 ML 모델을 통합하는 시스템을 구축하는 데 중점을 둔다.

더 읽어볼만한 페이지

  • 전자 설계 자동화 - FPGA
    FPGA(Field-Programmable Gate Array)는 사용자가 하드웨어 설계를 변경할 수 있는 집적 회로이며, CPLD에서 파생되어 다양한 제조 기술을 사용하고 디지털 신호 처리, 통신 등 여러 분야에 활용된다.
  • 전자 설계 자동화 - 래더 로직
    래더 로직은 PLC 프로그래밍에 사용되는 그래픽 기반 언어로, 릴레이 회로를 연상시키는 접점과 코일을 사용하여 AND, OR, NOT 등의 논리 연산을 구현, 자동화 시스템을 제어한다.
  • 소프트웨어 설계 - 구조적 분석
    구조적 분석은 1960년대에서 1980년대 소프트웨어 개발의 복잡성을 해결하기 위해 개발된 기법으로, 다이어그램과 데이터 사전을 활용하여 시스템을 분석하고 설계했으며, 객체 지향 프로그래밍의 등장으로 활용도가 감소했다.
  • 소프트웨어 설계 - 지속적 배포
    지속적 배포(CD)는 소프트웨어 릴리스 프로세스를 자동화하는 접근 방식이며, 배포 파이프라인을 통해 구현되고 시장 출시 시간 단축, 제품 품질 향상 등의 이점을 제공하지만 테스트 자동화 부족 등의 과제도 존재한다.
  • 컴퓨터 시스템 - 마이크로프로세서
    마이크로프로세서는 CPU 기능을 단일 IC에 통합한 것으로, 무어의 법칙에 따라 성능이 향상되어 왔으며 다양한 아키텍처와 기술 발전을 거쳐 현재 광범위한 분야에서 사용된다.
  • 컴퓨터 시스템 - 아두이노
    아두이노는 Atmel AVR 마이크로컨트롤러 기반의 오픈 소스 하드웨어 플랫폼으로, C 언어와 유사한 스케치를 통해 프로그래밍이 가능하며, 다양한 플러그인 쉴드를 이용해 기능을 확장할 수 있어 교육, 시제품 제작, IoT 개발 등에 활용된다.
시스템 설계
시스템 설계
시스템 설계는구성 요소의 구조, 동작, 그리고 더 나아가 단순 시스템에서 복잡 시스템에 이르기까지 시스템을 구현하는 데 필요한 데이터를 정의하는 프로세스이다.
시스템 설계는시스템 아키텍처의 광범위한 정의와 달리 시스템의 서브 시스템과 구성 요소를 정의하는 보다 구체적인 프로세스로 간주될 수 있다.
시스템 설계는모듈식 제품 아키텍처의 구현을 포함한다.
시스템 설계와 관련된 분야시스템 아키텍처
소프트웨어 아키텍처
데이터 아키텍처
컴퓨터 아키텍처
전기 공학
개요
시스템 설계는요구 사항을 충족하는 효과적인 시스템을 만드는 데 필요한 단계와 의사 결정 과정을 포함한다.
시스템 설계 프로세스일반적으로 문제 정의, 요구 사항 분석, 시스템 아키텍처 설계, 구성 요소 설계, 구현, 테스트 및 평가 단계를 포함한다.
시스템 설계의 목표기능적 요구 사항을 충족하고, 성능 및 신뢰성을 최적화하며, 비용 효율성을 고려하고, 확장성과 유지 보수성을 확보하는 것이다.
고려 사항
시스템 설계 시 고려 사항확장성
신뢰성
가용성
보안
성능
비용
유지 보수성
사용성
시스템 설계 접근 방식
시스템 설계 접근 방식상향식 설계
하향식 설계
객체 지향 설계
서비스 지향 설계
시스템 설계 도구 및 기술
시스템 설계 도구 및 기술UML (Unified Modeling Language)
SysML (Systems Modeling Language)
모델 기반 시스템 엔지니어링 (MBSE)
시뮬레이션 및 모델링
시스템 설계의 중요성
시스템 설계의 중요성성공적인 시스템 개발을 위한 필수적인 단계이며, 초기 단계에서 잠재적인 문제를 식별하고 해결하여 비용을 절감하고 개발 시간을 단축할 수 있다. 또한 시스템 설계는 시스템의 품질, 성능 및 신뢰성을 향상시키는 데 도움이 된다.
시스템 설계 교육
시스템 설계 교육컴퓨터 과학, 소프트웨어 공학, 시스템 공학 등의 분야에서 교육을 받을 수 있으며, 다양한 온라인 강좌와 워크샵을 통해 학습할 수도 있다.

2. 시스템 설계의 개념

시스템 설계는 요구 사항을 충족하기 위해 전자 제어 시스템의 인터페이스 및 데이터와 같은 시스템을 정의하고 개발하는 과정이다. 시스템 설계는 제품 개발에 시스템 이론을 적용한 것으로, 시스템 분석, 시스템 아키텍처, 시스템 엔지니어링 분야와 일부 겹치는 부분이 있다.[6][7] 이는 "마케팅, 디자인, 제조의 관점을 제품 개발에 대한 단일 접근 방식으로 융합"하는 더 넓은 범위의 제품 개발 과정의 일부이다.[5]

2. 1. 물리적 설계

물리적 설계는 시스템의 실제 입력 및 출력 프로세스와 관련이 있다. 이는 데이터가 시스템에 어떻게 입력되고, 어떻게 검증 및 인증되며, 어떻게 처리되고, 어떻게 표시되는지 설명한다.

물리적 설계에서는 시스템에 대한 다음 요구 사항이 결정된다.

  • 입력 요구 사항
  • 출력 요구 사항
  • 저장 요구 사항
  • 처리 요구 사항
  • 시스템 제어 및 백업 또는 복구[8]


다시 말해, 시스템 설계의 물리적 부분은 일반적으로 다음 세 가지 하위 작업으로 나눌 수 있다.

  • 사용자 인터페이스 설계
  • 데이터 설계
  • 프로세스 설계

2. 2. 웹 시스템 설계

구글, 트위터, 페이스북, 아마존, 넷플릭스 등과 같은 온라인 웹사이트는 전 세계 수백만 명의 사용자가 이용하고 있다. 증가하는 사용자 수를 수용하기 위해서는 확장 가능하고 가용성이 높은 시스템을 설계해야 한다. 시스템 설계 시 고려해야 할 사항은 다음과 같다.

  • 기능 및 비기능 요구 사항
  • 용량 추정
  • 사용할 데이터베이스 (관계형 또는 NoSQL)
  • 수직적 확장, 수평적 확장, 샤드
  • 로드 밸런싱
  • 주-보조 복제
  • 캐시 및 CDN
  • 상태 비저장 및 상태 저장 서버
  • 데이터 센터 지리적 라우팅
  • 메시지 큐, 발행-구독(Publish-Subscribe) 아키텍처
  • 성능 지표 모니터링 및 로깅
  • 빌드, 테스트, 구성 배포 자동화
  • 단일 실패 지점 찾기
  • API 속도 제한
  • 서비스 수준 계약

2. 3. 기계 학습 시스템 설계

기계 학습 시스템 설계는 실제 문제를 해결하기 위해 기계 학습(ML) 모델을 통합하는 확장 가능하고 안정적이며 효율적인 시스템을 구축하는 데 중점을 둔다. ML 시스템은 데이터 파이프라인, 모델 훈련 및 배포 인프라를 신중하게 고려해야 한다. ML 시스템은 추천 시스템, 사기 탐지에서의 인공 지능, 자연어 처리와 같은 애플리케이션에 자주 사용된다.[9]

ML 시스템을 설계할 때 고려해야 할 주요 구성 요소는 다음과 같다.

# 문제 정의: 문제, 데이터 요구 사항 및 평가 지표를 명확하게 정의한다. 성공 기준에는 정확성, 지연 시간 및 확장성이 포함되는 경우가 많다.[9]

# 데이터 파이프라인: 데이터를 수집, 정리, 변환 및 검증하기 위한 자동화된 파이프라인을 구축한다.[10]

# 모델 선택 및 훈련: 적절한 알고리즘 (예: 선형 회귀, 결정 트리, 신경망)을 선택하고 텐서플로우 또는 파이토치와 같은 프레임워크를 사용하여 모델을 훈련한다.

# 배포 및 서비스: 훈련된 모델을 컨테이너화된 서비스 (예: 도커쿠버네티스)와 같은 확장 가능한 아키텍처를 사용하여 프로덕션 환경에 배포한다.[11]

# 모니터링 및 유지 관리: 모델 성능을 지속적으로 모니터링하고 필요에 따라 재훈련하며 개념 드리프트가 해결되었는지 확인한다.[12]

ML 시스템을 설계하려면 시스템 확장성 및 안정성을 보장하면서 정확성, 지연 시간, 비용 및 유지 관리성 간의 균형을 맞춰야 한다. 이 분야는 기계 학습 개발 및 운영을 통합하여 ML 시스템의 원활한 배포 및 수명 주기 관리를 보장하는 일련의 관행인 MLOps와 겹친다.

참조

[1] 서적 Design for the Real World: Human Ecology and Social Change Academy Chicago 1984
[2] 논문 A framework for sustainable whole systems design https://www.scienced[...] 2012
[3] 논문 A Scientific Foundation of Simulation Games for the Analysis and Design of Complex Systems 2018
[4] 논문 Critical heuristics of social systems design 1987-09
[5] 서적 Product Design and Development Irwin McGraw-Hill
[6] 간행물 https://www.its.bldr[...]
[7] 간행물
[8] 서적 Information technology applications Pitman 1991
[9] 서적 MLOps Lifecycle Toolkit: A Software Engineering Roadmap for Designing, Deploying, and Scaling Stochastic Systems Apress
[10] 논문 Data Management Challenges in Production Machine Learning
[11] 서적 Designing Machine Learning Systems O'Reilly Media
[12] 웹사이트 Machine Learning at Scale: Challenges and Best Practices https://cloud.google[...] 2020
[13] 간행물 http://www.its.bldrd[...]
[14] 간행물



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com