자격증

[정보처리기사] 5과목 정보시스템 구축 관리 핵심정리

SeungbeomKim 2024. 2. 8. 16:52

구조적 방법론

  • 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론
  • 분할정복 원리 활용

 

정보공학 방법론

  • 자료 중심의 방법론
  • 개체 관계도(ERD) 사용

 

컴포넌트 기반(CBD) 방법론

  • 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
  • 분석 단계에서 사용자 요구사항 정의서가 산출

 

소프트웨어 재사용의 이점

  • 개발 시간과 비용 단축
  • 소프트웨어 품질 향상
  • 소프트웨어 개발의 생산성 향상
  • 시스템 명세, 설계, 코드 등 문서 공유

 

소프트웨어 재사용 방법

  • 합성 중심: 블록 모듈을 만들어서 끼워 맞추어 소프트웨어 완성
  • 생성 중심: 명세를 구체화하여 프로그램을 만듦

 

소프트웨어 재공학의 이점

  • 위험 부담 감소
  • 개발 시간 단축
  • 개발 비용 절감
  • 시스템 명세의 오류 억제

 

소프트웨어 재공학의 주요 활동

  • 분석: 명세서를 확인하여, 소프트웨어 동작 이해
  • 재구성: 코드를 재구성
  • 역공학: 분석 및 설계 정보를 재발견하거나 다시 만들어내는 활동
  • 이식: 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환

 

CASE(Computer Aided Software Engineering)

  • 소프트웨어 개발 과정 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것

 

CASE의 원천 기술

  • 구조적 기법, 프로토타이핑, 자동 프로그래밍, 정보 저장소, 분산처리

 

CASE의 주요 기능

  • 생명 주기 전 단계의 연결, 개발 모형 지원, 모순 검사 및 오류 검증, 그래픽 지원, 자료 흐름도 작성

 

비용 산정 기법 - LOC 기법

  • 소프트웨어 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치 측정

 

LOC 기법의 산정 공식

  • 노력 = 개발 기간 * 투입 인원
  • 개발 비용 = 노력(인월) * 단위 비용(인당 인건비)
  • 개발 기간 = 노력 / 투입 인원
  • 생산성: LOC / 노력(인월)

 

수학적 산정 기법의 종류

  • COCOMO 모형
  • Putnam 모형
  • 기능 점수(Function Point) 모형

 

비용 산정 기법 - Putnam 모형

  • 소프트웨어 생명주기의 전 과정 동안의 사용될 노력의 분포를 가정해 주는 모형 (Rayleigh - Norden 곡선)

 

비용 산정 기법 - COCOMO

  • 보헴이 제안, 원시 프로그램 규모 (LOC)에 의한 비용 산정 기법

 

COCOMO 소프트웨어 개발 유형

  • 조직형: 5만 라인 이하
  • 반분리형: 30만 라인 이하
  • 내장형: 30만 라인 이상

자동화 추정 도구 - SLIM

  • Rayleigh-Norden 곡선, Putnam 예측 모델을 기초로하여 개발된 자동화 추정 도구

 

기능 점수 모형 - 가중치 증대 요인

  • 자료 입력, 정보 출력, 명령어, 데이터 파일, 필요한 외부 루틴과의 인터페이스

 

PERT

  • 각 단계별로 종료 시기를 결정하는 방법(낙관성, 가능성, 비관성)
  • 결정 경로, 작업에 대한 경계시간 및 상호 관련성

 

임계경로 (굵은 선)

 

간트 차트

  • 프로젝트의 작업 일정을 막대 도표를 이용하여 표시
  • 수평 막대의 길이는 각 작업의 기간을 나타냄

 

소프트웨어 프로젝트 관리

  • 최소 비용 → 사용자 만족

 

위험 관리

  • 돌발 상황(위험)을 미리 예상하고, 이에 대한 적절한 대책 수립

 

