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

[정보처리기사] 21년 1회 필기 출제 개념 정리

by mihsyeh 2021. 6. 5.

 

 

리눅스 명령어

chmod 파일 사용 허가 지정 chown 파일 소유자 변경
fork 새 프로세스 생성 fsck 시스템 검사 보수
is 파일 목록 확인 uname 버전 확인

 

GoF 디자인 패턴 ; 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 때
재사용할 수 있는 해결책

(1) 생성패턴 : 객체 생성 패턴
- Abstract 추상 팩토리 : 구체적 클래스 지정x 독립적 객체 생성위한 인터페이스 제공
- 싱글톤 패턴 : 클래스 인스턴스가 하나임을 보장한다
- 빌더 패턴 : 생성과정, 표현과정 분리. 동일 생성과정에서 다양한 표현 생성
- 팩토리 메소트 : 인스턴스 만드는 클래스를 서브클래스에서 결정
- 프로토타입 : 원본 객체를 복제하는 방법으로 객체 생성

(2) 구조패턴 : 클래스를 확장할 수 있는 구조를 만드는 방법을 알려주는 패턴
- Adapter : 호환성x, 클랙스들의 인터페이스를 다른 클래스가 이용할 수 있게 변환
- bridge : 구현부에 추상층을 분리하여 각자 독립적으로 변형
- Combosite : 객체 관계 - 트리구조로 구성 / 부분 - 전체 계층 표현
- Decorator : 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴
- Facade : 서브시스템에 있는 인터페이스 집합에 통합된 하나의 인터페이스 제승
- Froxy : 어떤 다른 객체로 접근하는 것을 통제

(3) 행동패턴 : 기존 객체 저장, 연결
- Observer : 한 객체의 상태가 변화하면 상속되어 있는 다른 객체에게 변화 상태 전달 (1:N 관계, 의존성)
- Visitor : 각 클래스들의 데이터 구조에서 처리 기능 분리. 별도의 클래스를 구성
- Interpreter : 언어에 문법을 표현수단으로 정의. 해덩언오로 된 문장을 해석하는 해석기를 사용하는 패턴
- Chain of responsibility : 요청을 보내는 쪽 - 받는 쪽의 결합을 피하는 패턴
- State 상태 패턴 : 객체 내부 상태가 변경될 때 행동도 변경되도록 허락
- Template Method : 상위 클래스에서 골격 정의 / 하위 클래스에서 처리 구체화

 

미들웨어 ; 컴퓨터 간 연결을 쉽고 안전하게 해주고 이에 대한 관리를 도와주는 소프트웨어
1) WAS 앱 애플리케이션 서버
: 사용자 요구에 따라 변화는 동적인 콘텐츠를 처리하기 위해 사용 ex) Tomcat, weblogic, Jeus, Resin
2) MOM 메세지 지향 미들웨어
: 메세지 기반의 비동기형 메세지 전달
3) RPC 원격 프로시저 호출
: 응용 프로그램 프로시저를 사용해 원격 프로시저를 로컬 프로시저 처럼 호출
4) ORB 객체요청 브로커
: 객체지향 미들웨어를 코바 표준 스펙을 구현
- 코바(CORBA) ; 네트워크 분산 프로그램 객체를 생성.배포.관리 규격
5) TP-Monitor 트랜잭션 처리 모니터
: 항공, 철도 예약 업무. 트랙잭션 처리, 감시. 사용수 증가해도 빠른 응답 속도 유지
6) Legacyware : 기존 APP + 새로운 기능 덧붙이기 

 

순서대로 객 > 동 > 기
체 모델링 (Object) : 객체 다이어그림, 정보 모델링

적 모델링 (Dynamic) : 상태 다이어그램
능 모델링 (Functional) : 자료 흐름도
- Process (타원), Data flow (화살표), data stor (직선, 이중직선), Terminator (직사각형)

 

자료구조
(1) 선형구조
- Array 배열 : 동일 순서 추가x
- 선형 리스트 : 포인터, 수정, 링크, 속도 느림
- Stack 스택 : 한 쪽 끝으로만 삽입, 삭제, 수식. LIFO 서브루틴 호출, 인터럽트 처리
- 큐 : 한쪽 삽입, 한쪽 삭제. 작업 스케줄링 FIFO
- Deque 데큐 : 양쪽 끝 모두 삽입, 삭제

(2) 비선형 구조
- Tree : Node, Degree, Branch
- 그래프

 

