본문 바로가기

정보처리기사

[정보처리기사] 필기시험 정리 & 오답 정리

728x90
반응형

정보처리기사 필기 정리 & 오답

필기정리 파일

필기 파일 링크

위의 블로그분께 허락을 받고 링크를 첨부합니다!

몇가지 정리 파일을 보았지만 제가 느끼기에 가장 정리가 잘 되어 있었습니다.
정보처리기사가 20년도에 개정이 된 이후 기출문제들에 대한 개념정리를 꼼꼼하게 해 두어서 공부하기 정말 좋습니다.
또한 다른 글에 공부방식도 나와있어 한번 읽어보시는 것도 추천 드립니다.
파일 공유해주신 원작자분 감사합니다!

개인 오답 정리

개인 오답정리 (위의 링크 파일에 없는 혹은 랜덤 기출을 풀다가 모르는 내용 정리)

유스케이스(Use Case)

  • 사용자가 보는 관점에서 시스템이 액터에게 제공하는 서비스 또는 기능을 표현한 것
  • 타원으로 표현하며 타원 안쪽이나 아래쪽에 유스케이스 이름을 기술한다.
  • 액터에 의해 수행되며, 액터가 관찰할 수 있는 결과를 산출한다.
  • 부분적 수행은 허용되지 않으며 유스케이스는 분석, 설계, 테스트 등 개발 전 과정에서 이용 될 수 있다.
  • 포함관계: 두 개 이상의 유스케이스에 공통적으로 적용되는 기능을 별도로 분리하여 새로운 유스케이스를 만든 경우
  • 확장관계: 유스케이스가 특정 조건에 부합되어 유스케이스의 기능이 확장될 때
  • 일반화 관계: 유사한 액터나 유스케이스를 하나의 그룹으로 묶고 싶을 때

HIPO(Hierarch Input Process Output)

  • 하향식 개발을 위한 문서도구
  • 시스템 분석 및 설계, 문서화 시 사용되는 기법으로 입력, 처리, 출력 가능
  • 체계적 문서관리로 기호, 도표등을 사용 (보기 쉽고 이해하기 쉬움)
  • 기능과 자료의 의존 관계를 동시에 표현
  • 차트 종류는 가시적 도표, 총체적 도표, 세부적 도표가 있음
    • 가시적 도표: 시스템의 전체 기능과 흐름을 보여주는 Tree(계층) 구조
    • 총체적 도표: 프로그램을 구성하는 기능을 기술한 것
    • 세부적 도표: 총체적 도표에 표시된 기능을 구성하는 기본 요소들을 상세하게 기술하는 도표

럼바우(Rumbaugh) 객체지향 분석 기법

  • 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 객체지향 분석 기법
  • 럼바우 객체지향 분석 기법의 절차는 객체 모델링 -> 동적 모델링 -> 기능 모델링
    • 객체 모델링: 객체 다이어그램. 정보 모델링이라고도 하며 시스템에서 요구하는 객체를 찾고 객체들 간의 관계를 정의
    • 동적 모델링: 상태 다이어그램, 시간의 흐름에 따라 객체들 사이의 흐름, 순서 등의 동적 행위 표현
    • 기능 모델링: 자료흐름도, 프로세스들의 자료 흐름을 중심으로 처리 과정

파이프 필터 패턴

  • 데이터의 흐름의 각 단계를 파이프와 필터로 연결
  • 각 파이프를 통해 넘어온 데이터를 처리하고 캡슐화
  • 서브 시스템이 입력데이터를 받아 처리하고 결과를 다음 서브시스템으로 넘겨주는 과정 반복

이진트리 탐색

  • 루트 노드(Root Node): 트리에서 촤상위 노드. 트리의 시작점
  • 트리 차수(Degree): 특정 노드에 연결된 자식의 수
  • 전위 순회(Pre-Order): 루트->좌측->우측
  • 중위 순회(In-Order): 좌측->루트->우측
  • 후위 순회(Post-Order): 좌측->우측->루트

해싱

  • Hash Table이라는 기억공간을 할당, 해시함수를 이용하여 주어진 레코드를 해당 기억장소에 저장하거나 검색 작업을 수행하는 방식
  • 해싱을 DAM(직접 접근)파일을 구성할 때 사용되며, 접근 속도는 빠르나 기억공간이 많이 요구
  • 다른 방식에 비해 검색 속도가 가장 빠르다
  • 삽입 삭제 작업의 빈도가 많을 때 유리
  • 키-주소 변환 방법이라고도 한다