ISO/IEC 12207

  • 기본 생명 주기 프로세스: 획득, 공급, 개발, 운영, 유지보수 프로세스
  • 지원 생명 주기 프로세스: 품질 보증, 검증, 확인, 확인 검토, 감사, 문서화, 형상 관리, 문제 해결 프로세스
  • 조직 생명 주기 프로세스: 관리, 기반 구조, 훈련, 개선 프로세스

 

CMMI의 소프트웨어 프로세스 성숙도 5단계

  • 초기, 관리, 정의, 정량적 관리, 최적화

 

SPICE(소프트웨어 처리 개선 및 능력 평가 기준)

  • 소프트웨어 프로세스를 평가 및 개선하는 국제 표준

 

SPICE의 프로세스 수행 능력 단계

  • 불완전 → 수행 → 관리 → 확립 → 예측 → 최적화

 

소프트웨어 개발 방법론

  • 프로젝트 상황 및 특성에 맞도록 개발 방법론의 절차, 사용기법 등을 수정 및 보완하는 작업

 

소프트웨어 개발 프레임워크

  • 여러가지 기능들을 제공해 주는 반제품 형태의 소프트웨어 시스템
  • 사업자 종속성 해소, 객체들의 제어를 프레임워크에 넘김

 

SDN(Software Defined Networking)

  • 네트워킹을 가상화

 

SDS(Software-Defined Storage)

  • 데이터 스토리지를 가상화

 

SDDC(Software Defined Data Center)

  • 데이터 센터의 모든 자원 가상화

 

메시 네트워크(Mesh Network)

  • 수십 ~ 수천개의 디바이스를 그물망(Mesh)과 같이 유기적으로 연결하여, 모든 구간을 동일한 무선망처럼 구성

 

피코넷(PICONET)

  • 블루투스 기술이나 UMB(Ultra Wide Band) 통신 기술을 사용하여 통신망 형성

 

클라우드 기반 HSM

  • 클라우드를 기반으로 암호화작업이 이루어지는 보안기기, 암호화 키 생성이 하드웨어적으로 구현

 

파스타(Paas-TA)

  • 개방형 클라우드 컴퓨팅 플랫폼

 

징(Zing)

  • 10cm 이내 거리에서 3.5 Gbps 속도의 데이터 전송이 가능

 

SSO(Single Sign On)

  • 한 번의 로그인으로 개인이 가입한 모든 사이트 이용

 

스마트 그리드

  • 전력선을 기반으로 인프라를 하나의 시스템으로 통합하여 관리

 

WDM(Wavelength Division Multiplexing)

  • 여러 대의 단말기가 동시에 통신 회선을 사용할 수 있도록 하는 기술

 

버스형(Bus)

  • 한 개의 통신 회선에 여러 대의 단말장치가 연결된 형태

 

VLAN(Virtual Local Area)

  • LAN의 물리적인 배치와 상관없이 논리적으로 분리하는 기술

 

WPA(Wi-Fi Protected Access)

  • 무선 랜(WLAN) 인증 및 암호화 관련 표준

 

CSMA/CA

  • 충돌을 피하기 위해 일정한 시간을 기다린 후 데이터를 전송하는 방법

 

802.11e

  • Qos기능 지원하기 위해 MAC 계층 해당 부분 수정

 

RIP(Routing Information Protocol)

  • 거리 벡터 라우팅 프로토콜, 최대 홉 수: 15

 

OSPF(Open Shortest Path First Protocol)

  • 라우팅 정보에 노드 간의 거리 정보, 링크 상태 정보를 실시간으로 반영

 

흐름 제어 - 정지 - 대기(Stop-and-wait)

  • 수신 측의 확인 신호를 받은 후에 다음 패킷 전송
  • 한 번에 하나의 패킷만 전송 가능

 

도커(Docker)

  • 컨테이너 기술을 자동화

 

스크래피(Scrapy)

  • Python 기반 웹 크롤링 프레임워크

 

