본문 바로가기
정보처리기사/필기

[정보처리기사 필기 요약] (01-01/01~02) 소프트웨어 설계 - 요구 사항 확인

by 채연2 2020. 12. 16.

PART 01. 소프트웨어 설계

- CHAPTER 01. 요구사항 확인 (NCS 5 level)

● "요구사항 확인"이란?

업무 분석가가 수집/분석/정의한 요구사항과 이에 따른 분석모델에 대해서 확인과 현행 시스템에 대해 분석하는 능력

● 현행 시스템 분석하기

  1. 개발하고자 하는 응용SW에 대한 이해를 높이기 위해, 현행 시스템의 적용현황을 파악함으로써 개발범위와 향후 개발될 시스템으로의 이행방향성 분석 가능.
  2. 개발하고자 하는 응용SW와 관련된 OS, DB, 관리시스템, MW 등의 요구사항 식별 가능.
  3. 현행 시스템을 분석하여, 개발하고자 하는 응용SW가 이후 적용될 목표 시스템을 명확하고 구체적으로 기술 가능.

▷ 1단계 : 현행 시스템 파악

1. 구성/기능/인터페이스 파악

  • 시스템 구성 현황 파악
  • 시스템 기능 파악
  • 시스템 인터페이스 현황 파악
  • 주요 산출물 : 현행 시스템 분석서, 현행 시스템 기능 정의서, 현행 인터페이스 현황 정의서

2. 아키텍처 및 SW 구성 파악

  • 아키텍처 파악
  • SW 구성 파악
  • 주요 산출물 : 현행 시스템 아키텍처 구성도, 현행 SW 구성도

3. HW 및 네트워크 구성 파악

  • 시스템 HW 현황 파악
  • 네트워크 구성 파악
  • 주요 산출물 : 현행 하드웨어 구성도, 현행 네트워크 구성도

▷ 2단계 : 목표시스템 아키텍처 선정

  • 목표 시스템의 SW 및 시스템 아키텍처 정의
  • 아키텍처 평가
  • 주요 산출물 : SW 아키텍처 정의서, 시스템 아키텍처 정의서, 아키텍처 평과 결과서

▷ 3단계 : 목표시스템 개발표준 정의

  • 목표시스템 모델링 표준 정의
  • P/G 표준 정의
  • 개발환경 표준 정의
  • 주요 산출물 : 모델링 표준 정의서, P/G 표준 정의서, 개발환경 표준 정의서

● 플랫폼이란?

  • SW 플랫폼을 의미. 응용SW P/G 구동시키는데 쓰이는 HW와 SW의 결합
  • SW 개발과 운영을 쉽게 하고 한번 생성된 SW는 동일한 플랫폼에서는 장소와 시간 구분없이 손쉽게 구동 될 수 있도록 만들어진 결합체
  • 요구사항을 확인하기 위해 현행 시스템을 분석하려면 현재 시스템의 구성요소인 SW 및 HW 플랫폼을 상세하게 분석해야함.

● 플랫폼 종류

  1. HW 플랫폼 : 표준 기술을 통해 다양한 제품을 만들 수 있는 기술 도구.

    x86 서버, 메인프레임, 데스크탑

  2. SW 플랫폼 : SW를 쉽게 개발 및 구동하기 위한 기술 도구

    리눅스, 윈도우, 자바, 닷넷, iOS, 안드로이드

  3. 서비스 플랫폼 : 다양한 서비스를 제공할 수 있는 기술 환경

    페이스북, 인스타그램, 트위터

● 플랫폼 기능 **

  1. SW 운영 환경 제공 : SW 구동에 필요한 HW 자원 할당 및 프로세스 관리 기능 등 공통 실행환경 제공
  2. SW 개발 및 운영 비용 감소 : 동일 플랫폼 활용 시 모듈 재활용, 비용 절감 가능
  3. SW 개발 생산성 향상 : 개발 프레임워크를 통한 기간 단축, 품질 향상
  4. 동일 플랫폼 간 네트워크 효과 유발 : 개발자, 운영자, 사용자간 커뮤니티 형성

● 플랫폼 기능 특성 확인 방법

  1. 기능 테스트 : 현재 시스템의 플랫폼을 평가할 수 있는 기능 테스트 수행
  2. 사용자 인터뷰 : 현재 시스템 사용자를 대상으로 플랫폼 기능의 불편함을 인터뷰
  3. 문서 점검 : 현재 시스템의 플랫폼과 유사한 플랫폼의 기능 자료 분석

