정보처리기사(2021년 1회~3회 기출정리+오답노트)

조영문·2023년 4월 16일
0

정보처리기사

목록 보기
6/9

1회

네트워크 계층(3계층) 프로토콜

  • IP(Internet Protocol) : 송수신 간의 패킷 단위로 데이터를 교환하는 네트워크에서 정보를 주고 받는 데 사용하는 통신 프로토콜
  • ARP(Address Resolution) : IP 네트워크상에서 IP주소를 MAC주소(물리주소) 변환하는 프로토콜
  • RARP(Reverse ARP)
  • ICMP(Internet Control Message Protocol) : IP패킷을 처리할 때 발생하는 문제를 알려주는 프로토콜
  • IGMP(Internet Group Management Protocol) : 인터넷 그룹 관리 프로토콜은 호스트 컴퓨터와 인접 라우터가 멀캐스트 그룹 멤버쉽을 구성하는데 사용하는 통신 프로토콜
  • 라우팅 프로토콜 : 데이터가 목적지까지 갈 수 있는 최적의 경로를 설정해주는 라우터 간의 상호 통신 프로토콜

DB 설계 절차

  1. 요구사항 분석 : 사용자에게서 데이터베이스를 사용하는 용도를 파악함 / 다양한 요구사항을 수집하는 단계로 요구사항 명세서를 작성함
  2. 개념적 설계 : 요구사항 명세서를 기반으로 개념적 데이터 모델을 표현하며 E-R 다이어그램으로 표현한다.
  3. 논리적 설계 : 목표 DBMS에 맞는 스키마 설계, 트랜잭션 인터페이스를 설계하는 정규화 과정을 수행함
  4. 물리적 설계 : 특정 DBMS의 특성 및 성능을 고려하여 데이터베이스 저장 구조로 변환하는 과정으로 결과로 나오는 명세서는 테이블 정의서가 있다.
  5. 구현 : SQL문을 실행하여 데이터베이스르 실제로 생성함

요구사항 분석

  1. 기능적 요구사항 : 시스템이 제공하는 기능, 서비스에 대한 요구사항
  2. 비기능적 요구사항 : 시스템이 수행하는 기능 이외에 사항, 시스템 구축에 대한 제약사항에 관한 요구사항

WSDL

  • Web Service Description Language
  • 웹 서비스명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세 정보가 기술된 XML 형식으로 구현된 언어

IPC(Inter-Process Communication)

  • 메시지 큐, 공유메모리, 소켓, 세마포어

데이터 모델 구성요소

  • 연산(Operation) : 데이터베이스에 저장된 실제 데이터를 처리하는 작섭에 대한 명세
    - 릴레이션을 조작하기 위한 관계 연산을 나타내며 관계연산에는 select, project, join 등이 있음
  • 구조(Structure) : 논리적으로 표현된 개제 타입 간의 관계
    - 데이터 구조 및 정적 성질을 표현
    - 릴레이션에 해당하는 것으로 데이터를 원잣값으로 갖는 이차원 테이블로 표현
  • 제약조건(Constraint) : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약조건

서버 접근통제 유형

  • 임의적 접근통제(DAC) : 시스템에 대한 접근을 사용자/그룹 신분 기반으로 제한하는 방법
  • 강제적 접근통제(MAC) : 시스템 정보의 허용등급을 기준으로 사용자가 갖는 접근 허가 권한에 근거하여 시스템에 대한 접근을 제한하는 방법
  • 역할 기반 접근통제(RBAC) : 중앙 관리자가 사용자와 시스템의 상호관계를 통제하며 조직 내 맡은 역할을 기초하여 자원에 대한 접근을 제한하는 방법

세션 하이재킹

  • 케빈 미트닉이 사용했던 공격 방법의 하나로 TCP의 세션 관리 취약점을 이용한 공격 기법

애드 훅 네트워크(Ad-Hoc Network)

  • 노드들에 의해 자율적으로 구성되는 기반 구조가 없는 네트워크이다.

UI/UX

  • UI(User Interface) : 넓은 의미에서 사용자와 시스템 사이에서 의사소통할 수 있도록 고안된 물리적, 가상의 매개체
  • UX(User eXperience) : 제품과 시스템, 서비스 등을 사용자가 직/간접적으로 경험하면서 느끼고 생각하는 총체적 경험을 의미

트랜잭션의 4가지 특성

  • 원자성 : 트랜잭션을 구성하는 연산 전체가 모두 정상적으로 실행되거나 모두 취소되어야 하는 특성(All or Nothing)
  • 일관성 : 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 하는 성질
  • 격리성 : 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 한다는 성질
  • 영속성 : 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장되어야 하는 성질

