2021년 3회 정보처리기사 실기 개념 정리

SummerToday·2024년 4월 1일
1

정보처리기사

목록 보기
6/16
post-thumbnail

2. ARP 스푸핑

  • ARP의 취약점을 이용한 공격 기법이다.

  • 자신의 물리적 주소(MAC)를 공격 대상의 것으로 변조하여 데이터 패킷을 가로채거나 방해하는 기법이다.


3. AAA (3A)

AAA는 다음 3가지 기능을 기반으로 사용자의 컴퓨터 자원 접근 처리와 서비스 제공에 있어서의 다음 3가지 기능을 제공하는 서버이다.

  • 인증 (Authentication)
    접근하는 사용자의 신원을 검증하는 기능

  • 인가 (Authorization)
    신원이 검증된 사용자에게 특정된 권한과 서비스를 허용하는 기능

  • 과금 (Accounting)
    사용자가 어떤 종류의 서비스를 이용했고, 얼마만큼의 자원을 사용했는지 기록 및 보관하는 기능


5. 디자인 패턴

  • 생성 패턴

    • 추상 팩토리(Abstract Factory)
      구체적인 클래스에 의존하지 않고, 인터페이스를 통해 서로 연관·의존하는 객체들의 그룹으로 생성하여 추상적으로 표현하는 패턴이다.

    • 빌더 패턴 (Builder)
      작게 분리된 인스턴스를 건축 하듯이 조합하여 객체를 생성하는 패턴이다.

    • 팩토리 메소드 (Factory Method)
      객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴이다. 가상 생성자 패턴이라고도 한다.

    • 프로토타입 (Prototype)
      원본 객체를 복제하는 방법으로 객체를 생성하는 패턴이다.

    • 싱글톤 (Singleton)
      하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조할 수는 없는 패턴이다.


  • 구조 패턴

    • 브리지 (Bridge)
      구현부에서 추상층을 분리하여 서로가 독립적으로 확장할 수 있도록 구성하는 패턴이다.

    • 컴포지트 (Composite)
      객체들을 트리 구조로 구성하여 디렉토리 안에 디렉토리가 있듯이 복합 객체 안에 복합 객체가 포함되는 구조를 구현할 수 있는 패턴이다.

    • 데코레이터 (Decorator)
      객체간의 결합을 통해 능동적으로 기능들을 확장할 수 있는 패턴이다. 임의의 객체에 부가적인 기능을 추가하기 위해 다른 객체들을 덧붙이는 방식으로 구현한다.

    • 프록시 (Proxy)
      복잡한 시스템을 개발하기 쉽도록 클래스나 객체들을 조합하는 패턴으로, 대리자라고도 불린다.
      내부에서는 객체 간의 복잡한 관계를 단순하게 정리해주고, 외부에서는 객체의 세부적인 내용을 숨겨주는 역할을 수행한다.


  • 행위 패턴

    • 중재자 (Mediater)
      수많은 객체들 간의 복잡한 상호작용(Interface)을 캡슐화하여 객체로 정의하는 패턴이다.

    • 옵서버 (Observer)
      한 객체의 상태가 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달하는 패턴이다.

    • 방문자 (Visitor)
      각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성하는 패턴이다.


6. 결합도

  • 자료 결합도 (Data Coupling) - 결합도↓
    모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도이다.

  • 스탬프 결합도 (Stamp Coupling)
    모듈간의 인터페이스가 자료 구조로 전달될 때의 결합도이다.

  • 제어 결합도 (Control Coupling)
    단순 처리 대상인 데이터만 전달되는 것이 아니라 어떻게 처리해야하는지를 결정하는 제어요소가 전달되는 경우의 결합도이다.

  • 외부 결합도 (External Coupling)
    어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도이다.

  • 공유 결합도 (Common Coupling)
    공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도이다. 파라미터가 아닌 모듈 밖에서 선언된 전역 변수를 사용하여 전역 변수를 갱신하는 방식으로 상호작용하는 때의 결합도이다.

  • 내용 결합도 (Content Coupling) - 결합도↑
    한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도이다.