해싱 함수(Hasing Function)

  • 제산법: 레코드키로 해시표의 크기보다 큰 수 중에서 가장 작은 소수로 나눈 나머지를 홈 주소로 삼는 방식
  • 제곱법: 레코드키 값을 제곱한 후 그 중간 부분의 값을 홈주소로 삼는 방식
  • 폴딩법: 레코드키 값을 여러 부분으로 나눈 후 각 부분의 값을 더하거나 XOR연산 한 값을 홈주소로 삼는 방식
  • 기수 변환법: 키 숫자의 진수를 다른 진수로 변환시켜 주소 크기를 초과한 높은 자릿수를 절단하고, 이를 다시 주소 범위에 맞게 조정하는 방법
  • 대수적 코딩법: 키 값을 이루고 있는 각 자리의 비트 수를 다항식의 계수로 간주, 이 다항식을 해시표의 크기에 의해 정의된 다항식으로 나누어 얻은 나머지 다항식의 계수를 홈 주소로 삼는 방식
  • 계수 분석법(숫자 분석법): 키 값을 이루는 숫자의 분포를 분석하여 비교적 고른 자리를 필요한 만큼 선택해서 홈 주소로 삼는 방식
  • 무작위법: 난수를 발생시켜 나온 값을 홈 주소로 삼는 방식

정렬 알고리즘

  • 선택정렬: 정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아 가장 앞의 데이터와 교환해나가는 방식
  • 삽입정렬: 아직 정렬되지 않은 임의의 데이터를 이미 정렬된 부분의 적절한 위치에 삽입해 가며 정렬하는 방식
  • 버블정렬: 서로 이웃한 데이터들으 비교하며 가장 큰 데이터를 가장 뒤로 보내며 정렬하는 방식
  • 합병정렬: 정렬된 N개의 데이터를 처리하는데 O(Nlog2N)의 시간이 소요되는 정렬

자료구조

  • 선형 구조: 배열, 선형리스트, 스택, 큐, 데크 -> 스택: 후입선출(LIFO), 큐: 선입선출(FIFO)
  • 비선형 구조: 트리, 그래프

전위식 후위식
2021년 3월 기출 24번
다음 전위식(prefix)을 후위식(postfix)으로 옳게 표현한 것은?
보기 -> - / * A + B C D E
전위 표기법(prefix) - 연산자가 앞에
중위 표기법(infix) - 연산자가 안에
후위 표기법(postfix) - 연산자가 뒤에

  1. 연산자에 따라 묶는다
    (-(/.(*A(+BC))D)E)
  2. 연산자를 각 괄호 뒤로 뺀다(후위식)
    (((A(BC)+)*D)/E)-
  3. 괄호를 제거한다.
    ABC+*D/E-

FIFO 페이지 교체 알고리즘

참조 페이지 2 3 2 1 5 2 3 5

페이지
프레임 2 2 2 2 5 5 5 5
3 3 3 3 2 2 2
1 1 1 3 3
페이지 부재 발생 수 1 2 2 3 4 5 6 6

  • 페이지 교체 기록: 231523
  • 총 6번의 페이지 부재가 발생했다.

접근통제

  • 접근통제는 데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보흐름을 제한하는 것이다.
  • 비인가된 사용자의 접근 감시, 접근 요구자의 사용자 식별, 접근 요구의 정당성 확인 및 기록, 보안 정책에 근거한 접근의 승인 및 거부
  • 임의 접근통제(DAC): 사용자의 신원에 따라 접근 권한 부여, 통제 권한이 주체에 있어 주체가 접근통제 권한을 제어
  • 강제 접근통제(MAC): 강제 접근통제는 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식, 제3자가 접근통제 권한을 지정
  • 역할기반 접근통제(RBAC): 사용자의 역할에 따라 접근 권한을 부여하는 방식, 중앙관리자가 접근통제 권한을 지정

접근통제 보호 모델
벨-라파둘라 모델(Bell-Lapadula): 미 국방부 지원 보안 모델 기밀성 강조, 강제적 정책에 의해 접근 통제하는 모델
비바 모델: 벨-라파둘라 모델의 단점을 보완한 무결성을 보장하는 최초의 모델

요구사항 명세 단계의 주요 기법

  • 비정형 명세 기법: 사용자의 요구를 표현할 때 자연어를 기반으로 서술, 사용자와 개발자의 이해가 용이, 명확성 및 검증에 문제 발생 가능
  • 정형 명세기법: 정형 명세 언어인 Z-스키마, Petri Nets, 상태 차트 활용, 표현 간결, 명확성 및 검증 용이, 기법 이해 어려움