● 현행 시스템 분석하기에서 플랫폼의 성능 특성을 알아야 하는 이유

  • 현재 시스템에 구성된 플랫폼의 성능을 분석해야 사용자가 사용하기에 속도가 느린지 빠른지 알 수 있기 때문.
  • 사용자 요구사항 중 성능에 대한 요구사항이 있는데 이는 현재 시스템의 플랫폼 성능이 느려서 제기되는 요구사항일 가능성이 높기 때문

● 플랫폼 성능 특성 확인 방법

  1. 성능 테스트 : 현재 시스템 플랫폼을 대상으로 성능/부하 테스트 수행
  2. 문서 점검 : 현재 시스템의 플랫폼과 유사한 플랫폼의 성능 자료 분석
  3. 사용자 인터뷰 : 현재 시스템 사용자와의 인터뷰를 통하여 성능 확인

● 플랫폼 성능 측정 주요 지표 ****

  • 응답시간 (Response Time) : 사용자 측면에서 응답시간이 성능 목표 기준. 응답시간은 업무 처리에 소요되는 시간.
  • 업무량/처리량 (Throughput) : 업무 피크 시간 동안 시스템이 처리해야 하는 단위 시간 당 최대 업무처리 건수
  • 가용성 (Availability) : 시스템이 정상적으로 사용 가능한 시간
  • 사용률 (Utilization) : CPU, 메모리, 디스크, 네트워크 등의 사용 비율

● 운영체제 (OS : Operating System)

  • HW와 SW 자원을 관리하고 컴퓨터 P/G을 위한 공통 서비스를 제공하는 SW.
  • 사용자 편의성을 위한 인터페이스인 동시에 다양한 자원을 관리하는 자원 관리자.
  • 사용자 <> SW <> OS <> HW

● 운영체제 역할

  • 시스템을 제어하며 컴퓨터와 사용자간의 상호교신을 담당
  • 자원 관리 및 사용자와 컴퓨터 간 인터페이스
  • 제한된 컴퓨터 시스템의 자원을 보다 효율적으로 관리하고 운영

● 현재 시스템 운영체제 분석 : 현재 운영 체제의 종류, 버전, 패치 일자, 백업 주기 등을 분석

● 운영체제 종류 및 특징

OS 저작자 시초 주요 용도
Windows Microsoft OS/2, MS-DOS 중소 규모 서버, 개인용 PC, Tablet PC,
Embedded System
UNIX IBM(AIX), HP(HP-UX),
SUN(Solaris)
UNIX System V, SunOS 대용량 처리, 안정성이 요구되는 서버, Server,
NAS, Workstation
Linux Linus Torvalds Linux kernel 중/대규모 서버
iOS Apple OS X NeXTSTEP, BSD 스마트폰, Tablet PC, Music 플레이어 등
Android Google Linux 스마트폰, Tablet PC

● 네트워크

  • 컴퓨터를 통신망으로 연결한 것
  • 컴퓨터 네트워크에서 컴퓨팅 장치들은 노드 간 연결(데이터 링크)을 사용하여 서로에게 데이터를 교환. 이 데이터 링크들은 유선, 광케이블과 같은 케이블 매체 또는 와이파이와 같은 무선 매체를 통해 확립됨.

● 네트워크 구성 요소

  • 호스트 (Host) : 최종 사용자가 사용하는 장치. 서버, 컴퓨터, 노트북, 스마트폰 등을 의미
  • NIC (Network Interface Card) : 호스트를 네트워크에 연결시키고 데이터 패킷 전송/수신을 처리하는 장치
  • 미디어 (Media) : 네트워크에서 전기적 신호를 전달해주는 매체. 동축케이블, LAN 케이블, 광케이블, Wireless Lan 등이 있음
  • 허브 (Hub) : 여러 대의 호스트, 네트워크 장비를 연결하는 장치. 상호간의 통신을 할 수 있게 데이터 전송을 중계함
  • 스위치 (Switch) : 허브보다 향상된 네트워크 처리 용량과 속도를 제공. 데이터 링크 계층에서 동작함.
  • 라우터 (Router) : 네트워크 간 데이터 전송을 위해 최적 경로를 설정하여 데이터를 전송하는 장치. 전송할 데이터의 수신 주소를 읽어 경로를 설정해주는 교환기 같은 역할을 하며 네트워크 계층에서 동작함.

● OSI (Open System Interconnection) 7 Layout

  • 국제표준 기구(ISO)에서 제시한 네트워크 기본 모델
  • 특징
    • 계층 간 독립성을 보장 → 변경이 다른 계층에 영향을 주지 않음.
    • 각 계층은 다른 계층에 대해 알 필요가 없고 자신의 계층에서 정보를 감추는 캡슐화가 가능

● 기능