8. 상향식/하향식 통합 테스트

  • 상향식 통합 테스트 (상향식 테스트 x)
    프로그램의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트 하는 기법이다.

    • 상향식 통합 테스트 절차

      • 하위 모듈들을 클러스터로 결합한다.

      • 상위 모듈에서 데이터의 입·출력을 확인하기 위해 더미 모듈인 드라이버(Driver)를 작성한다.

      • 통합된 클러스터 단위로 테스트한다.

      • 테스트가 완료되면 클러터는 프로그램의 상위로 이동하여 결합하고 드라이버는 실제 모듈로 대체된다.


  • 하향식 통합 테스트 (하향식 테스트 x)
    프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법이다.

    • 하향식 통합 테스트 절차

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

      • 깊이 우선 또는 넓이 우선 등의 통합 방식에 따라 하위 모듈인 스텁들이 한 번에 하나씩 실제 모듈로 교체된다.

      • 모듈이 통합될 때마다 테스트를 실시한다.

      • 새로운 오류가 발생하지 않음을 보증하기 위해 회귀 테스트를 실시한다.


9. 언어별 boolean

출처 : https://codedragon.tistory.com/4441


11. 인덱스

  • 인덱스(Index, 색인)는 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조이다.

  • 인덱스는 레코드가 저장된 물리적 구조에 접근하는 방법을 제공하고, 파일의 레코드에 빠르게 액세스 할 수 있다.


12. 테스트 케이스

출처 : https://hellocbt.com/index.php?mid=exam33&exam_srl=93553

테스트 조건, 테스트 데이터, 예상 결과


13. UML(Unified Model Language) 다이어그램

구조 다이어그램과 행위 다이어그램으로 분류된다.



  • 패키지 다이어그램 (Package Diagram)
    유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현한다.

    출처 : https://beluga9.tistory.com/55


14. OSI 7 Layer

OSI 7 계층은 다른 시스템 간의 원할한 통신을 위해 ISO(국제 표준화기구)에서 제안한 통신 규약(protocol)이다.

  • 물리 계층 (Physical Layer)
    전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의한다.

  • 데이터 링크 계층 (Data Link Layer)
    물리적으로 연결된 두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 연결 설정, 데이터 전송, 오류 제어 등의 기능을 수행한다.

  • 네트워크 계층 (Network Layer)
    개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능을 한다.

  • 전송 계층 (Transport Layer)
    논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템(ENd-to-End)간에 투명한 데이터 전송을 가능하게 한다.

  • 세션 계층 (Session Layer)
    송·수신 측 간의 관련성을 유지하고 대화 제어를 담당한다.

  • 표현 계층 (Presentation Layer)
    서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요한 계층으로, 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색 등의 기능을 수행한다.

  • 응용 계층 (Application Layer)
    사용자(응용 프로그램)가 OSI 환경에 접근할 수 있도록 서비스를 제공한다.


15. 개인키 암호화 기법

동일한 키로 데이터를 암호화하고 복호화 하는 암호화 기법이다.

cf. 출처 : https://velog.io/@kwonja/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EC%95%94%ED%98%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

  • 스트림 암호화 방식
    평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화 하는 방식이다.
    ex. LFSR, RC4, TKIP

    • TKIP (Temporal Key Integrity Protocol)

      • 기존의 무선 랜 보안 프로토콜인 WEP의 취약성을 보완한 데이터 보안 프로토콜로, 임시 키 무결성 프로토콜이라고도 한다.

      • 암호 알고리즘의 입력 키 길이를 128비트로 늘리고 패킷당 키 할당, 키값 재설정 등의 키 관리 방식을 개선했다.


  • 블록 암호화 방식
    한 번에 하나의 데이터 블록을 암호화 하는 방식이다.
    ex. DES, SEED, AES, ARIA, IDEA, Skipjack

    • DES (Data Encryption Standard)

      • NBS에서 발표한 개인키 암호화 알고리즘이며, 후에는 해독이 쉬워지면서 AES로 대체되었다.

      • 블록 크기: 64비트, 키 길이: 56비트


    • SEED

      • KISA(한국인터넷진흥원)에서 개발한 블록 암호화 알고리즘이다.

      • 블록 크기: 128비트, 키 길이: 128 or 256


    • AES (Advanced Eccryption Standard)

      • DES의 한계를 느낀 미국 표준 기술 연구소(NIST)에서 발표한 개인키 암호화 알고리즘이다.

      • 블록 크기: 128비트, 키 길이: 128 or 192 or 256


    • IDEA(International Data Encryption Algorithm)

      • 스위스의 라이와 메시가 1990년에 개발한 PES를 개선한 알고리즘이다.

      • 블록 크기: 64비트, 키 길이: 128비트


    • Skipjack

      • NSA(국가 안전 보장국)에서 개발한 암호화 알고리즘이다.

      • 클리퍼 칩이라는 IC 칩에 내장되어 있다.

      • 블록 크기: 64비트, 키 길이: 80비트


  • 공개키 암호화 방식

    • RSA

      • 큰 숫자를 소인수 분해 하기 어렵다는 것에 기반하여 만들어진 암호화 알고리즘이다.

