오늘의 공부범위 : 강의 24강 내용(Part3. ch1. 1강)
목차
1. 시스템, 시스템설계란?
2. 시스템 설계의 필요성
3. 설계유형
#1. 시스템, 시스템설계란?
시스템에 대한 정의부터 간단하게 해보자. 시스템이라고하면 너무 광범위가 생각될 수 있어서, 웹 개발에 한정해서 시스템의 정의를 알아보자. 웹 개발에서, 시스템은 기능적인 웹사이트나 웹 애플리케이션을 만들기 위해 함께 작동하는 구성 요소(컴포넌트)들의 집합을 의미한다. 이러한 구성 요소에는 하드웨어, 소프트웨어 및 데이터가 포함될 수 있으며, 이 모든 구성 요소는 웹 사이트 방문자에게 사용자 친화적인 경험을 제공하는 데 사용된다.
이렇게 정의해 볼 수 있겠고, 시스템 설계 이러한 시스템의 요구사항을 충족하기 위해 필요한 아키텍처, 인터페이스 및 데이터를 정의하는 과정이자 앞서 언급한 컴포넌트들의 관계와 동작 메커니즘을 표현하기 위한 구조체의 밑그림을 그리는 것을 말한다.
#2. 시스템 설계는 왜 필요한걸까?
강의해주신 설계의 필요성에 대한 내용을 종합해서 정리하면 다음과 같이 정리될 수 있다.
- 시스템 안정성을 보장하기 위해 소프트웨어 개발 과정에서 설계는 시스템의 안정성을 보장한다. 소프트웨어는 다양한 입력에 의해 동작하므로 설계를 통해 예측할 수 없는 상황에서의 시스템 동작을 방지할 수 있다.
- 유지 보수성을 높이기 위해 설계를 통해 시스템의 모듈화, 추상화 등을 고려하여 유지 보수성을 높일 수 있다. 이렇게 설계된 시스템은 변경이나 확장이 필요할 때에도 용이하게 대처할 수 있다.
- 개발 비용을 절감하기 위해 설계를 통해 개발자들은 시스템의 전반적인 구조와 동작 방식에 대한 이해를 높일 수 있다. 이는 개발 비용을 줄일 수 있으며, 시간을 절약할 수 있다.
- 팀원 간 의사소통을 원활하게 하기 위해 설계는 시스템에 대한 공통된 이해를 형성하게 해준다. 이는 팀원 간 의사소통을 원활하게 하고, 문제 해결에 대한 토론을 촉진한다.
따라서, 설계는 소프트웨어 개발 프로세스에서 매우 중요한 단계이며, 설계를 통해 시스템의 안정성, 유지 보수성, 개발 비용 절감, 의사소통 등을 보장할 수 있다고 정리해 볼 수 있겠다.
그런데, 이 시스템이란 것도 이 하나의 웹 앱을 만드는 과정에서 여러가지가 존재할 수 있다. 따라서 다양한 시스템의 유형과 각각에 대한 이론을 배울 것이다. 유형을 살펴보고 다음시간에는 이론들을 쭉 살펴보도록 하자.
#3. 설계 유형
- 아키텍처 설계: 소프트웨어의 전체 구조를 high-level에서 기술. 구성 요소를 정의하고 요소들 간의 관계를 정의
- 자료구조 설계: 소프트웨어의 요구사항을 충족시키기 위해 필요한 요소들을 자료구조로 변환하여 설계하는 과정
- 인터페이스 설계: 사용자와 소프트웨어 간, 소프트웨어를 구성하는 구성 요소 간 어떻게 통신하는지 protocol과 주고받을 데이터 내용 등을 설계하는 과정
이 외에도 더 세세하게 분류할 수도 있겠지만 이 정도 수준에서 일단 이해하는게 좋을 것 같았다. 자료구조나 이런 부분은 코테 준비가 조금 소홀한 요즘 공부가 아직 부족하기도하므로 인터페이스 설계가 일단 가장 만만해 보인다.
인터페이스 설계란 사용자와의 상호작용은 물론 서버와의 상호작용까지 고려하여(API) 설계하는 것이다. 어떤 부분에서 데이터가 입력되고 언제 서버로 전송되는지 일련의 과정은 매우 중요하다.
앞으로 이론을 더 보충하며 제대로 설계해보자!!
관련링크
패스트캠퍼스 : http://bit.ly/3Y34pE0
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
#패스트캠퍼스 #패캠챌린지 #수강료0원챌린지 #환급챌린지 #직장인인강 #직장인자기계발 #패캠인강후기 #패스트캠퍼스후기 #오공완 #사이드프로젝트10개기술스택으로구현하는풀스택서버리스프로젝트withReact
'study > Challenge' 카테고리의 다른 글
[Challenge / day-20] 시스템 이론(3) class diagram (0) | 2023.03.11 |
---|---|
[Challenge / day-19] 시스템 이론(1-2) Architecture diagram, Sequence diagram (1) | 2023.03.10 |
[Challenge / day-17] 원하는 기능 추가 및 AWS 둘러보기 (5) | 2023.03.08 |
[Challenge / day-16] 파트 복습 (0) | 2023.03.07 |
[Challenge / day-15] 릴리즈 날짜 계산하기 (0) | 2023.03.06 |