요구사항 프로세스
- 추출
- 분석
- 명세
- 검증
소프트 웨어 생명주기 모델의 프로세스 단계별 황동 내용
- 요구사항 분석 단계 : 기능 및 비기능 요구사항 파악
- 설계 단계 : 시스템 구조 설계, 프로그램 설계, 사용자 인터페이스 설계
- 구현 단계 : 프로그래밍, 인터페이스 개발, 자료 구조 개발, 오류 처리
- 유지보수 단계 : 예방, 완전, 교정, 적응적 유지 보수 수행
소프트웨어 개발방법론 유형
- 구조적 방법론 : 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론이다.
- 객체지향 방법론 : 데이터와 관련되는 동작을 모두 포함하는 방법론으로 데이터는 실체이고, 동작은 절차, 방법, 기능을 의미한다.
- 컴포넌트 기반 방법론 : 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론이다.
- 정보공학 방법론 : 정보시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론으로 개발 주기를 이용해 대형 프로젝트를 수행하는 체계적인 방법론이다.
소프트웨어 개발보안 정책
- 소프트웨어 개발보안 관련 활동 주체는 행정자치부. 발주기관(행정기관 등), 인터넷진흥원, 사업자, 감리법인 등으로 구분할 수 있다.
- 소프트웨어 개발 생명주기 단계별 보안활동에서 테스트 단계에서는 위협모델링을 통해 도출된 위협들이 구현 단계에서 애플리케이션 개발 시 제거되었는지를 동적 분석 도구를 이요하거나 모의 침투 테스트를 통해 검증한다.
- 소프트웨어 개발 참여자에는 프로젝트 관리자, 요구사항 분석가, 아키텍트, 설계자, 구현개발자, 테스트 분석가, 보안 감시자가 있다.
- 소프트웨어 개발 생명주기 단계별 보안활동에서 요구사항 분석 단계에서는 어떤 정보들이 시스템화되어 관리되어야 하는지, 이때 이 정보들의 보안등급(기밀성, 무결성, 가용성)은 어떻게 해야 되는지에 대한 점검 작업을 수행한다.
요구공학
- 요구사항 프로세스는 추출, 분석, 명세, 검증 단계로 진행된다.
- 요구사항 추출 기법에는 인터뷰, 설문 조사, 브레인스토밍, 워크숍 등이 있다.
- 요구사항 분석 기법에는 자료 흐름 지향 분석과 객체지향 분석이 있다.
- 요구사항 검증 기법에는 리뷰, 워크스루, 인스펙션이 있다.
- 요구사항 관리 절차는 요구사항 협상, 요구사항 기준선, 요구사항 변경관리, 요구사항 확인 및 검증 단계로 진행된다.
요구사항 검증 기법
리뷰(Review)
- 동료와 기술 전문가가 참여하는, 요구사항 검증을 위한 문서화되고 정의된 프로세스 존재
- 관리자 개입이 없는 동료 검토 형태로 수행 가능
워크 스루(Walkthroughs)
- 시간 및 인원수 등에 제한이 없고 상황에 따라 변경할 수 있는 세션
- 미팅 전 준비과정 수행
인스펙션(Inspection)
- 역할 정의, 체크리스트와 규칙 기반의 정식 프로세스 존재
- 미팅 전 준비과정 필요, 후속 처리 절차 프로세스 존재
요구사항 관리 방법
- 요구사항 협상 : 가용한 자원과 수용 가능한 위험 수준에서 구현 가능한 기능 협상
- 요구사항 기준선 : 공식적으로 합의되고 검토된 요구사항 명세서 결정
- 요구사항 변경관리 : 요구사항 기준선을 기반으로 모든 변경을 공식적으로 통제
- 요구사항 확인 : 구축된 시스템이 이해관계자가 기대한 요구사항에 부합되는지 확인
비용 산정 모델
- LOC(Lines of Code) : 소프트웨어 각 기능의 원시 코드 라인. 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법
- COCOMO : 보헴(Bohem)이 제안한 모형으로 프로그램 규모에 따라 비용을 산정하는 방법
- 기능점수(FP; Function Point) : 모형은 요구 기능을 증가시키는 인자별로 가중치를 부여하여 기능의 점수를 계산하여 비용을 산정하는 방식
- Man Month : 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용을 산정하는 기법
소프트웨어 개발 표준
- 소프트웨어 개발 단계에서 품질 관리는 국제 표준으로 정하고, 대표적인 국제 표준으로는 ISO/IEC 12207 표준, CMMI 모델, SPICE 모델이 있다.
- ISO/IEC 12207는 소프트웨어와 관련된 이해관계자들이 각자의 입장에서 수행해야 할 일을 정의하고 지속적으로 개선시키기 위한 활동이다.
- ISO 12207 표준은 소프트웨어 생명주기 프로세스이다.
- ISO 12207은 기본 공정 프로세스, 지원 공정 프로세스, 조직 공정 프로세스로 구성된다.
- CMMI는 소프트웨어 개발 업체들의 업무 능력 및 조직의 성숙도를 평가하기 위한 모델이다.
- SPICE는 소프트웨어 프로세스 평가를 위한 모델이다.
SPICE 프로세스 수행 능력 수준 단계
- 불안정
- 수행
- 관리
- 확립
- 예측
- 최적화
가상화 기반 네트워크 기술
- SDN은 개방형 API(오픈플로우) 기반으로 네트워크 장비의 트래픽 경로를 지정하는 컨트롤 플레인(Control Plane)과 트래픽 전송을 수행하는 데이터 플레인(Data Plane)을 분리하여 네트워크 트래픽을 중앙 집중적으로 관리하는 기술이다.
- SDN의 구성요소에는 애플리케이션, 네트워크 운영체제, 데이터 플랜이 있다.
- NFV는 범용 하드웨어에 가상화 기술을 적용하여 네트워크 기능을 가상 기능으로 모듈화 하여 필요한 곳에 제공하는 기술이다.
- NFV 구성요소에는 Virtual Network Function, Network Functions, Virtualization Infrastructure, MANO 등이 있다.
오픈플로우 구성요소
- 오픈플로우 컨트롤러 : 네트워크 상태에 대한 포워딩 제어, 토폴로지 및 상태 관리, 라우팅 제어 등 중앙 집중형으로 네트워크를 제어하는 기능이다.
- 흐름 테이블 : 패킷 전달 경로와 방식에 대한 정보를 저장하는 테이블
- 파이프라이닝 : 다른 흐름 테이블에 있는 엔트리와 비교하여 패킷 처리가 계속되도록 제어하는 기능
- 그룹 테이블 : 브로드캐스트(broadcast)나 멀티캐스트(Multicast)를 구현하는 데 사용하는 테이블
코어 계층
- 각 네트워크 사이에 높은 속도의 스위칭을 목적으로 하여 각 분배 계층을 연결
- 포트 수는 적더라도 대량의 패킷을 처리할 수 있고 안정화된 라우터 장비 및 백본 스위치 장비 필요
- 소규모 네트워크에서 생략 가능
광전송 장비 구현 기술
- SONET
- SDH
- DWDM
- CET
기계학습에 대한 분류
- 지도(교사) 학습 : 입력 X에 대한 출력 목푯값을 제시하여 학습하는 방법이다.
- 비지도(비교사) 학습 : 입력 X에 대해 목푯값을 스스로 추론하여 학습하는 방법이다.
- 강화 학습 : 입력 X에 대해 행위의 포상을 기억하고 학습하는 방법이다.
- 준지도 학습 : 목푯값이 표시된 데이터와 표시되지 않은 데이터를 모두 훈련에 사용하는 방법이다.
인공지능
- 지도(교사) 학습의 사례에는 신경망과 회귀분석이 있다.
- Q-Learning은 특정 상태에서 취할 수 있는 각 행동에 대해 효용 값을 미리 계산하여 마르코프 의사결정 과정에서 최적의 정책을 찾는 강화 학습 기법이다.
- 몬테카를로 트리 탐색은 최소, 최대 알고리즘의 성능을 개선하여 전체 경로 탐색이 불가능할 때 효율적 경로 탐색이 가능한 알고리즘이다.
- 주성분 분석(PCA) : 고차원 공간의 표본들을 선형 연관성이 없는 저 차원 공간으로 변환하는 알고리즘이다.
- 강화 학습의 사례에는 Q-Learning과 몬테카를로 트리 탐색이 있다.
- 딥러닝은 사람의 개입이 필요한 기존의 지도 학습에 보다 능동적인 비지도 학습이 결합되어 컴퓨터가 마치 사람처럼 스스로 학습할 수 있는 인공지능 기술이다.
- 딥러닝의 주요 알고리즘은 심층 신경망, 합성공 신경망, 순환 신경망이 있다.
딥러닝의 알고리즘
- 심층 신경망(DNN) : 입력 계층(Input)과 출력 계층(Output) 사이의 다단계의 은닉 계층(Hidden Layer)을 통해서 비선형 관계에 대한 모델링이 가능한 인공신경망 알고리즘이다.
- 항성곱 신경망(CNN) : 필터에 의한 컨볼루션과 서브 샘플링 과정을 반복하는 비지도 학습으로 입력 데이터의 특징을 극대화하면서 차원을 축소하는 딥러닝 알고리즘이다.
- 강화 학습 : 입력 X에 대해 행위의 포상을 기억하고 학습하는 방법이다.
현실
- 가상현실(VR) : 컴퓨터 등을 사용한 인공적인 기술로 만들어낸 실제와 유사하지만 실제가 아닌 어떤 특정 환경이나 상황 혹은 그 기술 자체를 의미한다.
- 혼합 현실(MR) : 실세계의 물리적 환경과 가상 환경을 혼합한 경험을 제공하는 하이브리드 현실이다.
- 확장 현실(XR) : 현실과 가상 간의 인터랙션이 더욱 강화된 개념으로 현실 공간에 배치된 가상의 물체를 손으로 만질 수 있는 개념이다.
블록체인
- 분산 데이터베이스의 한 형태로 분산 노드와 운영자에 의한 임의조작이 불가능하도록 고안되어 지속적으로 성장하는 데이터 기록 리스트인 블록을 연결한 모음이다.
- Transaction(거래) 단계 → Block(암호화) 단계 → Chaining(상호연결) 단계 → Propagation(분산 저장) 단계
- 블록체인 2.0 기술요소 중 스마트 계약은 해당 조건 달성 시 제3자의 개입 없이 특정 계약 조건을 자동적으로 실행하기 위한 기술이다.
- 블록체인 2.0 주요 기술요소 중 합의 알고리즘은 Proof of work, Proof-Of-Stake, PBFT 등이 있다.
블록체인 2.0 기술 요소
- 분산 원장 : 탈중앙화를 가능하게 하며, 참여자들 간 합의에 의해 복제/공유되는, 블록이라는 저장소에 동기화된 정보를 기록하는 원장
- Pow(Proof of Work) : 확률적으로 해답이 어려운 문제를 가장 빨리 해결한 사람에게 블록을 만들 수 있도록 허가하는 합의 알고리즘
- 스마트 계약 : 해당 조건 달성 시 제3자의 개입 없이 특정 계약 조건을 자동적으로 실행하기 위한 기술
- Pos(Proof of Stake) : 이더리움이 채택할 예저인 알고리즘으로 PoW와 기본 방식은 동일하나 화폐량을 더 많이 소유하고 있는 승인자가 우선하여 블록을 생성할 수 있는 합의 알고리즘
SODC(Software-Defined Data Center) 구성 요소
- SDC(Computing) : 소프트웨어 정의 컴퓨팅 환경으로 서버의 CPU, Memory에 대해서 소프트웨어 명령어 기반으로 제어할 수 있는 컴퓨터
- SDN(Networking) : 개방형 API를 통해 네트워크의 트래픽 전달 동작을 소프트웨어 기반 컨트롤러에서 제어/관리하는 가상화 네트워크 기술
- SDS(Storage) : 서버와 전통적인 스토리지 장치에 장차 괸 이질적이고 연결되어 있지 않은 물리적 디스크 드라이브를 하나의 논리적인 스토리지로 통합한 가상화 스토리지 기술
- Edge Computing : 엣지에 위치한 디바이스에 연산 능력을 부여하여 데이터 처리 및 연산을 분산시키는 컴퓨팅 구조
빅데이터 주요 기술
- 데이터 가공을 위한 대표적인 솔루션에는 피그(Pig), 하이브(Hive)가 있고, 데이터 마이닝을 위한 대표적인 솔루션에는 마호트(Mahout)가 있다.
- 실시간 SQL 질의를 위한 대표적인 솔루션은 임팔랄(Impala)이고, 워크플로우 관리를 위한 대표적인 솔루션은 우지(Oozie)가 있다.
- 분석 및 시각화를 위한 대표적인 솔루션은 알(R)이 있다.
- 분산 코디네이션을 위한 대표적인 솔루션은 주키퍼(Zookeeper)가 있다.
빅데이터의 특성
- 데이터의 양(Volume) : 디지털 정보량이 기하급수적으로 폭증하는 것을 의미
- 데이터의 다양성(Variety) : 로그, 소셜, 위치 등 데이터 유형이 다양해지는 것을 의미
- 데이터의 속도(Velocity) : 가치 있는 정보 활용을 위해 실시간 분석이 중요해지는 것을 의미
NoSQL 유형
- Key-Value Store
- Column Family Data Store
- Document Store
- Graph Store
데이터베이스 동시성 제어 미보장시 문제점
- 갱신 손실(Lost Update) : 먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어쓸 때 발생하는 오류
- 현황 파악 오류(Dirty Read) : 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조하여 발생하는 오류
- 모순성 : 두 트랜잭션이 동시에 실행되어 데이터베이스가 일관성이 결여되는 오류
- 연쇄 복귀(Cascading Rollback) : 복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 트랜잭션이 처리한 부분 취소 불가능 현상
데이터베이스 회복 기법의 유형
- 회복기법
- 로그 기반 회복 기법
- 체크포인트 회복 기법
- 그림자 페이지 회복 기법
인증기술의 유형
- 지식 기반
- 소지 기반
- 생체 기반
- 특징 기반 인증
DDoS 공격 구성요소
- 핸들러(Handler)
- 공격자(Attacker)
- 마스터(Master)
- Agent
- Daemon
클라우드 컴퓨팅
- 클라우드 서비스 유형에는 인프라형 서비스(IaaS), 플랫폼형 서비스(PaaS), 소프트웨어형 서비스(SaaS)로 분류된다.
- 클라우드 컴퓨팅 유형에는 사설 클라우드, 공용 클라우드, 하이브리드 클라우드로 분류된다.
- 엣지 컴퓨팅은 엣지에 위치한 디바이스에 연산능력을 부여하여 데이터 처리 및 연산을 분산시키는 컴퓨팅 구조이다.
- 클라우드를 구축하기 위한 오픈 소스 소프트웨어인 오픈스택은 서버, 스토리지, 네트워크와 같은 리소스들을 모으고, 이들을 제어하고 운영하기 위한 플랫폼이다.
- SDDC는 모든 하드웨어가 가상화되어 가상 자원의 풀(Pool)을 구성하고, 데이터센터 전체를 운영하는 소프트웨어가 필요한 기능 및 규모에 따라 동적으로 자원을 할당, 관리하는 역할을 수행하는 데이터센터이다.
고가용성 유형
- Hot Standby
- Mutual Take-Over
- Concurrent Access
'Certificate > 정보처리기사' 카테고리의 다른 글
정보처리기사 필기 공부 방법 및 합격 후기 | 요점정리 PDF 공유 (1479) | 2021.01.04 |
---|---|
프로그래밍 언어 (0) | 2021.01.04 |
데이터베이스 구축 언어 (0) | 2021.01.04 |
소프트웨어 개발 (0) | 2021.01.04 |
소프트웨어 설계 (0) | 2021.01.04 |