블랙박스테스트 ; 소프트웨어 인터페이스에서 실시되는 기능 테스트
소프트웨어 기능이 의도대로 작동되고 있는지 테스트하는 기법
① 동치분할 검사
② 경계값 분석
③ 원인 - 효과 그래프
④ 오류 예측 검사 : 경험, 감각
⑤ 비교 검사 : 여러 프로그램 동일 테스트
⑥ 페어 와이즈 : 테스트 데이터 값들 간 최소 한번씩 조합하는 방식
커버해야 할 기능적 범위를 모든 조합에 비해 상대적으로 적은 양 테스트 세트를 구성하기 위한 기법

 

소프트웨어 품질 목표
① Correctness 정확성 : 요구기능충족
② Reliability 신뢰성 : 오류 없이
③ Usability 유용성 : 쉽게 배우고 사용
④ Integrity 무결성 : 무허가 사용, 자료의 변경 제어
⑤ Efficiency 효율성 : 수행을 위한 능력과 자원 소요
⑥ Portability 이식성 : 다양한 환경
⑦ Flexibility 유연성 : 새 요구사항에 맞게 수정
⑧ Reusability 재사용성 : 기존 프로그램을 다른 목적으로 사용
⑨ Interoperability 상호운용성 : 다른 소프트웨어와 교환

 

형상관리 ; 소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경사항을 관리하기 위한 활동
절차 : 형상 식별 > 형상 통제 > 형상 감사 > 형상 기록

 

해싱 함수
해싱 : Hash Table이라는 기억 공간을 할당하고, 해시 함수를 이용하여 레코드에 대한 Hash Table 내의 Home adress를 계산한 후 주어진 레코드를 해당 기억장소에 저장하거나 검색 작업을 수행하는 방식
- DAM 파일 구성, 접근속도 향상, 기억 공간 많이 요구함
- 키 / 주소 변환 방법
해싱 함수 종류
① 제산법 h(k) = K mod Q
② 제곱법 h(k)2 중간부분 홈주소
외 폴딩법, 기수변환법, 숫자분석법, 무작위

 

인수테스트 ; 개발한 소프트웨어가 사용자의 요구사항을 충족하는지에 중점을 두고 테스트하는 것
(1) 알파 테스트 : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법, 통제된 환경, 오류와 문제점을 사용자와 개발자가 함께 확인하며 기록
(2) 베타 테스트 : 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트 기법, 개발자에 의해 제어되지 않은 상태에서 테스트, 오류와 문제점을 기록하고 개발자에게 주기적으로 보고

 

스키마 Schema ; DB의 구조, 제약조건에 관한 전반적인 명ㅇ세를 기술한 메타데이터 집합
data dictionary에 저장함 시간에 따라 불변
인스턴스 : 데이터 개체를 구성하고 있는 속성들에 데이터 타입이 정의되어 구체적인 값을 갖고 있는 것
① 외부 스키마 External : 서브 스키마, 사용자 뷰
 - 하나의 DB에 여러 외부 스키마 가능 SQL, COBOL, C 접근
② 개념 스키마 Conceptual : 전체적인 뷰
 - 개체 간 관계, 제약조건, DB 파일에 저장되는 데이터 형태. 필요 데이터 종합 조직 전체의 DB
③ 내부 스키마 Internal : 저장 스키마, 물리적 저장장치와 밀접
 - 시스템 프로그래머, 설계자 관점

 

데이터 베이스 설계 순서 (개논물)
1. 요구조건 분석
2. 개념적 설계 : 현실 세계 인식 - 추상화 개념 표현
- 개념 스키마. 트랜잭션 모델링 E-R 다이어그램 
3. 논리적 설계 : 논리 스키마 설계
- 트랜잭션 인터페이스 설계
4. 물리적 설계 : 데이터 구조화
- 저장 레코드 양식 설계. 레코드 집중 분석, 설계. 접근 경로 설계
5. 데이터베이스 구현
- 3,4단계에서 도출된 DB스키마(DDL 이용)를 파일로 생성, 트랜잭션 작성

 

릴레이션 = 관계 = 표 형태
카디널리티 = 기수 = 튜플 수
차수 = 디그리 degree = 속성 수
튜플 = 속성 모임 = 행 (가로)
속성 = 열(세로) = 애트리뷰트
도메인 = 같은 타입의 원자값

합격 튜카행 = 튜플 카디널리티 행

 