계층 설명 주요 프로토콜 단위
응용 계층
(Application Layer)
사용자 <> 네트워크 간의 응용 서비스 연결, 데이터 생성 HTTP, TELNET, DHCP, DNS, FTP, SSH, SMTP, SNMP Data
표현 계층
(Presentation Layer)
데이터 형식 설정과 부호 교환, 암호화, 해독 MIME, TLS, SSL, JPEG, MPEG, SMB, AFP Data
세션 계층
(Session Layer)
응용 프로세스 간의 연결 접속 및 동기 제어 SSH, TLS, RPC Data
전송 계층
(Transport Layer)
- 프로세스 간 논리적 통신 서비스 제공
- 패킷들의 전송유효 확인, 실패한 패킷은 재전송하여 신뢰성 통신 보장
TCP(3-Way Handshaking), UDP, SCTP, RTP Segment
네트워크 계층
(Network Layer)
단말 간 시스템끼리 Data를 전송하기 위한 최선의 통신 경로 선택 제공 IP, ARP, ICMP, IGMP, IPsec Packet
데이터링크 계층
(Data Link Layer)
- 인접 시스템 간의 데이터 전송, 전송 오류 제어(Frame)
- 오류 검출 / 재전송 / 흐름 제어
Ethernet, ATM, PPP Frame
물리 계층
(Physical Layer)
통신 회선으로 Data를 나타내는 '0'과 '1' 비트 정보를 회선에 내보내기 위한 전기적 변환이나 기계적 작업 담당 RS-485, RS-232, X25/21 Bits

● 현재 시스템 네트워크

  • 현재 시스템이 구성된 네트워크 구조 분석
  • 사내 인터넷 데이터 센터(IDC), 백본망, 라우터, 스위치, 방화벽 등 분석
  • 현재 시스템 서버 위치, 서버 간의 네트워크 연결 방식, 논리 및 물리 네트워크 구성도 작성

● DB : 사용자와 다른 애플리케이션, DB 등과 상호 작용하여 데이터를 저장하고 분석하기 위한 컴퓨터 SW로 DB 생성, 조회, 변경 등의 관리가 주요 기능.

● DB 기능

  • 데이터 저장과 개발 및 유지보수 측면에서 중복성 통제
  • 다중 사용자 간의 데이터 공유
  • 권한 없는 사용자의 데이터 접근 통제
  • 다양한 사용자에게 다양한 형태의 인터페이스 제공
  • 데이터 사이에 존재하는 복잡한 관련성 표현
  • 데이터베이스 무결성 보장
  • 백업, 복구 기능 제공

● 현재 시스템 데이터베이스 시스템

  • DBMS 종류, 버전, 구성방식, 스토리지 크기, 백업 주기 등 분석
  • 테이블 수량, 데이터 증가 추이, 백업 방식 등 분석

● DB 분석 시 주요 고려사항

  • 가용성 : 시스템 장시간 운영에 따라 발생 가능한 OS 고유의 장애 발생 간으성, DBMS 결함 등에 따른 패치 설치 관련 재가동, 백업/복구 편의성, DBMS 이중화 및 복제 등..
  • 성능 : 대규모 데이터 처리 성능, 대용량 트랜잭션 처리 성능, 튜닝 옵션의 지원, 최소화된 설정과 비용 기반 쿼리 최적화 지원 등...
  • 상호호환성 : 설치 가능한 OS 종류, JDBC, ODBC와 같은 인터페이스 호환 등
  • 구축 비용 : 라이선스 정책 및 비용, 유지관리 비용 등

● DBMS 주요 유형 및 특징

구성 RDBMS NoSQL
정의 하나의 데이터를 관계로 구조화하여 2차원 테이블 형식으로 저장한 DB 수평적 확장이 가능하며 다수 서버들에 데이터 복제 및 분산저장이 가능한 DB
데이터 구성 테이블 문서, Key-Value, Wide-column
스키마 (Schema) 사전정의 스키마 다이나믹 스키마
트랜잭션 정책 ACID** 로 트랜잭션 보장
(원자성-Atomicity, 일관성-Consistency, 독립성-Isolation, 지속성-Durability)
BASE 가용성과 성능 중시
(Basically, Available, Soft-State, Eventually Consistency)
확장 방식 수직적 확장 수평적 확장
조회(Query) 방식 Sort, Join, Grouping, Index 등 다수 기본적으로 Put/Get 지원
데이터 일관성 강한 일관성 약한 일관성
목표 트랜잭션 보장 집중 가용성 집중
시스템 측면 엄격한 데이터 관리 성능 중시
대표제품 Oracle, MySql, MS-SQL 등 MongoDB, CouchDB, Redis 등

