[정보처리기사] 2023년 필기 기출 정리

sookyoung.k·2025년 2월 27일
0
post-thumbnail

2023년 1회 문제 풀이

1과목: 소프트웨어 설계

자료 흐름도 (DFD)

→ 자료 저장소의 입력 화살표는 데이터의 입력 및 수정을 의미하는 것

입력 화살표가 있다고 하여 반드시 출력 화살표가 있어야 하는 것은 아니다

설계 기법

  • 상향식 설계
    • 하위 모듈에서 상위 모듈 방향으로 설계하는 것
    • 인터페이스가 이미 성립되어 있어야만 기능 추가가 가능
    • 최하위 수준에서 각각의 모듈을 설계하고 이러한 모듈이 완성되면 이들을 결합하여 검사
  • 하향식 설계
    • 통합 검사 시 인터페이스가 이미 정의되어 있어 통합이 간단함
    • 레벨이 낮은 데이터 구조의 세부 사항은 설계 초기 단계에서 필요함

UML 모델링의 관계

  • Realization 실체화 - 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정하는 의미적 관계
  • Dependency 의존 - 연관 관계와 같이 사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계
  • Generalization 일반화 - 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현하는 관계
  • Association 연관 - 2개 이상의 사물이 서로 관련되어 있음

데이터 흐름도(DFD) 구성 요소

→ Process, Data Flow, Data Store, Terminator

UML의 기본 구성 요소

→ Things 사물, Relationship 관계, Diagram 다이어그램

응집도

→ 명령어나 호출문 등 모듈의 내부 요소들의 서로 관련되어 있는 정도, 즉 모듈이 독립적인 기능으로 정의되어 있는 정도

순차 코드

→ 자료의 발생 순서, 크기 순서 등 일정 기준에 따라서 최초의 자료부터 차례로 일련번호를 부여하는 방법

FEP

→ 입력되는 데이터를 컴퓨터의 프로세서가 처리하기 전에 미리 처리하여 프로세서가 처리하는 시간을 줄여주는 프로그램이나 하드웨어

파이프-필터 패턴

→ 데이터 통로인 파이프를 이용하여 컴포넌트인 필터 간에 데이터를 전송하는 구조, 단방향 및 양방향 모두 구현할 수 있으며, 필터 간 이동 시 오버헤드가 발생함

* 소프트웨어 아키텍처

  • 외부에서 인식할 수 있는 특성이 담긴 소프트웨어의 골격이 되는 기본 구조
  • 데이터 중심 아키텍처는 공유 데이터 저장소를 통해 접근자 간의 통신이 이루어지므로 각 접근자의 수정과 확장이 용이함
  • 이해 관계자들의 품질 요구사항을 반영하여 품질 속성을 결정함

2과목: 소프트웨어 개발

소프트웨어 품질 측정

→ 개발자 관점에서 고려해야 할 항목: 정확성, 사용성, 무결성 등

* 간결성은 아님! ㅋㅋㅋ

스택

순서가 A, B, C, D로 정해진 입력 자료를 스택에 입력했다가 출력할 때 가능하지 않은 출력 순서의 결과 → D A B C

트리의 차수 / 단말 노드

  • 트리의 차수: 가장 차수가 많은 노드의 차수
  • 단말 노드: 자식이 하나도 없는 노드를 의미

화이트박스 테스트

  • 논리 흐름도를 이용
  • 동적 테스트에 해당 (테스트 데이터를 이용해 실제 프로그램을 실행함으로써 오류를 찾음)
  • 테스트 데이터를 선택하기 위하여 검증 기준을 정함

* 블랙박스 테스트 → 프로그램의 구조를 고려하지 않기 때문에 테스트 케이스는 프로그램 또는 모듈의 요구나 명세를 기초로 결정

테스트 오라클 - 참 오라클

→ 모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하는 오라클

Preorder

Root → Left → Right

3과목: 데이터베이스 구축

로킹

→ 로킹 단위가 작아지면 병행성 수준이 높아짐 + 데이터베이스 공유도가 증가

  • 데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있음
  • 로킹 단위가 작아지면 로킹 오버헤드가 증가
  • 한꺼번에 로킹할 수 있는 단위를 로킹 단위라고 함