데이터베이스 정규화 과정

  • 1정규형 : 원자값으로 구성
  • 2정규형 : 부분 함수 종속 제거(완전 함수적 종속 관계)
  • 3정규형 : 이행 함수 종속 제거
  • 보이스코드정규형 : 결정자가 후보키가 아닌 함수 종속 제거
  • 4정규형 : 다치 종속 제거
  • 5정규형 : 조인 종속 제거

럼바우 데이터 모델링

  • 객체 모델링(Object Modeling) : 정보 모델링, 시스템에서 요구하는 객체를 찾고 객체 간의 관계를 정의하여 ER다이어그램을 만드는 과정의 모델링
  • 동적 모델링(Dynamic Modeling) : 시간의 흐름에 따라 객체들 사이의 제어프름, 동작 순서 등의 동적인 행위를 표현하는 모델링
  • 기능 모델링(Function Modeling) : 프로세스들의 자료 흐름을 중심으로 처리 과정을 표현하는 모델잉

화이트 박스 테스트 검증기준(=커버리지)

  • 구문(문장) 커버리지 : 프로그램 내의 모든 명령문을 적어도 한 번 수행하는 커버리지
  • 결정(분기) 커버리지 : 결정 포인트 내의 전체 조건식이 적어도 한번은 참과 거짓의 결과를 수행하는 테스트커버리지
  • 조건 커버리지 : 걸정 포인트 내의 각 개별 조건식이 적어도 한 번은 참과 거짓의 결과가 되도록 수행하는 커버리지
  • 조건/결정 커버리지 : 전체 조건식뿐만 아니라 개별 조건식도 참 한번, 거짓 한 번 결과가 되도록 수행
  • 변경 조건/결정 커버리지 : 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상시킨 커버리지
  • 다중 조건 커버리지 : 결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100% 보장하는 커버리지

잠금(로킹=Locking)

  • 같은 자원을 액세스하는 다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적 진행을 보장하는 직렬화 기법

디자인 패턴

  • 각 모듈의 세분화된 역할 / 모듈들 간 인터페이스와 같은 코드를 작성하는 수준의 세부적인 구형 방안을 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제

1. 생성패턴(Creational Pattern)

  • 객체의 생성과 관련된 패턴
  • 객체의 생성, 참조 과정을 캡슐화 > 객체가 생성, 변경되어도 프로그램 구조에 영향을 받지 않도록 유연성을 더해줌

    1. 추상팩토리(Abstract Factory)

  • 인터페이스를 통해 서로 연관, 의존하는 객체들의 그룹으로 생성하여 추상적으로 표현
  • 연관된 서브 클래스를 묶어 한 번에 교체하는 것이 가능

    2. 빌더(Builder)

  • 작게 분리된 인스턴스를 건축하듯이 조합하여 객체를 생성
  • 객체의 생성 과정과 표현 방법을 분리

    3. 팩토리 메소드(Factory Method)

  • 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화된 패턴

    4. 프로토타입(Prototype)

  • 원본 객체를 복제하는 방법으로 객체 생성하는 패턴

    5. 싱글톤(Singleton)

  • 하나의 객체를 생성하면 생성된 객체를 어디서든 참조가능, 여러 프로세스가 동시에 참조할 수 없음.

2. 구조패턴(Structural Pattern)

  • 클래스나 객체를 조합해, 더 큰 구조로 만들 수 있게 해주는 패턴
  • 구조가 복잡한 시스템을 개발하기 쉽게 도와줌

    1. 어뎁터(Adapter)

  • 호환성 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴 / 인터페이스 일치하지 않을 때 사용

    2. 브릿지(Bridge)

  • 구현부에서 추상층을 분리 -> 서로 독립적으로 확장할 수 있도록 구성한 패턴
  • 기능과 구현을 두 개의 별도 클래스로 구현

    3. 컴포지트(Composite)

  • 복합 객체와 단일 객체를 구분 없이 다루고자 할 때 사용
  • 복합 객체 안에 복합 객체가 포함되는 구조를 구현 가능

    4. 데코레이터(Decorator)

  • 객체 간 결합을 통해 능동적으로 기능을 확장할 수 있는 패턴

    5. 퍼싸드(Facade)

  • 더 상위에 인터페이스를 구성함으로써 서브 클래스들의 기능을 간편하게 사용할 수 있도록 하는 패턴

    6. 플라이웨이트(Flyweight)

  • 가능한 한 공유해서 사용함으로써 메모리를 절약하는 패턴

    7. 프록시(Proxy)

  • 접근 어려운 객체와 여기에 연결하려는 객체 사이에 인터페이스 역할을 수행하는 패턴