텐서플로(TensorFlow)

  • 데이터 흐름 프로그래밍을 위한 오픈소스 소프트웨어 라이브러리

 

서비스 지향 아키텍처(SOA) 기반 애플리케이션 구성 계층

  • 표현 계층, 업무 프로세스 계층, 서비스 중간 계층, 애플리케이션 계층, 데이터 저장 계층

 

매시업(Mashup)

  • 웹에서 제공하는 정보 및 서비스를 이용

 

디지털 트윈(Digital Twin)

  • 현실 속의 사물을 소프트웨어로 가상화한 모델

 

서비스형 블록체인(Baas)

  • 블록체인(Blockchain) 앱의 개발 환경을 클라우드 기반으로 제공하는 서비스

 

TCP 래퍼(TCP Wrapper)

  • 외부 컴퓨터의 접속 인가 여부를 점검하여 접속을 허용 및 거부

 

DPI(Deep Packet Inspection)

  • 패킷 내부의 콘텐츠를 파악

 

허니팟(Honeypot)

  • 비정상적인 접근의 탐지를 위해 의도적으로 설치해 둔 시스템

 

OWASP(오픈 웹 애플리케이션 보안 프로젝트)

  • 보안이 취약한 부분을 연구하는 비영리 단체

 

고가용성 솔루션(HACMP)

  • 장애 발생 시 즉시 다른 시스템으로 대체 가능한 환경 구축

 

앤 스크린(N-Screen)

  • N개의 서로 다른 단말기에서 동일한 콘텐츠를 자유롭게 이용

 

Secure OS

  • 기존 운영체제에 보안 기능을 갖춘 커널을 이식

 

하둡(Hadoop)

  • 오픈 소스를 기반으로 한 분산 컴퓨팅 플랫폼
  • 대용량 데이터 전송 시 스쿱(Sqoop) 도구 이용

 

맵리듀스

  • 대용량 데이터를 분산 처리하기 위한 목적

 

데이터 마이닝(Data Mining)

  • 대량의 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는 정보를 발견하기 위한 기법

 

OLAP(Online Analytical Processing)

  • 통계적인 요약 정보를 분석하여 의사결정에 활용

 

회복(Recovery)

  • 트랜잭션 수행 중 장애 발생 시, 손상되기 이전의 정상 상태로 복구

 

즉각 갱신 기법(Immediate Update)

  • 트랜잭션이 갱신하면, 부분 완료되기 전이라도 즉시 실제 데이터베이스에 반영
  • 갱신된 내용 Log에 보관

 

로킹 단위

  • 로킹 단위가 크면, 관리하기 쉽지만 병행성 수준이 낮아짐
  • 로킹 단위가 작으면, 오버헤드가 증가하지만 병행성 수준이 높아짐

 

타임스탬프 순서

  • 직렬성 순서를 결정하기 위해 트랜잭션 간의 처리 순서를 미리 선택하는 기법

교착상태 발생의 필요충분조건 4가지

  • 상호 배제, 점유와 대기, 비선점, 환형 대기

 

회피 기법(Avoidance)

  • 교착상태가 발생하면 적절히 피해 나가는 기법
  • 은행원 알고리즘

 

Seven Touchpoints

  • 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론

 

보안 3대 요소

  • 기밀성(인가된 사용자에게만 접근 허용)
  • 무결성(인가된 사용자만 수정 가능)
  • 가용성(언제라도 사용 가능)

 

세션 하이재킹

  • 클라이언트의 세션 정보를 가로채는 공격 기법

 

SQL 삽입

  • 웹 응용 프로그램에 SQL을 삽입

 

경로 조작 및 자원 삽입

  • 데이터 입출력 경로를 조작

 

크로스사이트 스크립팅(XSS: Cross Site Scripting)

  • 웹페이지에 악의적인 스크립트를 삽입

 