관계 대수

  • π이름: ‘이름’ 필드 표시
  • σ 학과 = ‘교육’: ‘학과’가 “교육”인 자료만을 대상으로 함
  • (학생): <학생> 테이블의 자료 검색

⇒ 교육과 학생의 ‘이름’을 검색

릴레이션

  • 모든 튜플은 서로 다른 값을 갖음
  • 각 속성은 릴레이션 내에서 유일한 이름을 ㅇ가짐
  • 하나의 릴레이션에서 튜플의 순서는 존재
  • 모든 속성 값은 원자 값

4과목: 프로그래밍 언어 활용

네트워크 토폴로지

  • 버스형 → 한 개의 통신 회선에 여러 대의 단말장치가 연결되어 있는 형태
  • 망형(Mesh) → 모든 지점의 컴퓨터와 단말장치를 서로 연결한 형태로, 노드의 연결성이 높음
  • 링형(Ring, 루프형) → 컴퓨터와 단말장치들을 서로 이웃하는 것끼리 포인트 투 포인트 방식으로 연결시킨 형태

C언어

산술 연산자 종류 → +, -, *, /, %

* << → 시프트 연산자

IPv6

→ 패킷 크기는 제한 X

  • 128비트의 주소 공간 제공
  • 인증 및 보안 기능을 포함
  • IPv6 확장 헤더를 통해 네트워크 기능 확장이 용이

* IPv4 → 패킷 크기가 64byte로 고정되어 있는 것

JAVA 자료형

정수 자료형 → short, byte

실수 자료형 → float

스래싱

→ 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상

은행가 알고리즘

→ 교착상태 해결 방법 중 회피 기법에 해당함

OSI 7계층 - 전송 계층

→ TCP/IP 프로토콜의 TCP

5과목: 정보시스템 구축 관리

MQTT

→ TCP/IP 기반 네트워크에서 동작하는 발생-구독 기반의 메시징 프로토콜, IoT 환경에서 최근 자주 사용되고 있음

COCOMO model

→ Organic Mode: (조직형) 기관 내부에서 개발된 중소 규모의 소프트웨어, 일괄 자료 처리나 과학기술 계산용, 비즈니스 자료 처리용으로 5만 라인 이하의 소프트웨어를 개발하는 유형

→ Embedded Mode: (내장형) 최대형 규모의 트랜잭션 처리 시스템이나 운영체제 등의 30만 라인 이상의 소프트웨어를 개발하는 유형

→ Semi-Detached Mode: (반분리형) 조직형과 내장형의 중간형, 트랜잭션 처리 시스템이나 운영체제, 데이터베이스 관리 시스템 등의 30만 라인 이하의 소프트웨어를 개발하는 유형

SAN(Storage Area Network)

→ 네트워크상에 광채널 스위치의 이점인 고속 전송과 장거리 연결 및 멀티 프로토콜 기능을 활용

* MBR → 기억장치를 출입하는ㄷ ㅔ이터가 잠시 기억되는 레지스터

* NAC → 네트워크에 접속하는 내부 PC의 MAC 주소를 IP 관리 시스템에 등록한 후 일관된 보안 관리 기능을 제공하는 보안 솔루션

* NIC → 컴퓨터와 컴퓨터 또는 컴퓨터와 네트워크를 연결하는 장치로, 정보 전송 시 정보가 케이블을 통해 전송될 수 있도록 정보 형태를 변경함

사용자 인증 유형

→ 지식, 소유, 생체, 행위, 위치 등

* ‘존재’ 라는 사용자 인증 유형은 없음

고가용성 솔루션 (HACMP)

→ 각 시스템 간에 공유 디스크를 중심으로 클러스터링으로 엮어 다수의 시스템을 동시에 연결할 수 있음

XSS

→ 웹페이지에 악의적인 스크립트를 포함시켜 사용자 측에서 실행되게 유도함으로써, 정보 유출 등의 공격을 유발할 수 있는 취약점

* 피싱 - 낚시, 허위 웹사이트 내세워 사용자의 개인 신용 정보를 빼내는 수법을 의미

* 파밍 - 합법적으로 소유하고 있던 사용자의 도메인을 탈취하거나 DNS 이름을 속여 사용자들이 진짜 사이트로 오인하도록 유도하여 개인 정보를 훔치는 신종 인터넷 사기 수법