복잡도

  • 복잡도는 시스템이나 시스템 구성 요소 또는 소프트웨어의 복잡한 정도를 나타내는 말
  • 시스템의 복잡도가 높으면 장애가 발생할 수 있으므로 정밀한 테스트를 통해 미리 오류를 제거할 필요가 있다.

시간 복잡도

  • 알고리즘을 수행하기 위해 프로세스가 수행하는 연산 횟수를 수치화한 것
  • 점근 표기법: 시간이 아닌 명렁어의 실행 횟수를 표기하는데 이러한 표기법
  • 점근 표기법의 종류: 빅오 표기법, 세타 표기법, 오메가 표기법
  • 빅오 표기법: 알고리즘의 실행시간이 최악일 때
  • 세타 표기법: 알고리즘의 실행시간이 평균일 때
  • 오메가 표기법: 실행시간이 최상일 때

빅오 표기법

  • O(1): 입력값(n)에 관계없이 일정하게 문제 해결에 단 하나의 단계만을 거친다(Push, Pop_
  • O(log2n): 문제 해결에 필요한 단계가 입력값 또는 조건에 의해 감소
  • O(n): 문제 해결에 필요한 단계가 입력값과 1:1의 관계
  • O(nlog2n): 문제 해결에 필요한 단계가 입력값 n번만큼 수행(합 정렬, 합병 정렬)
  • O(n^2): 문제 해결에 필요한 단계가 입력값의 제곱만큼 수행(삽입, 선택, 쉘, 버블, 퀵)

테스트 케이스
-특정 요구사항에 준수하는 지를 확인하기 위해 개발된 입력값, 실행 조건, 예상 결과의 집합이다

테스트 오라클

  • 테스트 오라클은 테스트의 결과가 참인지 거짓인지를 판단하기 위해 사전에 정의된 참값을 입력하여 비교하는 기법

NS chart

  • 논리의 기술에 중점을 둔 도형식 표현 방법
  • 전문성이 있어야 그리기 쉬움(그리기 어려움)
  • 연속, 선택 및 다중 선택, 반복 등의 제어논리 구조로 표현함
  • 임이의 제어 이동이 어려움, goto 구조가 어려움
  • 그래픽 설계 도구임
  • 상자 도표라고도 함
  • 프로그램으로 구현이 쉬움
  • 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는데 적합함

테일러링

  • 조직의 표준 프로세스를 커스터밍징하여 프로젝트의 비즈니스적으로 또는 기술적인 요구에 맞게 적합한 프로세스를 얻는 과정이다.

테일러링 개발 방법론 기준

  • 내부: 목표환경, 요구사항, 프로젝트 특성, 구성원 능력
  • 외부: 국제 표준 품질 기준, 법적 규제

SSH(Secure Shell)

  • SSH의 기본 네트워크 포트는 22번을 사용
  • 전송되는 데이터는 암호화된다.
  • 키를 통한 인증은 클라이언트의 공개키를 서버에 등록해야 한다.
  • 서로 연결되어 있는 컴퓨터 간 원격 명령 실행이나 셀 서비스 등을 수행한다.

RIP(Routing Information Protocol)

  • 거리 벡터 라우팅 프로토콜
  • 소규모 네트워크 환경에 적합
  • 최대 홉 카운트는 15로 한정
  • 최단경로탐색에는 Bellman-Ford 알고리즘 사용

OSPF(Open Shortest Path First)

  • 네트워크 변화에 신속하게 대처할 수 있다.
  • 멀티캐스팅을 지원
  • 최단경로탐색에 ‘링크 상태 알고리즘’을 사용
    코드 오류의 종류
  • 추가 오류(Addition erro): 입력 시 한 자리 추가로 기록한 경우 (1234 -> 12345)
  • 생략 오류(omission error): 입력 시 한 자리를 빼놓고 기록한 경우 (1234 -> 123)
  • 필사 오류(Transcription error): 입력 시 임의의 한 자리를 잘못 기록한 경우 (1234 -> 1235)
  • 전위 오류(Transposition error): 입력 시 좌우 자리를 바꾸어 기록한 경우 (1234 -> 1243)
  • 이중 오류(Double Transposition error): 전위 오류가 두 가지 이상 발생한 경우 (1234 -> 2143)
  • 임의 오류(Random error): 위의 오류가 두 가지 이상 결합하여 발생한 경우 (1234 -> 12367)

ISO 12207 표준의 생명주기

  • 기본 생명 주기: 획득, 공급, 개발, 운영, 유지보수
  • 지원 생명 주기: 품질보증, 검증, 확인, 활동 검토, 문제 해결
  • 조직 생명 주기: 관리, 기반 구조, 훈련, 개선

SPICE 모델 6단계

  • 0단계: 불안정 (구현 전 or 목적 달성 전)
  • 1단계: 수행 (목적이 전반적으로 이뤄짐)
  • 2단계: 관리 (작업 산출물 인도)
  • 3단계: 확립 (공학 원칙을 지킴)
  • 4단계: 예측 (산출물의 양적 측정이 가능해져, 일관된 수행 가능)
  • 5단계: 최적화 (지속적으로 업무 목적 만족)

CASE(Computer-Aided-Software-Engineering)

  • 요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하도록 개발한 도구
  • 소프트웨어 생명주기의 전체 단계 연결, 자동화 -> 통합된 도구
  • 그래픽 지원
  • SW 생명주기 전 단계 연결
  • 표준화된 개발환경 구축, 문서 자동화 기능 제공
  • 작업과정, 데이터 공유 -> 작업자간 커뮤니케이션 증대

CASE의 원천 기술

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

DFD(data flow diagram)

  • Process, Data Flow, Data store, terminator
  • 자료 흐름 그래프 또는 버블차트라고도 한다.
  • 구조적 분석 기법에 이용된다.
  • DFD의 요소는 화살표, 원, 사각형, 직선(단선/이중선)으로 표시한다.

물리데이터 저장소의 파티션 설계 유형

  • 범위분할(Range Partition): 파티션 키 값을 범위별로 분할
  • 해시분할(Hash Partition): 키 값을 해싱한 값을 기준으로 분할
  • 목록 분할(List Partition): 이산적인 목록을 특정 구분 칼럼을 기준으로 분할
  • 조합 분할(Composition Partition): 여러 파티션 방법의 구성

데이터베이스 설계 단계

  • 요구 조건 분석: 요구 조건 명세서 작성
  • 개념적 설계: 개념 스키마, 트랜잭션 모델링, E-R 모델
  • 논리적 설계: 목표 DBMS에 맞는 논리 스키마 설계, 트랜잭션 인터페이스 설계
  • 물리적 설계: 목표 DBMS에 맞는 물리적 구조의 데이터로 변환
  • 구현: 목표 DBMS의 DDL로 데이터베이스 생성, 트랜잭션 작성
    데이터베이스 설계 단계 중 저장 레코드 양식설계, 레코드 집중의 분석 및 설계, 접근 경로 설계와 관계되는 것은? -> 물리적 설계

OLAP(on-line analytical processing)의 연산

  • Roll-up(Drill-up): 분석할 항목에 대하여 한 차원의 계층 구조를 따라 단계적으로 작은 범위에서 큰 범위로 들어가서 구체적인 내용의 상세 데이터로부터 요약된 형태의 데이터로 접근 가능
  • Drill-down(Roll-down): 분석할 항목에 대하여 한 차원의 계층 구조를 따라 단계적으로 큰 범위에서 작은 범위로 들어가서 요약된 형태의 데이터로부터 구체적인 내용의 상세 데이터로 접근하는 기능. Roll-up과 반대
  • Pivoting: 보고서의 행과 열의 위치를 변경하여 페이지 차원을 바꾸어 보는 기능
  • Slicing: 3차원 큐브를 특정 관점으로 잘라서 보는 개념으로, 다차원 데이터 항목들을 다양한 각도에서 조회하고 자유롭게 비교하는 기능
  • Dicing: 슬라이싱 기법과 동일하지만 슬라이싱 기법에서 더 쪼개어 비교하는 기법으로, 슬라이싱된 2차원 정보들을 조합하여 작은 큐브형의 분석 정보로 보는 방법

데이터 모델에 표시할 요소

  • 구조(Structure): 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현
  • 연산(Operation): DB에 저장된 실제 데이터를 처리하는 작업에 대한 명세, 데이터베이스를 조작하는 기본 도구
  • 제약조건(Constraint): 실제 데이터의 논리적 제약 조건

병행제어 기법 종류

  • 로킹 기법, 타임 스탬프 기법, 다중 버전 기법
  • 목적: 데이터베이스 공유 최대화, 시스템 활용도 최대화, 일관성 유지, 응답시간 최소화

로킹(Locking)

  • 데이터베이스 벙행 제어를 위해 트랜잭션이 접근하고자 하는 데이터를 잠가 다른 트랜잭션이 접근하지 못하도록 하는 병행 제어 기법이다.
  • 트랜잭션이 어떤 데이터에 접근하고자 할 때 로킹을 수행
  • 로킹이 되어 있는 데이터에는 다른 트랜잭션이 접근할 수 없음
  • 트랜잭션은 로킹이 된 데이터데 대해서만 연산을 수행
  • 필드, 레코드, 테이블, 파일, 데이터베이스 모두 로킹 단위가 될 수 있다.
  • 한 번에 로킹 할 수 있는 객체의 크기를 로킹 단위라고 한다.
  • 로킹 단위가 커지면 로킹 오버헤드는 감소하고 병행성 수준은 낮아지고 데이터베이스 공유도는 감소한다
  • 로킹 단위가 작아지면 오버헤드는 증가하고 병행성 수준은 높아지고 데이터 베이스 공유도는 증가한다.

TCP/IP

  • 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜
  • OSI 7계층의 전송계층
  • 신뢰성 있는 연결 지향형 전달 서비스
  • 패킷의 다중화, 순서 제어, 오류제어, 흐름 제어
  • 스트림 전송 가능
  • 헤더의 길이는 최소 20Byte에서 최대 60Byte

개인키 암호화 기법(양방향)

  • 개인키 암호화 기법은 동일한 키로 데이터를 암호화하고 복호화 함
  • 대칭 암호 기법 또는 단일키 암호화 기법이라고도 함
  • 한 번에 하나의 데이터 블록을 암호화하는 블록 암호화 방식, 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화하는 스트림 암호화 방식 구분
  • 블록 암호화 방식: DES, SEED, AES, ARIA
  • 스트림 암호화 방식: LFSR, RC4
  • 장점: 암호화/복호화 속도가 빠르며, 알고리즘 단순, 공개키 암호 기법보다 파일의 크기가 작음
  • 단점: 사용자의 증가에 따라 관리해야 할 키의 수가 상대적으로 많아짐

공개키 암호화 기법(양방향)

  • 공개키 암호화 기법은 데이터를 암호화할 때 사용하는 공개키는 데이터베이스 사용자에게 공개하고, 복호화할 때의 비밀키는 관리자가 비밀리에 관리
  • 대표적인 기법 RSA
  • 장점: 키의 분배가 용이하고, 관리해야 할 키의 개수가 적음
  • 단점: 암호화/복호화 속도가 느리며, 알고리즘이 복잡하고, 개인키 암호화 기법보다 파일의 크기가 큼

해시(단방향)

  • 해시는 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
  • 해시 알고리즘은 해시 함수라 부르며, 해시 함수로 변환된 값이나 키를 해시값 또는 해시키라 부름
  • 해시 함수의 종류는 SHA 시리즈, MD5, N-NASH 등이 있음

소프트웨어 아키택처 설계에서 시스템 품질 속성의 종류

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

순수 관계 연산자

  • SELECT: δ(시그마), PROJECT: π (파이), JOIN: ⋈ (보타이), DIVISION: ÷ (나누기)

t서버에 열린 포트 정보를 스캐닝해서 보안 취약점을 찾는데 사용하는 도구 - nmap

백도어 탐지 방법

  • 동작중인 프로세스 및 열린 포트 확인
  • setUID 파일검사
  • 무결성 검사
  • 로그 분석

IPSec(IP Security)

  • 보안에 취약한 인터넷에서 안전한 통신을 실현하는 통신 규약
  • OSI 모델 3게층 네트워크 계층의 보안 프로토콜이며, VPN에서 많이 사용된다.
  • 터널모드: VPN과 같은 구성으로 패킷의 출발지에서 일반 패킷이 보내지면 중간에 IPSec을 탑재한 중계 장비가 패킷 전체를 암호화하고 중계장비의 IP 주소를 붙여 전송한다, 원본 IP 패킷 전체를 암호화하므로 트래픽 경로도 노출되지 않는다.
  • 전송모드: 패킷의 출발지에서 암호화를 하고 목적지에서 복호화가 이루어지므로 End-to-End 보안을 제공한다, IP 페이로드만 암호화하여, 트래픽 경로는 노출된다.

IPSec 구성요소

  • AH: 메시지 인증 코드(MAC)를 이용하여 무결성과 인증 기능을 제공하지만 암호화는 제공하지 않는다.
  • ESP: 새로운 IP 패킷을 만들어 기존 패킷은 Payload에 넣어 감싸는 방식으로 암호화를 제공하는 방식이며, 암호화를 통해 기밀성을 유지하기 위해 사용된다.
  • IKE: IPSec에서 키 교환을 위해 사용되는 프로토콜로, UDP 500포트를 사용합니다.
  • ISAKMP: Security Association 설정, 협상, 변경, 삭제 등 SA 관리와 키 교환을 정의한다.
728x90
반응형