병행제어 ; 동시에 여러 트랜잭션을 수행할 때 데이터 베이스의 일관성을 파괴하지 않도록 트랜잭션 간 상호작용을 제어
(1) 문제점 : 갱신 분실, 비완료 의존성, 모순성, 연쇄 복귀
(2) 목적 : DB 공유 최대화, 시스템 활용도 최대화, 응답시간 최소화, DB 일관성 유지

로킹 Loking ; 주요 데이터의 액세스 상호 배타적 트랜잭션들이 Lock 허락되어야 그 로킹 단위를 액세스 하는 기법
로킹 단위 : 병행 제어에서 한번에 로킹하는 단위
- 로킹 단위가 크면 > 로크 수 작음 > 병행성 수준 저하 = 오버헤드 적지만 공유 저하
- 로킹 단위가 작으면 > 로크 수 큼 > 병행성 수준 향상 = 오버헤드 크고 공유 증가

 

View ; 사용자에게 접근이 허용된 자료만 제한적으로 보여주기 위한 가상 테이블
- 물리적 X, 제약사항 O
- CREATE 정의, DROP 제거

 

정규화 ; 테이블의 속성들이 상호 조속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정
>메인이 원자값 - (1 정규화) - 분적 함수 종속 제거 - (2 정규화) - 행적 함수 종속 제거 - (3 정규화) - 정자면서 후보키 아닌 것 제거 - (BCNF) - 치 종속 - (4 정규화) - 인 종속성

반정규화 (비정규화) ; 의도적으로 정규화 원칙을 위배하는 행위
- 테이블 통합, 분할, 중복 테이블 추가, 중복 속성 추가

 

무결성 ; 데이터베이스에 저장된 값과 현실세계의 실제 값이 일치하는 정확성
① 개체 무결성
② 도메인 무결성
③ 참조 무결성
④ 사용자 정의 무결성
⑤ NULL 무결성
⑥ 고유 무결성
⑦ 키 무결성
⑧ 관계 무결성

 

응집도 ; 모듈이 독립적인 기능으로 정의되어 있는 정도
고품질 > 기능적 - 순차적 - 교환적 - 절차적 - 시간적 - 논리적 - 우연적 > 저품질

저품질

 

OSI 7계층
물리 : 두 장치 간 실제 접속
데이터 링크 : 신뢰성, 동기화, 오류 제어
네트워크
전송 : 종단 (End to end) 오류, 흐름 제어
세션 : 송수신간 관련성, 대화제어
표현 : 세션-응용간 데이터 변환
응용 : 사용자-OSI 접근, 전자사서함, 가상터미널

 

MAC 매체 접근 제어 ; LAN에서 하나의 통신회선을 여러 단말 장치들이 원할하게 공유할 수 있도록 하는 통신 회선 접근 방식
(1) CSMA
각 노드가 데이터 프레임 송신 전 통신 회선을 조사하여 사용 여부에 따라 대기하거나 송신하는 방식 > 충돌 위험
(2) CSMA / CD : 버스형 / 트리형 LAN.
CSMA의 충돌 문제 개선하여 재송신. 송신 중에도 전송을 상태 검사
(3) Ethernet 이더넷
IEEE 802.3 CSMA / CD를 사용하는 LAN
(4) Token bus 토큰 버스 : 버스형 LAN.
토큰이 논리 ring을 따라 차례 이동한다 전송량이 많고 안정적이나 평균 대기시간이 김
(5) Token ring 토큰 링 방식 : 링형 CAN
프리 토큰 - 사용 가능 / 비지 토큰 - 사용 중

 

교착상태 ; 두 개 이상의 프로세스가 서로 작업이 끝나기만을 기다리고 있어 둘다 끝나지 않는 상황
(1) 필요 조건 - 4가지 모두 만족해야 함
① 상호배제 (Mutual exclusion)
② 점유와 대기 (Hold and wait)
③ 비선점 (Non-preemption)
④ 환영 대기 (Circular wait)

(2) 교착상태 방지법
① Prevention : 요구조건 만족 못하게 방지
② Avoidance 은행원 알고리즘
③ Detection and Recovery : 교착상태가 발생하게 두고 발생하면 고침

 

IPv6 ; 16비트 x 8 = 총 128비트
16진수. 콜론으로 구분
- 유니 캐스트 : 단일 송수신자 간 1:!
- 멀티 캐스트 : 단일 송신자 - 다중 수신자 (1:N 통신)
- 애니 캐스트 : 가장 가까운 단일 송수신자

 