* 랜섬웨어 - 인터넷 사용자의 컴퓨터에 잠입해 내부 문서나 파일 등을 암호화해 사용자가 열지 못하게 하는 프로그램, 돈 요구하기도 함

LOC

→ 상향식 비용 산정 기법

→ 낙관치, 기대치, 비관치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법

합성 중심

→ 전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추는 방법으로 소프트웨어를 완성시키는 재사용 방법

테일러링

→ 프로젝트 상황 및 특성에 맞추어 기존의 방법론, 프로세스 등을 수정하는 것이니 만큼, 예상되는 변화를 충분히 고려해야 함


2023년 2회 문제 풀이

1과목: 소프트웨어 설계

결합도 (강 → 약)

자료 결합도 Data Coupling → 자료로 얽힐 수록… 강한거!

스탬프(검인) 결합도 Stamp Coupling → 도장 쾅! 도장은 무거운거임

제어 결합도 Control Coupling

외부 결합도 External Coupling

공통(공유) 결합도 Common Coupling → 조금 공유 해본다~

내용 결합도 Content Coupling → 아 내용만 살짝 겹치는거~

객체지향 설계 원칙 (SOLID)

SRP (Single Responsibility Principle) - 단일 책임 원칙 → 객체는 단 하나의 책임만 가져야 함

OCP (Open-Closed Principle) - 개방-폐쇄 원칙 → 기존의 코드를 변경하지 않고 기능 추가할 수 있게 설계해야 함

LSP (Liskov Substitution Principle) - 리스코프 치환 법칙 → 자식 클래스는 부모 클래스의 책임을 무시 ㄴㄴ 확장만 수행해야 함

HIPO

→ 시스템의 분석 및 설계나 문서화할 때 사용되는 기법, 하향식 소프트웨어 개발을 위한 문서화 도구

럼바우 분석 기법

  • 정보 모델링 → Object Modeling, 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정
  • 동적 모델링 → Dynamic Modeling, 상태 다이어그램을 이용
  • 기능 모델링 → Functional Modeling, 자료 흐름도(DFD)를 이용

결합도

  • 제어 결합도: 한 모듈이 다른 모듈과 제어 신호를 이용하여 통신, 공유되는 공통 데이터 영역을 사용할 때 결합도
  • 자료 결합도: 모듈 간의 인터페이스가 자료 요소로만 구성
  • 스탬프 결합도: 모듈 간의 인터페이스, 배열의 자료 구조가 전달될 때의 결합도
  • 외부 결합도: 어떤 모듈에서 선언한 데이터를 다른 모듈에서 참조할 때의 결합도
  • 내용 결합도: 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도

2과목: 소프트웨어 개발

소프트웨어의 구현 단계

작업 계획 → 코딩 → 컴파일 → 테스트

해싱 함수 종류

→ 제산법, 제곱법, 폴딩법, 기수 변환법, 대수적 코딩법, 계수 분석법, 무작위법

* 개방 주소법은 없는거야~ 수학적 내용에 관해서만 기억하면 될 것 같다

형상 관리 역할

  • 형상 관리를 통해 이전 리버전이나 버전에 대한 정보에 접근 가능하여 배포본 관리에 유용
  • 불필요한 사용자의 소스 수정 제한
  • 동일한 프로젝트에 대해 여러 개발자 동시 개발 가능

* 프로젝트 개발 비용을 효율적으로 관리하는 것과는 무관함! 소프트웨어의 변경 사항을 관리하기 위해 하는 활동임을 명심하자

제어 흐름도 → 순환 복잡도 계산

  • 영역 수 계산하여 내부 영역 + 외부 영역

image.png

3과목: 데이터베이스 구축

도메인

→ 하나의 애트리뷰트가 가질 수 있는 원자값들의 집합

튜플

→ 릴레이션에 포함된 각 튜플 사이에는 순서 X

파티셔닝(=분할) 방식

→ 범위 분할, 목록 분할, 해시 분할, 조합 분할, 라운드 로빈

* 예측 분할은 해당 x