● 논리/물리 테이블 구조 파악

  • 각 테이블의 정규화 정도, 조인의 난이도 파악
  • 조인 : 여러 개의 테이블을 결합하여 데이터를 검색하는 것
  • 각종 프로시저, JOB, 트리거 등 분석

● 가상화

  • 물리적으로 분산된 시스템을 논리적으로 통합하거나, 하나의 시스템을 논리적으로 분할하여 자원을 효율적으로 사용하는 기술.
  • 프로세서(CPU), 메모리(Memory), 스토리지(Storage), 네트워크(Network)를 포함
  • 위의 구성 요소들로 이루어진 서버나 장치들을 가상화함으로써 높은 수준의 자원 사용율과 분산 처리 능력 제공

● 가상화 유형

▷ 서버 가상화

  • 서버 물리적 자원을 추상화, OS 또는 애플리케이션이 가상화 계층을 통해 자원 접근
  • 종류 : 호스트 가상화, 반 가상화, 전 가상화, 하이퍼바이저 가상화, 컨테이너 가상화

▷ 스토리지 가상화

  • 물리적인 스토리지를 논리적인 스토리지로 추상화
  • 종류 : 호스트 기반(Host-based), 스토리지 장비 기반(Storage device-based), 네트워크 기반 (Network-based) 방식

▷ 네트워크 가상화

  • 물리적인 네트워크 자원을 논리적인 단위로 가상화
  • 종류 : VLAN, VPN, Channel Bounding, 가상 NIC

▷ 데스크탑 가상화

  • 데스크탑의 컴퓨팅 환경을 서버에서 제공하는 가상화
  • 종류 : SBC(Server-Based Computing), VDI(Virtual Desktop Infrastructure)

● 하이퍼바이저 방식 VS 컨테이너 방식

구분 하이퍼바이저 방식 가상화 컨테이너 방식 가상화
개념 공유자원을 관리하는 하이퍼바이저를 통해 가상머신을 생성하여 가상화하는 방식 하이퍼바이저 없이 리눅스 컨테이너 기술을 바탕으로 응용 P/G을 격리된 상태에서 실행하는 가상화 방식
이식성 가상머진 단위로 이동, 복제, 생성 모놀리딕(Monolithic) 구조 응용 P/G 단위로 실행에 필요한 모든 환경이 포함되어 배포됨. 마이크로서비스(Micro-Service) 구조
효율성 하이퍼바이저와 게스트OS의 성능 오버헤드 (손실) 존재 서버의 OS커널을 공유하므로 필요한 만큼 유연하게 자원사용 가능
용량 Gbyte 단위 용량의 가상머신 실행 Mbyte 단위 컨테이너 이미지 실행
안정성 독립된 가상머신들로 안정적인 운영 가능 OS커널을 공유하므로 하이퍼바이저 방식에 비해 장애 영향 받음.
컨테이너 오케스트레이션 플랫폼으로 해결

● 가상화 장점

  1. 물리시스템 통합
    • 여러 대의 물리적 시스템을 하나의 논리적 가상머신으로 통해서 관리 가능
  2. 하드웨어 종속성 해결
    • HW 가상화하여 제공하기 때문에 특정 모델이나 업체에 종속되지 않음
  3. 리소스 효율성 증가
    • 일반적인 서버 시스템은 리소스의 20% 미만 밖에 사용하지 않아 낭비 많음
    • 가상화를 이용할 경우 70% 이상 사용 가능해 효율성 증가됨
  4. 구축비용 절감
    • 유휴장비 또는 자원 활동도가 낮은 서버에 가상 시스템을 구성하고 네트워크를 가상으로 구성함으로서 물리적 제약을 극복하고 시스템 구매 비용이 절감됨

● 가상화 시스템 분석

  1. 시스템 장비 구성 분석 : HW, SW, 네트워크 등 가상화 시스템 유형별 내역 분석
  2. 기능 요구사항 분석 : 시스템이 제공해야하는 기능이나 사용자가 수행해야 하는 기능 분석
  3. 테스트 요구사항 분석 : 시스템이 제대로 운영되는가를 테스트하고 점검하기 위한 요구사항 분석
  4. 보안 요구사항 분석 : 정보자산의 기밀성, 무결성, 가용성 확보 위해 시스템의 테이터 및 기능, 운영 접근 요구사항 분석

● 클라우드 컴퓨팅 : 네트워크를 통해 가상화된 컴퓨터의 시스템 리소스(IT 리소스)를 요구하는 즉시 서비스 형태로 제공하는 방식