TCP / IP ; 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있는 표준 프로토콜
TCP - 연결 / 패킷 다중화 제어
IP - 비연결 / 패킷분해조립 경로 선택

(1) 응용계층 (세션, 표현, 응용)
FTP : 컴-컴 / 컴-인
SMTP : 전자우편
SNMP : 네트워크 기기의 정보 (라우터, 허브)
DNS : 도메인 > IP
HTTP : 웹서버 - 웹 클라이언트
TELNET : 원격 컴퓨터

(2) 전송계층 (전송)
TCP : 양방향 연결, 신뢰성 겨로, 패킷단위 스트림전달
UDP : 비연결형. 단순헤더 구조. 신뢰성 < 속도. 실시간
RTCP : RTP 품질제어. 주기적 제어정보 전송. 하위 데이터 패킷. 패킷 다중화

(3) 인터넷 계층 (네트워크)
IP : 주소 지정. 경로 설정. 비연결형. 신뢰성 보장X
ICMP : 오류 처리, 경로 변경, 제어메세지
IGMP : 멀티캐스트 그룹 유지
ARP : IP 주소 > 물리적 주소 (MAC)
RARP : 물리적 주소 (MAC) > IP 주소

(4) 네트워크 액세스 계층 (물리, 데이터 링크)
Ethernet (IEEE 802.3) : CSMA / CD 방식 CAN
IEEE 802 : LAN 표준 프로토콜
HDLC : 비트 위주 데이터 링크 제어
X.25 : 패킷 교환망 DTE / DCE 인터페이스 제공
RS - 232C : 공중전화 교환망 DTE / DCE 인터페이스

 

Working Set 워킹 셋 ; 운영체제 가상기억장치관리에서 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
Locality 지역성, 구역성 ; 주 기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질
Thrashing 스레싱 ; 프로세스 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
페이지 부재 빈도 방식 (PFF) ; 페이지 프레임 수 조절하여 페이지 부재율 적정 수준 유지
Prepaging 프리페이징 ; 과도한 페이지 부재 방지. 필요할 것 같은 모든 페이지를 미리 한번에 페이지 프레임에 적재

 

결합도 ; 모듈 간 상호의존하는 정도, 연관 관계
자료 - 스탬프 - 제어 - 외부 - 공통 - 내용

 

가상기억장치 ; 보조기억장치의 일부를 주처럼 사용
(1) Paging 기법 - 내부 단편화
가상 기억장치 프로그램 크기 = 주 기억장치 영역 크기
단위 - 페이지
페이지 맵 테이블 비용

(2) Segmentation 기법 - 외부 단편화
프로그램 크기 = 다양. 논리적 단위
단위 - 세그먼트
고유명, 크기 / 기억 공간 절약
세그먼트 맵 테이블

Linking ; 링커에 의해 수행되는 작업
로더 ; 컴퓨터 내부로 정보를 들여오가나 로드 모듈을 보조기억장치로부터 주 기억장치에 적재하는 SW

 

암호 알고리즘
MD5 : 128 비트 암호화, 해시함수 (지금은 사용x)
SHA (SHA-0) : NSA에서 1993년 처음 설계 SHA-1, SHA-2 등
SHA-256 : 출력 속도가 빠르다. 인증서, 블록체인 등 사용, 단방향 알고리즘
RSA : 공개키, 전자서명 가능
DSA : 디지털 서명 알고리즘

 

Tripwire : linux / 외부의 크래커 공격과 내부의 악의적인 사용자의 공격으로부터 자신의 linux 시스템을 지켜내는 마지노선 역할을 하는 프로그램
tcpdump : TCP / IP 뿐 아니라 컴퓨터에 부착된 네트워크를 통해 송수신되는 기타 패킷을 가로채고 표시할 수 있게 도와주는 소프트웨어
cron : 스케줄러 실행할 때 ( ) 표현식을 통해 배치 수행시간을 설정
netcat : TCP / UDP를 사용하여 네트워크 연결을 읽고 쓰는데 사용되는 컴퓨터 네트워킹 유틸리티

 

MQTT ; 매세지 매개자 (Broker)를 통해 송신자가 특정 메세지 발행. 수신자가 메세지를 구독하는 방식
- 대역폭제한된 통신 환경에 최적화된 푸시기술 기반 경량 메시지 전송 프로토콜

 

