개발자들 세계에서 시니어들이 시스템 설계를 한다는 이야기를 들어본적이 있을것이다.
도대체 그게 뭔가? 코드만 짜면 되는게 아닌가 라는 생각을 할 수 있지만
내가 생각하기에 이러한 개념없이 단순 코드만 짜는 사람을 코더 라고 생각하며
어느정도 시스템 설계 단계를 거치고 코드를 짜는 사람을 개발자라고 할 수 있지 않나 라는 생각을 하고있다.
나 역시 많이 부족하지만 오늘은 시스템 설계가 무엇인지 알아보기 위한 첫 시간을 가져보도록 하겠다.
일단 여담으로 아래와 같은 명품 시계의 모습을 보자. 엄청나게 정교하며 각 부품 태엽들이 맞물려 돌아가고 있다.
이 시계를 만드는 장인과 우리 개발자들은 뭔가 비슷한 모습이다 있다.
시계라는 개념대신 프로그램을 즉 어떠한 앱을 만들거나 웹을 만들거나 등 어떻게 이것에 대하여 각 기능, 부품 등을 만들지, 맞물려 잘돌아게 할지에 대하여 정의 하는게 개발자의 시스템 설계 라고 생각한다.
시스템이란?
정의
System =시스템= 체계
공통점인 목적을 가지고 있는 구성 요소들을 상호 결합
유기적인 집합체 : 구성체들이 서로 밀접하게 관련을 가지고 있어서 떼어 낼 수 없음
특성
- 목적성 : 구성요소의 기능은 서로 다르나, 하나의 공통된 목적을 가짐
- 자동성 : 조건에 따라 가장 적절한 처리로 대응
- 제어성 : 이상에 대한 사전 감지 및 수정 (규칙에 이탈되는 상황에 대한 감지 및 수정)
- 종합성 : 여러 구성 요소들의 집합 => 종합적으로 동작
기본 요소
입력(Input) : 처리 방법, 제어 조건, 처리할 데이터를 투입
출력(Output) : 처리된 결과를 출력
처리(Process) : 입력된 자료를 처리 조건에 따라 변환 및 가공
제어(Control) : 기본요소들이 각 과정을 올바르게 행하는지 감독
피드백(Feedback) : 처리된 결과가 만족되기 위한 재입력
시스템 분석가(SA)
- 개념 SA: System Analyst
- 전반적 시스템과 요구 사항을 파악하고 해결책을 마련하는 사람
- 목적과 현 시스템의 문제점을 알고 해결책을 제시할 수 있는 사람
- 업무 내용 또는 시스템 분석능력 보유
- 컴퓨터 기술과 관리 기법을 앎
- 시간 관리를 잘 하는 사람
- 컴퓨터 H/W와 S/W에 대한 전반적인 지식의 소유자
- 업계의 동향 및 관계 법규 등을 잘 파악
- 창조력, 응용력, 현장 분석 경험이 풍부
- 사용자와 프로그래머, 경영진 간의 의사소통을 중재
이글을 읽고 있는 독자들은 스스로 판단하기에 각 항목에 따라 점수를 매겨 보기 바란다. (각 항목 10점 만점)
시스템 개발 절차
SDLC : System Development Life Cycle
시스템 개발 과정에서 공통적으로 반복되는 단계
순서: 시스템 조사 => 시스템 분석 => 시스템 설계 => 시스템 구현 => 테스트 => 시스템 운용 => 유지보수
1. 시스템 조사 : 문제 제기에 따른 예비 조사와 기초 조사를 포함
2. 시스템 분석 : 요구 분석 명세서 작성(SRD), 기능 분석, 예비 설계, 비용 분석 수행
3. 시스템 설계 : – 구체화, 기본 설계(PDR), 상세설계(CDR)를 수행
4. 시스템 구현 : 프로그래밍 (이 부분만 한다면 단순 코더)
5. 테스트 : – 사용자 요구사항 검증(통합 테스트, 시스템 테스트, 인수 테스트)
6. 시스템 운용 : 실제 업무에 활용
7. 유지 보수 : 수정/적응/완전/예방 유지보수
그렇다면 이 시스템 개발을 소프트웨어 관점에서 바라봐 보자
소프트웨어 개발 절차
순서: 요구 분석 => 설계 => 구현(코딩) => 테스트(시험) => 유지보수
1. 요구분석
– 소프트웨어의 기능, 성능, 제약 조건 등에 대하여 기술하고 검토 (자료 수집 → 요구 사항 도출 → 문서화 → 검증)
– 기능적, 비기능적, 사용자, 시스템 요구 사항 등으로 분류
– 산출물: 요구 분석 명세서(SRS)
2. 설계 – 산출물: 설계서(SDD)
3. 구현 – 프로그래밍
4. 테스트 – 단위, 통합, 시스템, 인수/수락 시험
5. 유지보수
'자료구조, 운영체제, 네트워크, 시스템설계 > NCS' 카테고리의 다른 글
시스템 설계3 : 프로세스 설계와 표준 패턴 (0) | 2022.11.25 |
---|---|
시스템 설계2 : 코드(Code) 설계, 입출력 설계 (1) | 2022.11.19 |
정보통신 : 기술 면접 준비6 : 프로토콜이란?/ OSI 모델 과 TCP/IP 모델 (0) | 2022.11.19 |
정보통신 : 기술 면접 준비 4 : 회선 공유 기술, 다중화기법, 핸드오프, 데이터회선망 (0) | 2022.11.04 |
정보통신 : 기술 면접 준비 2 신호 변환, 아날로그 전송, 디지털 전송, 통신 회선망 (0) | 2022.11.04 |