스키마의 종류

  • 개념 스키마 → 조직 전체의 데이터베이스 구조를 의미함 (총괄적 입장에서 본 데이터베이스의 전체적인 논리적 구조)
  • 외부 스키마 → 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조
  • 내부 스키마 → 물리적 저장장치의 입장에서 본 데이터베이스 구조

SQL

INSERT INTO 컴퓨터과테이블(학번, 이름, 학년) # <컴퓨터과테이블>에 '학번', '이름', '학년' 속성의 값으로 튜플을 삽입
SELECT 학번, 이름, 학년                    # '학번', '이름', '학년' 속성을 검색 
FROM 학생테이블                            # <학생테이블>로부터 검색하라
WHERE 학과='컴퓨터';                       # '학과'가 "컴퓨터"인 튜플만을 대상으로 하라

⇒ 학생테이블에서 학과가 컴퓨터인 사람의 학번, 이름, 학년을 검색하여 컴퓨터과테이블에 삽입하라

SQL

“프로젝트번호(PNO) 1, 2, 3에서 일하는 사원의 주민등록번호(JUNO)를 검색하라. (단, 사원 테이블(WORKS)은 프로젝트번호(PNO), 주민드옥번호(JUNO) 필드로 구성된다.)”

  • 검색 대상이 JUNO이므로 SELECT JUNO
  • 검색 테이블이 WORKS이므로, FROM WORKS
  • PNO가 1, 2, 3 중 하나인 경우를 조회하므로 WHERE PNO IN (1, 2, 3);

SELECT JUNO FROM WORKS WHERE PNO IN (1, 2, 3);

4과목: 프로그래밍 언어 활용

C클래스 IP address 범위

→ 192.0.0.0 ~ 233.255.255.255

페이지 교체 알고리즘

→ OPT, FIFO, LRU, LFU, NUR, SCR 등

HRN 기법의 우선순위 공식

⇒ (대기 시간 + 서비스 시간) / (서비스 시간)

시간 구역성

→ 루프, 서브루틴, 스택

* 공간 구역성 → 배열 순회

TCP 헤더

  • 순서 번호: 전달하는 바이트마다 번호 부여
  • 수신 번호 확인: 상대편 호스트에서 받으려는 바이트의 번호 정의
  • 체크섬: 데이터를 포함한 세그먼트의 오류 검사
  • 윈도우의 최대 크기: 65,535(2^18-1)byte

소프트웨어 취약점

  • 버퍼 오버플로 → 버퍼 메모리에 저장할 수 있는 데이터보다 더 많은 데이터 입력해 프로그램이 비정상적으로 동작하도록 만드는 보안 약점
  • FTP 바운스 공격 → FTP 서버가 목적지를 검사하지 않는 취약점을 이용하여 공격 대상의 열린 포트를 찾아내는 기법
  • SQL 삽입 → 취약한 사이트 발견 시 데이터베이스 등의 데이터 조작하는 보안 약점
  • 디렉터리 접근 공격 → 데이터 입출력경로를 조작, 허가 X 디렉터리에 접근하여 무단으로 자원을 수정 및 삭제할 수 있는 보안 약점

배치 프로그램

  • 자동화
  • 안정성 → 어떤 문제가 생겼는지, 언제 발생했는지 등을 추적 가능
  • 대용량 데이터
  • 성능 → 주어진 시간 내에 처리 완료

5과목: 정보시스템 구축 관리

CMMI 모델

→ 초기, 관리, 정의, 정량적 관리, 최적화의 5단계로 구분

Risk Analysis (위험 관리)

→ 프로젝트에 내재된 위험 요소 인식, 그 영향을 분석하여 이를 관리하는 활동

Smurfing

→ IP 또는 ICMP의 특성을 악용하여 특정 사이트에 집중적으로 데이터를 보내 네트워크 또는 시스템의 상태를 불능으로 만드는 공격

* TearDrop → Offset 값을 변경시켜 수신 측에서 패킷을 재조립할 때 오류로 인한 과부하를 발생시킴

* Qshing → QR코드 + 피싱(Fishing)

RSA

→ 소인수 분해 문제를 이용한 공개키 암호화 기법

AES

→ 암호화 키와 복호화 키가 동일

합성 중심

→ 전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추는 방법