접근 통제 ; 데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보흐름 제한
(1) 임의 접근 통제 (DAC)
- 사용자 신원 기준 주체에게 통제 권한 ; GRANT, REVOKE
(2) 강제 접근 통제 (MAC)
- 주체-객체 등급 비교 제 3자가 통제 권한 지정
DB 객체 별 보안등급, 사용자 별 인가 등급

접근 통제 정책
- 신분 기반 정책, 규칙 기반 정책, 역할 기반 정책

 

LOC 기법 (상향식)
노력 = 개발 기간 x 투입 인원 = LOC / 1인당 평균
개발 비용 = 노력 X 단위 비용
개발 기간 = 노력 / 투입 인원
생산성 = LOC / 노력

 

소프트웨어 개발 방법론
(1) 객체 지향 : 현실세계의 개체를 기계의 부품처럼 하나의 객체로 만들어 객체들을 조립하여 소프트웨어 구현
 - 캡슐화, 정보은닉, 추상화, 상속성, 다형성
(2) 구조적 방법론 : 정형하된 분석절차 / 유저 요구사항 파악 > 문서화 >  처리
 - 분할과 정복, 자료 흐름도, 자료사전, 소단위 명세서
(3) 정보공학 방법론 : 자료(data) 중심, 정형화된 기법, 대규모 프로젝트에 적합
(4) CBD 방법론 (컴포넌트 기반) : 컴포넌트 (모듈화된 자원) 조립 => 새로운 애플리케이션
 - 상향식, 재사용, 비용 시간 노력 최소화
(5) 애자일 (Agile) : 요구사항 변화에 유연 대응 위해 일정 주기 반복. 소규모 프로젝트
(6) 제품개열 방법론 : 특정 제품에 적용하고싶은 공통된 기능 정의. 임베디드 sw

 

블록체인 ; P2P 네트워크 이용, 온라인 금융거래 정보 > 디지털 장비에 분산 저장
Bass ; 블록체인을 클라우드로 서비스, 블록체인 네트워크에 노드 추가 제거 용이, 클라우디 컴퓨팅 플랫폼

 

COCOMO ; 수학적산정기법 (상향식 비용 산정),  보헴
- 조직형 Organic Mod; 5만
- 반분리형 Semi-Detached Mod; 30만 미만
- 내장형 Embedded Mod; 30만 이상

 

신기술
(1) Smart grid : 기존의 전력망 + 정보기술
(2) 미디어 빅뱅 : 신문과 방송 / 방송과 통신의 융합은 물론 기술 진보에 따른 IPTV, 스마트 TV 등 뉴미디어가 등장해 미디어 산업이 빅뱅같은 강도로 재편되는 현상
(3) 디지털 아카이빙 : 아날로그 콘텐츠를 디지털로 변환, 압축저장 / 기존 디지털 콘텐츠도 체계적으로 분류, 메타 데이터를 만들어 DB화 하는 작업
(4) IoT (사물 인터넷) : 정보통신기술기반 현실과 가상의 다양한 사물들을 인터넷으로 서로 연결한 서비스 기반 기술

 

개인키 암호화
(1) 블록 암호화 방식 : 한번에 하나의 데이터 블록 암호화 ; DES, SEED, AES, ARIA
(2) 스트림 암호화 방식 : 평문과 동일한 길이의 스트림 생성, 비트 단위로 암호화, 비트 - 바이트 - 단어 순.; RC4, LFSR

 

세션 하이재킹 ; 서버에 접속하고 있는 클라이언트의 세션 정보를 가로채는 공격기법 = 세션 가로채기

 

공격기법
(1) Evil twin attack : 합법적인 네트워크인것처럼 가장해 무선 사용자들의 비밀번호나 정보를 훔치는 무선 네트워크 공격

(2) 논리 폭탄 Logic bomb : 특정 시간, 날짜 등 조건이 충족되면 악의적인 function이 유발할 수 있게 만든 코드
프로그램 코드 일부를 조작해 소프트웨어 임의 부분에 숨겨져 있다가 특정 조건이 발생되면 컴퓨터로 하여금 불법행위를 실행하게 한다.
(3) 사이버 불링 : 인터넷 상의 집단괴롭힘을 뜻하는 신조어
(4) 피싱 Phishing : 전자우편, 메세지를 통해 신뢰할 수 있는 사람, 기업이 보낸 것처럼 위장하여 기밀정보를 부정하에 얻으려는 것

 

 

 

댓글