17. XOR 연산

XOR 연산은 두 값이 서로 다르면 참을 반환한다.

출처 : https://devtry.tistory.com/entry/%EB%B9%84%ED%8A%B8-%EC%97%B0%EC%82%B0%EC%9E%90AND-OR-XOR-NOT


18. 테스트 기법

  • 블랙 박스 테스트 기법

    • 동치 분할 검사 (Equivalence Partitioning Testing)
      프로그램의 입력 조건에 타당한 입력 자료와 타당하지 않은 입력 자료의 개수를 균등하게 하여 테스트 케이스를 정하고, 해당 입력 자료에 맞는 결과가 출력되는지 확인하는 기법이다.


    • 경계값 분석 (Boundary Value Analysis)
      입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여 입력 조건의 경계값을 테스트 케이스로 선정하여 검사하는 기법이다.


    • 원인-효과 그래프 검사 (Cause-Effect Graphing Testing)
      입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법이다.


    • 오류 예측 검사 (Error Guessing)
      과거의 경험이나 확인자의 감각으로 테스트 하는 기법이다.


    • 비교 검사 (Comparison Testing)
      여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법이다.


  • 화이트 박스 테스트 기법

    • 기초 경로 검사 (Base Path Testing)
      테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 테스트 기법이다.

    • 제어 구조 검사 (Control Structure Testing)

      • 조건 검사 (Condition Testing)
        프로그램 모듈 내에 있는 논리적 조건을 테스트하는 테스트 케이스 설계 기법이다.

      • 루프 검사 (Loop Testing)
        프로그램의 반복(Loop)구조에 초점을 맞춰 실시하는 테스트 케이스 설계 기법이다.

      • 데이터 흐름 검사 (Data Flow Testing)
        프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 케이스 기법이다.


    • 화이트 박스 테스트 검증 기준

      • 문장 검증 기준 (Statement Coverage)
        소스 코드의 모든 구문이 한 번 이상 수행되도록 테스트 케이스를 설계한다.

      • 분기 검증 기준 (Branch Coverage)
        소스 코드의 모든 조건문에 대해 조건식의 결과가 TRUE인 경우와 FALSE인 경우가 한 번 이상 수행되도록 테스트 케이스를 설계한다.

      • 조건 검증 기준 (Condition Coverage)
        소스 코드의 조건문에 포함된 개별 조건식의 결과가 TRUE인 경우와 FALSE인 경우가 한 번 이상 수행되도록 테스트 케이스를 설계한다.

20. UML 관계

cf. 출처 : https://itproda.tistory.com/101

  • 집합 관계 (Aggregation)
    하나의 사물이 다른 사물에 포함되어 있는 관계로, 전체와 부분으로 구분되어지며 서로 독립적인 관계이다.

  • 일반화 관계 (Generalization)
    상위 모듈이 하위 모듈보다 더 일반적인 개념을 가지고 있으며, 하위 모듈이 상위 모듈보다 더 구체적인 개념을 가지는 관계이다.

  • 연관 관계 (Association)
    사물들이 서로 연관되었음을 나타내는 개념이다. 보통 한 사물이 다른 사물에게 제공 받은 기능을 지속적으로 사용하는 경우에 나타난다.

  • 의존 관계 (Dependency)
    연관 관계와 같이 사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계이다.

  • 실체화 관계 (realization)
    책임들의 집합인 인터페이스와 이 책임들을 실제로 실현한 사물(클래스)들 간의 관계이다.




해당 글은 다음 도서의 내용을 참고한 글임을 밝힙니다.
길벗알앤디, ⌜2024 시나공 정보처리기사 실기 기출문제집⌟, 길벗, 2024, 368쪽
profile
블로그 이관했습니다.

0개의 댓글