3.행위패턴(Behavioral Pattern)

  • 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴

  • 하나의 객체로 수행할 수 없는 작업을 여러 객체를 분해하면서 결합도를 최소화할 수 있도록 도와줌

    1. 책임연쇄(Chain of Responsinility)

  • 한 객체가 처리하지 못하면 다음 객체로 넘어가는 형태의 패턴

    2. 커멘드(Command)

  • 요청을 객체 형태로 캡슐화 -> 재이용하거나 취소할 수 있도록 요청에 필요 정보를 저장하거나 로그를 남기는 패턴

    3. 인터프리터(Interpreter)

  • 언어에 문법 표현을 정의하는 패턴

    4. 반복자(Iterarot)

  • 접근 잦은 객체에 대해 동인 인터페이스를 사용하도록 하는 패턴

    5. 중재자(Mediator)

  • 수많은 객체들 간 복잡한 상호작용을 캡슐화 -> 객체를 정의하는 패턴

    6. 메멘토(Memento)

  • 특정 시점에서의 객체 내부 상태를 객체화홤

    7. 옵서버(Observer)

  • 한 객체의 상태가 변화하면 객체에 상속된 다른 객체들에게 변화된 상태를 전달하는 패턴

    8. 상태(State)

  • 상태에 따라 동일 동작을 다르게 처리해야 할 때

    9. 전력(Strategy)

  • 동일 계열 알고리즘들을 개별적으로 캡슐화하여 상호 교환할 수 있게 정의하는 패턴

    10. 템플릿 메소드(Template Method)

  • 상위 클래스 골격 정의 하위 클래스 세부 처리를 구체화하는 구조의 패턴

    11. 방문자(Visitor)

  • 데이터 구조에서 처리 기능을 분리하여 별도의 클래스를 구성하는 패턴

    패킷 교환 방식

  • 가상 회선 방식 : 패킷이 전송되기 전에 송수신 스테이션 간의 논리적인 통신 경로를 미리 설정하는 방식 / 연결형 교환 방식

  • 데이터그램 : 연결 경로를 확립하지 않고 각각의 패킷을 순서에 무관하게 독립적으로 전송하는 형식 / 비연결성 교환 방식

    3A

  • 유무선 이동 및 인터넷 환경에서 가입자에 대한 안정하고 신뢰성 있는 인증, 권한 검증, 계정관리 기능을 체계적으로 제공하는 정보보호 기술

    인증(Authentication) : 접근을 시도하는 가입자 또는 단말에 대한 식별 및 신분을 건즘
    권한 부여(Authorization) : 검증된 가입자나 단말에게 어떤 수준의 권한과 서비스를 허용
    계정관리(Accounting) : 리소스 사용에 대한 정보를 수집하고 관리하는 서비스

    집합 / 일반화 관계

  • 집합관계(Aggregation) : 하나의 사물이 다른 사물에 포함되는 관계 표현 / 하나의 객체에 여러 개의 독립적인 객체들이 구성되는 관계

  • 일반화관계(Generalization) : 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현

    개별 테스트 케이스 필요 항목

  • 테스트 ID 작성 : 테스트 케이스를 고유하게 식별하기 위한 ID 작성

  • 테스트 목적 작성 : 테스크 시 고려해야 할 중점 사항이나 테스트 케이스의 목적을 작성

  • 테스트할 기능 요약 : 애플리케이션의 테스트할 기능을 간략하게 작성

  • 입력 데이터 작성 : 테스트 실행 시 입력할 데이터(입력 값, 선택 버튼, 체크리스트 등)을 작성

  • 기대 결과 작성 : 테스크 실행 후 기대되는 결과 데이터

  • 테스트 환결 설정

  • 등 등

데이터베이스 파일 구조

  1. 순차 방법 : 레코드들의 물리적 순서가 레코드들의 논리적 순서와 같게 순차적으로 저장하는 방법
  2. 인덱스 방법 : 인덱스가 기리키는 주소를 따라 원하는 레코드에 접근할 수 있도록 하는 방법
  3. 해싱 방법 : 킷값을 해시함수에 대입시켜 계산한 결과를 주소로 사용하여 레코드에 접근하게 할 수 있는 방법

0개의 댓글