정보처리기사 필기 정리 (정보시스템 구축 관리)
-소프트웨어 개발의 생명주기 모형
*폭포수 모형 : 요구 사항의 변경이 어렵고 각 단계 결과가 확인되어야 다음단계로 넘어갈 수 있는
선형 순차적, 고전적 생명주기 모형
타당성 검토, 계획, 요구사항분석, 구현, 테스트, 유지보수의 단계를 통해 소프트웨어 개발하는 모형
-비용측정 : 개발에 소요되는 인원, 자원, 기간 등으로 소프트웨어의 규모를 확인하여 개발계획 수립에
필요한 비용을 산정하는 것
COCOMO모형
1. 유기형(Organic) : 일괄자료처리나 과학기술 계산용, 비즈니스자료 처리용으로 5만라인 이하의
소프트웨어 개발 유형
2. 준분리형(Semi-Datached) : 트랜잭션 처리 시스템이나 운영체제, 데이터베이스관리 시스템 등의 30만 라인
이하의 소프트웨어를 평가하는 유형
3. 내재형(Embedded) : 초대형 규모의 트랜잭션 시스템이나 운영체제 등의 소프트웨어를 평가하는 유형
* 비용 결정요소
프로젝트 요소 : 제품 복잡도, 시스템 크기, 요구되는 신뢰도
자원 요소 : 인적자원, 하드웨어 자원, 소프트웨어 자원
생산성 요소 : 개발자 능력, 개발기간
*비용산정기법
- 하향식 비용산정 : 과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 함여한 회의를 통해
비용을 산정하는 방법
종류 : 전문가 감정 기법 : 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법
델파이기법 : 전문가 감정 기법의 주관적인 편견을 보완하기 위해 많은 전문가의 의견을
종합하여 산정하는 기법
-상향식 비용 산정 기법 : 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정하는 방법
종류 : LOC(원시코드라인수)기법 : 비관치, 낙관치, 기대치 측정하여 예측치 구하고 이를 이용해 산정
개발 단계별 인원수 기법 : 기능을 구현시키는데 필요한 노력을 생명주기의 각 단계별로 산정
LOC보다 더 정확
수학산정기법 : 경험적 추정 모형, 실험적 추정 모형, 개발비용산정의 자동화를 목표로 함
비용의 자동산정을 위해 사용되는 공식은 과거의 유사한 프로젝트를 기반으로
유도된 것
-COCOMO : LOC에 의한 비용산정 기법
-Putnam : 소프트웨어 생명주기의 전 과정동안에 사용될 노력의 분포를
예상하는 모형 / 대형프로젝트의 노력 분포 산정에 이용
개발기간이 늘수록 프로젝트 적용 인원의 노력 감소
-기능점수(FP) : 소프트웨어의 기능을 증대시키는 요인별로 기능점수를 구한후
비용산정=알브레히트가 제안
*비용산정 자동화 추정도구
SLIM – Rayleinh-Nordan 곡선과 putnam예측 모델을 기초로 하여 개발된 자동화 추정도구
ESTTIMACS – 다양한 프로젝트와 개인별 요소를 수용하도록 FP모형을 기초로 하여 개발된 자동화 추정도구
-네트워크 공격기술
Ransomware (랜섬웨어) : 시스템을 잠그거나 데이터를 암호화해 사용할 수 없도록 하고 이를 인질로 금전을 요구
Phishing(피싱) : 위장사이틔를 만들어 놓고 네티즌들이 프로그램을 내려받도록 하거나 e-mail을 이용하여
개인정보를 빼내어 범죄를 악용하는 행위
Trojan Horse(트로이목마) : E-mail을 수신하게 하여 좀비 pc 만드는 형태의 공격 “안보면 후회”
Grayware(그레이웨어) : 동의얻어 설치, 직접적 위협 x
-스택 가드
메모리상에서 프로그램의 복귀주소와 변수사이에 특정값을 저장해 두었다가 그 값이 변경되었을 경우
오버플로우 상태로 가정하여 프로그램을 중단
-정보보안 3요소
기밀성:
무결성:
가용성:
-비용측정
LOC(Line Of Code) 측정 : 가장적은 라인수(낙관치) / 가장 많은 라인수(비관치) / 평균(기대치)
낙관치+(4x기대치) + 비관치
예측치 : ----------------------------------------------
6
간접 측정 평가 공식 : 생산성 = LOC / 인월
개발기간 = 인월 / 개발인원
개발비용 = 인원 X 단위비용
-소프트웨어 개발의 생명주기 모형
나선형 모형(Spiral model) : 계획수입 -> 위험분석 -> 개발 및 검증 -> 고객평가
-신기술 동향
Digtal Twin(디지털 트윈) : 가상모델로 물리적인 자산 대신 소프트웨어로 가상화함으로써
실제자산의 특성에 대한 정확한 정보를 얻을 수 있다.
Mesh Network : 무선 랜 한계 극복 위해 등장
Mashup : 웹에서 제공하는 정보 및 서비스를 이용하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술
Evil Twin Attack : 악의적인 사용자가 지인 또는 특정유명인으로 가장하여 활동하는 공격기법
N-screen : 여러개의 화면을 통해 콘텐츠 제공 서비스
-Secure OS 보안기능 : 컴퓨터 운영체제의 커널에 보안기능 추가
운영체제의 보안상 결함으로 인하여 발생가능한 각종 해킹으로부터 시스템 보호
식별 및 인증 / 임의적 접근 통제(DAC) / 간접적 접근 통제(MAC) / 객체 재사용보호 / 완전성조정
/ 신뢰경로 / 감사 및 감사기록 축소
-컴포넌트(Component) : 부품화된 프로그램을 모듈(module) 모듈의 집합 라이브러리(library)
CBD(componet based development) :
분석ー사용자 요구사항 정의서, 유스케이스 명세서, 요구사항 추적표
설계-클래스설계서, 사용자 인터페이스 설계서
구현-프로그램코드, 단위시험결과서, 데이터베이스테이블
시험-통합시험 결과서...
-암호화 알고리즘
대칭키 (암호화키 = 복호화키) DES, AES
비대칭키 (암호화 =/ 복호화키) RSA, DSA, ECC
-비용추정 모형
COCOMO / putnam / Function-point...
-구조적 개발 방법론
정형화된 분석 절차에 따라 사용자 요구사항을 파악, 문서화하는 체계적 분석 방법으로 자료흐름도,
자료사전, 소단위명세서 특징
-암호 알고리즘
해시 함수 : MD4 , MD5 , SHA-1
블랙 암호방식 : DES , SEED, AES
-SPICE
소프트웨어 프로세스에 대한 갯건 및 능력 측정 기준에 대한 국제 표준
-Data Mining
빅데이터 분석 기술 중 대량의 데이터를 분석하여 데이터속에 내재되어 있는 변수 사이의 상호관례를
규명하여 일정한 패턴을 찾아내는 기법
-DDos 공격
웹 사이트 또는 네트워크 리소스 운영이 불가능하도록 악성 트래픽을 대량으로 보내는 공격
-RIP(Routing Information Protocla) 라우팅 프로토콜
: 관리자가 일일이 경로를 지정하지 않아도 알아서 패킷이 길을 찾아나가는 다이나믹 라우팅프로토콜의 방식 중
디스턴스백터 라우팅 방식 프로토콜 오로지 거리와 방향을 기준으로 데이터가 담긴 패킷을 전달하는 프로토콜
특징 : 내부용 라우팅 프로토콜 / 경로를 설정하는 거리 카운트로 최대 15개 허용
장점 : 소규모 네트워크 효율적 / 간편 / 표준 라우팅 프로토콜로써 모든 제조사의 라우터에서 지원하는 프로토콜
-소프트웨어 재사용 방법 : 이미 개발 되어 인정받은 소프트웨어를 다른 소프트웨어 개발이나 유지에 사용하는 것
소프트웨어 개발의 품질과 생산성을 높이기 위한 방법
기존에 개발된 소프트웨어와 경험, 지식등을 새로운 소프트웨어에 적용함
합성중심 (Composition based : 블록 구성 방법) : 전자 칩과 같은 소프트웨어 부품, 즉 블록을 만들어서 끼워 맞춰
소프트웨어를 완성시키는 방법
생성중심(Generation based : 패턴 구성방법) : 추상화 형태로 써진 명세를 구체화하여 프로그램을 만드는 방법
-소프트웨어 재공학(Software Reengineering) : 새로운 요구에 맞도록 기존 시스템을 이용하여 보다 나은
시스템을 구축하고 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 것
재공학의 이점 : 품질향상 , 생산성 증가, 수명 연장, 오류 감소
-보안 개발 방법론
MS-SDL(Microsoft Secure Development Life Cycle) : 보안 수준이 높은 안전한 소프트웨어를 개발하기 위해
ms사가 자체적으로 수립한 소프트웨어 개발 생명주기
Seven Touchpoints : 실무적으로 검증된 개발 보안 방법론 중 하나로써 소프트 웨어 오안의 모범사례를 SDLC에 통합한
소프트웨어 개발 보안 생명주기 방법론
개발보안 방법론 7가지 세부 : 코드검토, 아키텍처 검토, 침투 테스트,위험기반 보안 테스트,악용사례
,보안요구, 보안운영
CLASP : 소프트웨어 개발 생명 주기 초기 단계에서 보안을 강화하기 위한 정형화된 프로세스로써 활동중심
역할 기반 프로세스로 구성된 집합체
CWE : 소프트웨어의 보안 취약점을 유발하는 원인을 7가지로 정리한 방법론
7가지-입력데이터 검증 표현, 보안기능,시간 및 상태, 오류처리, 코드 품지,, 캡슐화, API악용
-네트워크 토폴로지(Network Topology) : 컴퓨터 네트워크에 참여하는 요소(링크,노트)들의 배치형태, 망구성방식
성형(star) : 각 노드는 중앙에 위치한 주 노드를 통해 다른 노드들과 통신
장애발견 쉬고 관리 용이 / 주 노드에 장애발생하면 전체 사용 불가능
버스형(bus) : 공통배선에 각 노드가 연결된 형태
노드의 추가 및 삭제 용이 / 특정노드의 장애가 다른 노드에 영향을 주지 않는다.
공통배선의 대역폭을 공유하기 때문에 노드 수가 증가하면 배선의 트래픽이 증가하여 네트워크 성능이 저하
링형(ring) : 각 노드의 좌우의 인접한 노드와 연결되어 원형을 이루고 있는 형태
단방향 통신으로 신호 증폭이 가능하여 거리 제약이 적다
노드의 추가 삭제가 용이하지 않다.
망형(mesh) : 모든 노드가 서로 일대일 연결된 그물망 형태
특정 노드의 장애가 다른 노드에 영향을 주지 않고, 회선장애에 유연한 대처 가능
회선구축비용이 많이 들며 새로운 노드 추가 시 비용부담 발생