세션 하이재킹 탐지 방법

  • 비동기화 상태 탐지
  • ACK Storm 탐지
  • 패킷의 유실과 재전송 증가 탐지
  • 예상치 못한 접속의 리셋 탐지

2023년 3회 문제 풀이

1과목: 소프트웨어 설계

디자인 패턴 사용

→ 객체지향 언어와 함께 이용될 때 효율 극대화

요구사항 개발 프로세스

도출 → 분석 → 명세 → 확인

시스템의 구성 요소

→ 입력 Input, 처리 Process, 출력 Output, 제어 Control, 피드백 Feedback

2과목: 소프트웨어 개발

반정규화

→ 중복 테이블을 추가하는 방법

  • 집계 테이블의 추가
  • 진행 테이블의 추가
  • 특정 부분만을 포함하는 테이블 추가

Preorder 운행법

Root → Left → Right

저작권 관리 구성 요소

  • 콘텐츠 분배자 → 암호화된 콘텐츠를 유통하는 곳이나 사람
  • 패키저 → 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 기능을 수행

테스트 케이스 생성 도구

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

3과목: 데이터베이스 구축

튜플

→ 릴레이션을 구성하는 각각의 행

데이터베이스 설계 - 물리적 설계 단계

  • 저장 레코드 양식 설계
  • 레코드 집중의 분석 및 설계
  • 접근 경로 설계

* 논리적 설계 단계 → 목표 DBMS에 맞는 스키마 설계

키(Key)

  • 후보키 → 개체들을 고유하게 식별할 수 있는 속성
  • 슈퍼키 → 한 개 이상의 속성들의 집합으로 구성된 키
  • 외래키 → 다른 테이블의 기본키로 사용되는 속성
  • 대체키 → 후보키 중에서 기본키를 제외한 나머지 후보키를 의미

OLAP 연산

→ Roll-up, Drill-down, Drill-through, Drill-across, Pivoting, Slicing, Dicing

4과목: 프로그래밍 언어 활용

커널

→ 프로세스, 기억장치, 입출력 관리 수행

*

  • 명령어 해석기
  • 시스템과 사용자 간의 인터페이스 담당
  • 여러 종류가 있음

결합도 (낮 → 높)

자료 결합도 → 스탬프 결합도 → 제어 결합도 → 외부 결합도 → 공통 결합도 → 내용 결합도

OSI 7계층

  • 네트워크 계층 → 패킷
  • 데이터 링크 계층 → 프레임

ICMP

→ 인터넷 제어 메시지 프로토콜

→ TCP/IP 계층 구조에서 IP의 동작 과정에서의 전송 오류가 발생하는 경우에 대비해 오류 정보를 전송하는 목적으로 사용하는 프로토콜

C언어 연산자 우선 순위

단항, 산술, 시프트, 관계, 비트, 논리, 조건, 대입, 순서 연산자 순

→ 관계 연산자 중에서 <, <=, >=, >==, != 보다 우선 순위가 높다

5과목: 정보시스템 구축 관리

기능 점수(Functional Point) 모형에서 비용 산정에 이용되는 요소

→ 자료 입력(입력 양식), 정보 출력(출력 보고서), 명령어(사용자 질의수), 데이터 파일, 필요한 외부 루틴과의 인터페이스

DAS

→ 서버와 저장장치를 전용 케이블로 직접 연결하는 방식으로, 일반 가정에서 컴퓨터에 외장하드를 연결하는 것이 여기에 해당 됨

* NAS → 서버와 저장장치를 네트워크를 통해 연결하는 방식

네트워크 장비

  • 브라우터 → 브리지와 라우터의 기능을 모두 갖추고 있는 네트워크 장비
  • 리피터 → 전송되는 신호가 전송 선로의 특성 및 외부 충격 등의 요인으로 인해 원래의 형태와 다르게 왜곡되거나 약해질 경우 원래의 신호 형태로 재생하여 다시 전송하는 역할 수행
  • 브리지 → 데이터링크 계층 중 MAC 계층에서 사용됨
  • 스위치 → 2계층에서 사용, LAN과 LAN 연결해서 더 큰 LAN
  • 라우터 → 네트워크 계층에서 동작, LAN과 WAN의 연결도 수행
profile
영차영차 😎

0개의 댓글