본문 바로가기
휴지통/정보처리기사

오답노트 02

by 신재권 2022. 2. 8.

리눅스 명령어

ls : List, 디렉토리 목록 출력

cat : 파일 출력, 두개 이상의 파일 연결

pwd : Print Working Directory , 현재 디렉토리 출력

uname : 시스템 정보를 출력

유스케이스

시스템이 엑터에게 제공해야 하는 기능으로, 시스템의 요규ㅜ사항이자 기능을 의미

유스케이스 다이어그램은 사용자의 요구를 추출하고, 분석하기 위해 주로 사용

액터는 시스템 외부에서 시스템과 상호작용 하는 사람 혹은 시스템을 말함

사용자 액터 : 기능을 요구하는 대상이나 시스템의 수행결과를 통보받는 사용자 혹은 기능을 사용하게 될 대상으로 시스템이 제공해야하는 기능인 유스케이스의 권한을 가지는 대상, 역할

시스템 액터 : 사용자 액터가 사용한 유스케이스를 처리해주는 외부 시스템, 시스템의 기능 수행을 위해서 연동이 되는 또 다른 시스템 액터를 의미

요구분석(Requirement Analysis)

기능적 요구사항

  • 시스템이 수행해야 하는 행위들을 구체화 한 것
  • 시스템에서 제공해야 할 기능을 정의한 것
  • 입력 기능, 츨력기능, 데이터베이스 기능, 통신 기능 등

비기능적 요구사항

  • 시스템이 가져야하는 기능 이외의 요구사항
  • 시스템의 전체적인 품질이나 고려해야 하는 제약사항 등
  • 사용 용이성, 효율성, 신뢰성, 이식성, 유연성, 확장성 등
  • 성능적이면 : 응답 속도, 자원 사용량 등
  • 보안 측면 : 침입 대응, 칩입 탐지, 사용자 인증, 권한 부여

시스템 품질 속성

가용성, 변경용이성, 성능, 보안성, 사용편의성, 시험용의성

연계 시스템

  1. 송신 시스템
  • 연계할 데이터를 DB와 어플리케이션으로부터 연계 테이블 또는 파일 형태로 생성하여 송신
  1. 수신 시스템
  • 수신한 연계테이블, 파일데이터를 수신시스템에서 관리하는 데이터 형식에 맞게 변환하여 DB에 저장하거나 애플리케이션에서 활용할 수 있도록 제공
  1. 중계 서버
  • 송/수신 시스템 사이에서 데이터를 송수신하고, 연계 데이터의 송수신 현황을 모니터링 함, 연계데이터의 보안강화 및 다중플랫폼 지원 등이 가능

UML(Unified Modeling Language)

기능적 모델은 사용자 측면에서 본 시스템 기능이며, UML에서는 Use Case Diagram을 사용

정적 모델은 객체, 속성, 연관관계, 오퍼레이션의 시스템의 구조를 나타내며, UML에서는 Class Diagram을 사용

동적 모델은 시스템의 내부 동작을 말하며, UML에서는 Sequence Diagram, State Diagram, Activity Diagram을 사용

State Diagram : 객체가 가진 상태와 상태 변환을 나타냄

Sequence Diagram : 객체 사이에 오가는 메시지를 시간순으로 나타냄

Activiy Diagram : 업무의 흐름을 모델링 하거나 객체의 생명주기를 표현

Deployment Diagram : 기업 환경의 구성과 컴포넌트들 간의 관계를 그린 다이어그램

Component Diagram : 소프트웨어 구조가 그리는 다이어그램

Class Diagram : 시스템의 구조적인 모습을 그리는 다이어그램

GoF(Gang of Four) 디자인 패턴

에리히 감마, 리처드 헬름, 랄프존슨 ,존 블리시데스가 같이 고안한 디자인 패턴

23가지 디자인 패턴을 3가지 분류로 정리한 디자인 패턴

생성 패턴 : Abstract Factory, Builder, Factory Method, Prototype, Singleton

구조 패턴 : Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy

행위 패턴 : Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategty, Template Method, Visitor

럼바우(Rumbaugh)

객, 동, 기

객체(Object) 모델링 : 객체 다이어그램