● 클라우드 컴퓨팅 서비스 유형 (서비스 유형 > 제공 기능 > 설명)

  • IaaS > 인프라 서비스 > 가상화 기술, 네트워크 기술을 통해 물리적인 컴퓨팅 자원을 분할, 통합, 관리하는 가상머신 환경 서비스 제공
  • PaaS > 플랫폼 제공 서비스 > 가상 OS, 프로그래밍 언어 실행 환경, DB, 웹 서비스 등 자원 및 개발도구 제공
  • SaaS > 온디맨드(on-demand) 서비스 > 클라우드 상에서 응용 SW와 DB 등을 제공 (구글 Docs, 네이버 클라우드, Dropbox 등..)

● 클라우드 컴퓨텅 서비스 종류

  • 사설 클라우드 (Private Cloud) : 기업 내부 데이터 센터에 클라우드를 구축
    • 내부 가상화 시스템에 S/W, 데이터를 저장 관리
    • 데이터 보안 장점
  • 공용 클라우드 (Public Cloud) : 클라우드 업체가 제공하는 서비스를 비용 지불하고 이용
    • HW, SW 등을 사용한 만큼 비용을 지불하여 사용
    • 확장성 장점
  • 하이브리드 클라우드 (Hybrid Cloud) : 사설, 공용 클라우드 모두 사용
    • 공용 클라우드 사용 시 보안 문제와 사설 클라우드 사용 시 비용 문제를 해결

● 클라우드 컴퓨팅 시스템 분석

  1. 클라우드 컴퓨팅 시스템 기능 분석
    • 제공방식 및 구축방식에 따른 제공기능 분석
  2. 표준 요구사항 분석
    • 하이퍼바이저 호환성, 범용 OS 제공 및 기존 업무시스템 연계를 위한 API 제공 기능 분석
  3. 멀티텐넌시 및 안정성, 확장성 요구사항 분석
    • 다수 사용자 동시 접속 시 동작을 보장하는 멀티텐넌시 환경 지원여부 확인
    • 안정적인 서비스 수준을 보장하는 서비스 수전협약(SLA) 제공여부 확인
    • 부하에 따라 탄력적으로 시스템 자원 확장 확인
  4. 보안 요구사항 분석
    • 모든 데이터가 클라우드 저장소에 집중됨에 따라 네트워크 장애, 해킹, 관리자 보안사고 등의 보안 대책 요구사항 분석
  5. 비용 요구사항 분석
    • 클라우드 서비스 구축 및 유지관리에 소요되는 비용 요구사항 분석

● 비즈니스 융합

  • 비즈니스 (Business)
    • 유무형의 가치를 제공하고 그에 상응하는 대가를 보상받는 등 영리를 목적으로 행하는 모든 활동
    • 재화나 서비스의 개발 및 제공을 통해 영리 추구하는 기업활동 또는 경영활동
  • 비즈니스 모델 (Business Model)
    • 고객 가치 창출 및 시장에서 성공적인 경쟁 위해 고안된 조직 목표, 전략, 프로세스, 기술, 구조 등을 포함하는 요소들의 구성체
  • 비즈니스 융합 (Convergence)
    • 산업 또는 시장 간 경계를 허물고 ICT 등을 통한 새로운 전달방식을 도입함으로써 비즈니스 모델 적용범위를 확대시키는 것

● 비즈니스 융합 유형

  • 제품 융합 : 2가지 이상 제품의 기능과 속성을 하나로 모음
  • 서비스 융합 : 2가지 이상 서비스의 기능과 속성을 하나로 모음
  • 제품과 IT융합 : 기존 제품에 IT 부품 또는 자재, SW 등을 추가
  • 서비스와 IT 융합 : 기존 서비스에 IT 부품 또는 자재, SW 등을 추가함
  • 제품의 서비스화 : 제품에 자사 또는 타사의 서비스를 부가하며 서비스 제공
  • 서비스의 제품화 : 서비스를 제품화 또는 장비, 기기로 전환
  • 제품과 서비스 통합 : 사용자 요구에 부합하는 시스템 또는 솔루션

● 비즈니스 융합 분석

  1. 고객 분석
    • 비즈니스 모델 상에서 사업자에게 수익을 제공하는 참여자(고객) 식별 및 분석
  2. 제품 및 서비스 분석
    • 비즈니스 모델 상에서 자사가 제공하는 상품 또는 서비스 식별 및 분석
    • 비즈니스 융합 참여자 간 제공하는 서비스와 제공받는 서비스 식별 및 분석
  3. 사업구조 분석
    • 상품 및 서비스의 제공자, 소비자 등 참여자 간의 관계와 구조 식별 및 분석
320x100

댓글