메모리 버퍼 오버플로

  • 할당된 메모리의 범위를 넘어선 위치에 자료를 읽거나 쓰려고 하는 경우 발생

 

하드코드된 비밀번호

  • 소스코드 유출 시 내부에 하드코드된 패스워드를 이용하여 관리자 권한 탈취
  • 하드코드: 데이터를 코드 내부에 직접 입력하여 프로그래밍하는 방식

 

스택 가드(Stack Guard)

  • 잘못된 복귀주소의 호출을 막는 기술

 

접근 지정자(접근 제어자)

  • 외부로부터의 접근을 제한하기 위해 사용되는 예악어(Public, Protected, Default, Private)

 

개인키 암호화 기법

  • 동일한 키로 데이터를 암호화하고 복호화하기에 속도가 빠름

 

개인키 암호화 기법의 종류

  • 블록 암호화 방식(한 번에 하나의 데이터 블록을 암호화하는 방식)(DES, SEED, AES, ARIA, IDEA)
  • 스트림 암호화 방식(비트/바이트/워드 단위로 암호화하는 방식)(LFSR, RC4)

 

해시(Hash)

  • 임의의 길이나 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환
  • 일방향 함수에 해당

 

공개키 암호화 기법

  • 암호화할 때 사용하는 공개키는 사용자에게 공개, 복호화할 때 사용하는 비밀키는 관리자가 비밀리에 관리
  • 암호화 대상이 n개 → 사용되는 키의 수 2n (RSA)

 

양방향 알고리즘 종류

  • DES, AES, RSA

 

솔트

  • 암호화를 수행하기 전, 원문에 무작위의 값을 덧붙임

 

죽음의 핑(Ping of Death)

  • Ping 명령을 전송할 때, ICMP 패킷의 크기를 인터넷 프로토콜 허용 범위 이상으로 전송

 

SMURFING(스머핑)

  • IP, ICMP 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄

 

DDos(Distributed Denial of Service)

  • 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격을 수행

 

피싱(Phishing)

  • 공기관이나 금융 기관을 사칭하여 개인 정보를 빼내는 기법

 

Ping Flood

  • 매우 많은 ICMP 메세지를 보내 이에 대한 응답으로 시스템 자원을 모두 사용하게 함

 

스위칭 재밍(Switch Jamming)

  • 스위치 MAC 주소 테이블의 저장 기능을 혼란시킴

 

블루투스 관련 공격

  • 블루버그(취약한 연결), 블루스나프(파일에 접근), 블루프린팅(장비 검색), 블루재킹(메시지를 익명으로 퍼뜨림)

 

웜(Worm)

  • 연속적으로 자신 복제

 

키로거 공격(Key Logger Attack)

  • 컴퓨터 사용자의 키보드 움직임을 탐지

 

랜섬웨어(Ransomware)

  • 내부 문서나 파일 등을 암호화

 

백도어(Back Door)

  • 시스템 보안을 제거하여 만들어놓은 비밀 통로

 

인증

  • 로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증
  • 관리적/물리적/기술적 보안

 

커널 로그의 종류

  • wtmp: 성공한 로그인/로그아웃과 시스템의 시작/종료 시간에 대한 로그
  • utmp: 현재 로그인한 사용자의 상태에 대한 로그
  • btmp: 실패한 로그인에 대한 로그
  • lastlog: 마지막으로 성공한 로그인에 대한 로그

 

침입 탐지 시스템(IDS, Intrusion Detection System)

  • 컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지
  • 오용 탐지: 미리 입력해 둔 공격 패턴 감지
  • 이상 탐지: 비정상적인 행위나 자원의 사용이 감지

 

VPN(Virtual Private Network, 가상 사설 통신망)

  • 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션

 

SSH(Secure Shell, 시큐어 쉘)

  • 다른 컴퓨터에 로그인, 원격 명령 실행, 파일 복사 등을 수행할 수 있도록 하는 프로토콜(22)