동적(Dynamic) 모델링 : 상태 다이어그램

기능(Functional) 모델링 : 자료 흐름도

요구사항 관리 도구의 필요성

요구사항 변경으로 인한 비용 편익 분석

요구사항 변경의 추적

요구사항 변경에 따른 영향 평가

시스템 테스트

요구사항, 무결성, 부피, 메모리, 성능 , 신뢰성, 부하, 회복 ,...

강도(Stress) 테스트 : 과다 정보량을 부과하여 시스템이 정상적으로 작동되는지 검증하는 테스트

버블정렬

인접한 데이터를 비교하면서 데이터의 위치를 바꾸어 정렬

한번의 Pass내에서 다수의 교체 발생

하향식 통합 방법

주요 제어 모듈은 작성된 프로그램을 사용하고, 주요 제어 모듈의 종속 모듈은 스텁(Stub)으로 대체

테스트 스텁(Test Stub) : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로, 일시적으로 필요한 조건만을 가지고 있는 시험용 모듈

전위식 → 후위식

전위 표기법(prefix) : 연산자가 앞에

중위 표기법(infix) : 연산자가 안에

후위 표기법 (postfix) : 연산자가 뒤에

-/*A+BCDE

  1. 연산자에 따라 묶는다.

(-(/(*A(+BC))D)E)

  1. 연산자를 각 괄호 뒤로 뺀다(후위식)

(((A(BC)+)*D)/E)-

  1. 괄호 제거

ABC+*D/E-

화이트박스 테스트

내부 구조와 동작을 검사하는 테스트 방식, 소프트웨어의 내부소스를 테스트

화이트박스테스트는 내부의 논리적인 모든 경로를 테스트해 테스트 케이스를 설계함

기본 경로는 싸이클을 최대 한번만 지나야 한다.

블랙 박스 테스트

내부 구조나 작동 원리를 모르는 상태에서 입력에 따른 출력 결과를 테스트

형상 관리 도구

git → 분산 저장소 방식

commit : 로컬 저장소에 반영

push : 원격 저장소에 반영

검증 & 확인

검증(Verification) : 소프트웨어가 요구사항에 부합하게 구현되었음을 보장하는 활동

확인(Validation) : 소프트웨어가 고객의 의도에 따라 구현되었음을 보장하는 활동

소스코드 정적 분석

프로그램을 실행 시키지 않고 코드를 분석하는 방법

코드 내에 존재하는 보안 취약점, 잠재적 결함, 위험 등을 발견 가능

규칙과 흐름에 맞게 코드가 올바르게 작성되어 있는지 점검

테스트 케이스의 구성요소

식별자 : 항목식별자, 일련번호

입력 명세 : 입력 데이터 또는 테스트 조건

출력 명세 : 테스트 케이스 수행 시 예상되는 출력 결과

환경 설정 : 필요한 하드웨어나 소프트웨어의 환경

특수 절차 요구 : 테스트 케이스 수행 시 특별히 요구되는 절차

의존성 기술 : 테스트 케이스 간의 의존성

소프트웨어 품질 목표

이식성(Portability) : 다양한 하드웨어 환겨엥서도 운용 가능하도록 쉽게 수정될 수 있는 능력

효율성(Efficiency) : 최소의 작업으로 요구되는 기능을 수행하는 정도

사용 용이성(Usability) : 소프트웨어를 쉽게 사용할 수 있는 정도

정확성(Correctness) : 사용자의 요구사항을 충족시키는 정도

정확성, 신뢰성, 효율성, 무결성, 유지보수 용이성, 사용 용이성, 검사 용이성, 이식성, 상호 운용성, 유연성, 재사용성

트리구조

최악의 경우에서 검색 시간 복잡도

이진 탐색 트리 : O(n)

AVL 트리 : O(log n)

2-3 트리 : O(log 3n)

레드 블랙 트리 : O(log n)

트리 순회

전위 : 중앙 노드 먼저 방문

중위 : 왼쪽 노드 방문 후 중앙 노드 방문

후위 : 하위 트리 노드 모드 방문 중앙 노드 방문

테스트 수행 도구

자료 흐름도, 기능 테스트, 입력 도메인 분석, 랜덤 테스트

스터브(Stub)와 드라이버(Driver)는 통합 테스트시 사용

스터브는 하향식 테스트

드라이브는 상향식 테스트

릴레이션

카디널리티 : 튜플의 수 : 행의 개수

차수(degree) : 속성의 수 : 열의 개수 (도메인)

슈퍼키 : 유일성을 만족하는 속성 또는 속성들의 집합

후보키 : 유일성과 최소성을 만족하는 속성 또는 속성들의 집합

대체키 : 기본키로 선택되지 못한 후보키

외래키 : 다른 릴레이션의 기본키를 참조하는 속성 들의 지합

릴레이션

릴레이션 = 테이블

튜플(Tuple) : 테이블의 행

속성(Attribute) : 테이블의 열

릴레이션의 논리적인 구조를 정의한 것은 릴레이션 스키마이다.

함수적 종속

함수적 종속이란 어떤 릴레이션 R이 있을 때 X와 Y를 각각 속성의 부분집합이라 가정했을 때, X의 값을 알면 Y의 값을 바로 식별할 수 있고, X의 값에따라 Y의 값이 달라질 때, Y는 X에 함수적 종속이라 한다.

이 경우 X를 결정자, Y를 종속자라고 한다.

X → Y

응집도

Temporl Cohension (시간적 응집도) : 모듈 내 구성요소들이 서로 다른 기능을 같은 시간대에 함께 실행하는 경우

Logical Cohension (논리적 응집도) : 모듈 내 구성 요소들이 같은 범주에 속하는 기능끼리 묶인 경우(새글, 불러오기, 저장하기, 다른이름으로 저장하기 등)

Conincidental Cohension (우연적 응집도) : 모듈 내 구성 요소들이 뚜렷한 관계 없이 묶인 경우

Sequential Cohension(순차적 응집도) : 모듈 내 구성요소들이 이전의 명령어로부터 나온 출력결과를 그 다음 명령어의 입력자료로 사용하는 경우(총점 과 평균의 관계)

우연적(Coincidental) < 논리적(Logical) < 시간적(Temporal) < 절차적(Procedural) < 교환적(Communication) < 순차적(Sequential) < 기능적(Functional)

결합도

내용(Content) > 공통(Common)>외부(External)>제어(Control) > 스탬프(Stamp) > 자료 (Data)

교착 상태의 해결방법

Detection(탐지) : 교착 상태 발생을 허용하고 발생 시 원인을 규명하여 해결(ex 자원할당 그래프)

Avoidance(회피) : 교착상태 가능성을 배제하지 않고 적절하게 피해나가는 방법(ex 은행원 알고리즘)

Recovery(복구) : 교착상태 발견 후 현황 대기를 배제시키거나 자원을 중단하는 메모리 할당 기법(ex 선점, 프로세스 중지(희생자 선택))

Prevention(예방) : 교착상태의 필요조건을 부정함으로써 교착상태가 발생하지 않도록 미리 예방하는 방법(ex 환영대기, 비선점, 점유와 대기, 상호배제 4가지 부정)

Ipv4

32Bit로 이루어짐

ip주소/서브넷마스크로 표기

203.241.132.82/27

1이 27개 있다고 생각

11111111.11111111.11111111.11100000

이것은

255.255.255.(128+64+32 = 244) 와 같다.

TCP/IP 프로토콜

TCP = 전송계층(4)

IP = 네트워크 계층(3)

Class Ip 주소

A class = 0.0.0.0 ~ 127.255.255.255

B class = 128.0.0.0 ~ 191.255.255.255

c class = 192.0.0.0 ~ 223.255.255.255

d class = 224.0.0.0 ~ 239.255.255.255 → 멀티캐스트 용

e class = 240.0.0.0 ~ 255.255.255.255 → 연구용

프로세스

디스패치 (Dispathch) : 준비 → 실행

할당시간초과(Time Run Out) : 실행 → 준비

대기(Block) : 실행 → 대기

깨움(Wake Up) : 대기 → 준비

PCB : 운영체제가 프로세스를 관리하는데 필요한 모든 정보를 유지하는 자료구조 테이블 - 상태, 소유자, 실시간 통계, 스레드, 관련 프로세스 리스트, 자식 프로세스 리스트, 주소 공간, 자원, 스택

문맥교환 : CPU가 현재 실행하고 있는 프로세스의 상태를 PCB에 저장하고 당므 프로세스의 PCB로부터 문맥을 복원하는 작업

프로세스의 실행단위를 스레드라고 부른다.

TCP 프로토콜

흐름 제어(Flow Control)의 기능을 수행

전이 중 (Full Duplex) 방식의 양방향 가상 회선을 제공

전송 데이터와 응답 데이터를 함께 전송

네트워크 계층

패킷을 발신지로부터 최종 목적지까지 전달하는 책임을 진다.

패킷에 발신지와 목적지의 논리주소를 추가한다.

라우터 또는 교환기는 패킷 전달을 위해 경로를 지정하거나 교환 기능을 제공

이상 탐지 기법

IPS(Instructsion Prevention System)

이상 탐지 기법(Anomaly Detection)은 Signature Base나 Knowledge Base라고도 불리며 이미 발견되고 정립된 공격 패턴을 입력해두었다가 탐지 및 차단

HIDS : 내부 시스템의 변화를 실시간으로 감시하여 누가 접근해서 어떤 작업을 수행했는지 기록하고 추적

접근 제어 방법

강제 접근 통제(Mandatory Access Control) : 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식

임의 접근 통제(Discretionary Access Control) : 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식

사용자 계정 컨트롤(User Access Control) : 프로그램에서 관리자 수준의 권한이 필요한 작업을 수행할 때 사용자에게 알려서 제어할 수 있도록 돕는 기능

자료별 접근 통제(Data-Label Access Control > Label-Based Access Control) : 개별 행, 열에 대한 쓰기 권한, 읽기 권한을 가졌는지를 명확하게 결정하는 제어 방식

CBD

Component - Based Development, 컴포넌트 기반 방법론

기존 시스템이나 소프트웨어를 구성하는 “컴포넌트를 조합"하여 하나의 새로운 애플리케이션을 만드는 방법론

CBD방법론의 개발 공정

  1. 요구파악 단계 → 요구사항 기술서, 용어 사전, 개념 모델, 유즈 케이스 모델
  2. 분석 및 설계 → 객체 모델, UI 설계서, 아키텍처 기술서, 인터페이스 명세서, 컴포넌트 명세서, 컴포넌트 설계서, 데이터베이스 설계서
  3. 구현 → 개발 표준 정의서, 플랫폼 종속적 코드
  4. 테스트 → 테스트 계획서, 컴포넌트 테스트 보고서, 통합 테스트 보고서, 인수 테스트 보고서

접근 제어 모델

BLP 모델 : 정보의 불법적인 파괴나 변조보다는 불법적인 비밀 유출 방지에 중점 - 기밀성 강조

Clark - Wilson 무결성 모델 : 비밀 노출 방지보다 자료의 변조 방지가 더 중요(금용, 회계 관련 데이터, 기업 재무재표)

Chinese Wall : 충돌을 야기시키는 어떠한 정보의 흐름도 없어야 함. 이익의 충돌 금지, 최근 일을 한적 있는 파트너는 동일 영역에 있는 다른 회사자료에 접근해서는 안된다.

Bell-Lapadula Model : 군대의 보안 레벨 처럼 정보의 기밀성에 따라 상하 관계가 구분된 정보를 보호하기 위해 사용

오류

사본 오류 (Transcription Error)

  • 작업자나 광 문자 인식(OCR) 프로그램에서 발생하는 데이터 입력 오류
  • 입력 시 임의의 한 자리를 잘못기록한 경우

생략 오류 (Omission Error)

  • 입력시 한 자리를 빼놓고 기록한 경우

전위 오류(Transposition Error)

  • 입력 시 좌우 자리를 바꾸어 기록한 경우

이중 오류(Double Transposition Error)

  • 전위 오류가 두 가지 이상 발생한 경우

추가 오류(Addition Error)

  • 입력 시 한 자리 추가로 기록한 경우

임의 오류(Random Error)

  • 위의 오류가 두 가지 이상 결합하여 발생하는 경우

OTT(오버더탑)

개방된 인터넷을 통해 방송 프로그램, 영화 등 미디어 콘텐츠를 제공하느 ㄴ서비스

SDDC(Software Definded Data Center)

소프트웨어 정의 데이터 센터

데이터 센터의 모든 자원이 가상화 되어 서비스되고, 소프트웨어 조작만으로 자동 제어 관리되는 데이터 센터

Wi-SUN(와이선)

스마트 그리드와 같은 장거리 무선 통신을 필요로 하는 사물 인터넷(IoT) 서비스를 위한 저전력 장거리(LPWA : Low - Power Wide Area ) 통신 기술

Baas

  • 블록체인 개발환경을 클라우드로 서비스 하는 개념
  • 블록체인 네트워크에 노드의 추가 및 제거가 용이
  • 블록체인의 기본 인프라를 추상화 하여 블록 체인 응용 프로그램을 만들 수 있는 클라우드 컴퓨팅 플랫폼

COCOMO 소프트웨어 비용 산정 기법

소프트웨어 개발 유형은 소프트웨어의 복잡도 혹은 원시 프로그램의 규모에 따라 조직형(Organic Mode), 반 분리형(Semi-Detached Mode), 내장형(Embedded Mode)으로 분류할 수 있다.

Oranic : 5만 라인 이하의 프로젝트에 적합, 소규모 팀이 개발에 사용

Semi-Detached : 30만 라인 이하의 프로젝트에 적합, 트랜잭션 처리 시스템 등

Embeded : 30만 라인이하의 프로젝트에 적합, 하드웨어가 포함된 실시간 시스템 등

Memristor

Memory + register , 전원 공급이 끊어져도 다시 전원이 공급되면 이전 상태 복원

MEMS

센서 , 엑추에이터 등 기계 구조를 다양한 기술로 미세 가공 후 전기계적 동작 가능케 한 초미세장치

SNMP

하드웨어 신기술 아님, 간이 망 관리 프로토콜

N-Screen

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

암호화 방식

  1. 단방향
  • 해시
  • SHA,MD5,N-NASH,SNEFRU
  • 임의의 길이의 입력 데이터나 메시지를 고정 길이의 값이나 키로 변환, 암호화, 무결성 검증을 위하여 사용
  1. 양방향
  • 개인키(암호화, 복호화시 동일한 개인키를 이용)
  • Stream 방식 (평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화) : LFSR, RC4
  • Block 방식 (한번에 하나의 데이터 블록을 암호화) :DES, SEED, AES, ARIA
  • 암호화/복호화 속도가 빠르며, 알고리즘이 단순, 공개키 암호 기법보다 파일 크기가 작음, 사용자의 증가에 따라 관리해야 할 키의 수가 상대적으로 많아진다.
  • 공개키(암호화 시 사용자에게 공개되는 공개키 사용, 복호화 시 비밀키 사용, 비대칭 암호 기법)
  • RSA
  • 키의 분배가 용이하고, 관리해야 할 키 수가 적음, 암호화/복호화 속도가 느리며 알고리즘이 복잡, 개인키 암호화 방법보다 파일의 크기가 크다.
  • 2 * N 개의 키가 필요

세션 하이재킹 탐지

비동기화 탐지 : 서버와 시퀀스 넘버를 주기적으로 탐지, 비동기 상태 탐지

Ack Storm 탐지 : 급격한 ACK 비율 증가시 탐지

패킷의 유실 및 재전송 증가 탐지 : 공격자가 중간에 끼어서 작동하므로 패킷의 유실과 서버와의 응답이 길어짐

명령어

type : type

mkdir : 디렉토리 생성

ftp : 응용 계층 프로토콜

nmap : 서버에 열린 포트 정보를 스캐닝

라우터

브리지와 같이 LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택할 수 있는 기능이 추가된 것으로, 서로 다른 LAN이나 LAN과 WAN의 연결도 수행

'휴지통 > 정보처리기사' 카테고리의 다른 글

오답노트 04  (0) 2022.02.12
오답노트 03  (0) 2022.02.11
오답노트 01  (0) 2022.02.07
016. UI 프로토타입 제작 및 검토  (0) 2022.01.02
015. 품질 요구사항  (0) 2022.01.02