정보처리기사 - 22년 1회 기출문제 오답노트
🗂️ 목차1. 소프트웨어 설계2. 소프트웨어 개발3. 데이터베이스 구축4. 프로그래밍 언어 활용5. 정보시스템 구축 관리 🚩 점수계산 각 과목 20문제씩, 총 5과목 100문제이며, 문제당 1점으로 계산.
howtomakecode.tistory.com
🗂️ 목차
1. 소프트웨어 설계
2. 소프트웨어 개발
3. 데이터베이스 구축
4. 프로그래밍 언어 활용
5. 정보시스템 구축 관리
🚩 점수계산
각 과목 20문제씩, 총 5과목 100문제이며, 문제당 1점으로 계산.
총점: 18 + 13 + 16 + 12 + 16 = 75점
※ 합격 기준은 보통 과락 없이 60점 이상, 즉 각 과목 8점 이상이며 전체 60점 이상.
⭐3. 데이터베이스 구축 (16/20)
📌[43] 어떤 릴레이션 R의 모든 조인 종속성의 만족이 R의 후보키를 통해서만 만족할 때, 이 릴레이션 R이 해당하는 정규형은?
- 문제 유형 : 데이터베이스 정규화
- 내 답안 : 제 1정규형
- 정답 : 제 5정규형
❌ 왜 틀렸는가?
- "모든 조인 종속성이 후보키를 통해서만 만족된다"는 제5정규형의 정의 문장 그대로임
- 제1정규형은 도메인 원자성 관련 개념이므로, 전혀 관계 없음
- 정규형 핵심 조건과 정의 문장 연결 학습 부족
🔂 다음엔 어떻게 맞출것인가
- 각 정규형의 핵심 개념 + 조건 문장을 통째로 외우기
- 특히 4NF와 5NF는 종속성 기반 정의가 자주 출제되므로 문장 암기 중심 학습 필요
📖 참고 개념 정리
정규형 | 핵심 조건 | 설명 |
제 1 정규형 | 도메인 원자값 | 반복 속성 제거 |
제 2 정규형 | 부분 함수 종속 제거 | 기본키의 일부분에만 종속된 속성 제거 |
제 3 정규형 | 이행적 함수 종속 제거 | 비기본키 → 비기본키 제거 |
BCNF | 결정자 → 후보키 | 모든 결정자가 후보키 |
제 4 정규형 | 다치 종속 제거 | 하나의 속성이 여러 값 가질 때 |
제 5 정규형 | 조인 종속 = 후보키 기준 | 후보키로만 조인 종속성 만족 시 성립 |
📌[49] 관계 대수식을 SQL 정의로 옳게 표현한 것은?
- 문제 유형 : 관계 대수
- 내 답안 : 답 체크 X
- 정답 : SELECT 이름 FROM 학생 WHERE 학과='교육'
❌ 왜 틀렸는가?
- 문제에서 선택(σ) + 투영(π) 조합을 SQL로 변환하는 식인데, 선택은 WHERE절, 투영은 SELECT 절에 정확히 대응돼야 함
- 다른 선택지들은 SELECT 대상 또는 조건 컬럼이 잘못 지정됨
- 관계 대수식: **π이름(σ학과='교육'(학생))**
→ 조건: 학과='교육'인 튜플 선택 (σ)
→ 투영: 이름 속성만 출력 (π)
🔂 다음엔 어떻게 맞출것인가
- σ(조건) → `WHERE`
- π(속성) → `SELECT`
- 이 구조를 고정 공식처럼 암기해서 위에서 아래로 해석
📖 참고 개념 정리
관계 대수 | SQL 문장 대응 |
σ조건(릴레이션) | `SELECT * FROM 릴레이션 WHERE 조건` |
π속성(릴레이션) | `SELECT 속성 FROM 릴레이션` |
σ조건(π속성(릴레이션)) | `SELECT 속성 FROM 릴레이션 WHERE 조건' |
📌[50] 정규화 과정에서 함수 종속이 A→B이고, B→C일 때 A→C인 관계를 제거하는 단계는?
- 문제 유형 : 데이터베이스 정규화
- 내 답안 : 1NF -> 2NF
- 정답 : 2NF -> 3NF
❌ 왜 틀렸는가?
- A→B, B→C인 경우 A→C는 이행적 함수 종속
- 이행적 종속성 제거는 제3정규형(3NF)의 핵심 목표
- 1NF → 2NF는 부분 함수 종속 제거 (복합키의 일부에만 종속된 속성 제거)
🔂 다음엔 어떻게 맞출것인가
- 정규화 단계마다 제거하는 종속성의 종류를 구분해서 암기
- 아래 표 반복 복습
📖 참고 개념 정리
정규화 단계 | 제거 대상 | 설명 |
1NF | 비원자값, 반복 속성 | 속성 값이 원자값이 아닌 경우 제거 |
2NF | 부분 함수 종속 | 기본키 일부에만 종속된 속성 제거 |
3NF | 이행적 함수 종속 | A→B, B→C → A→C 제거 |
BCNF | 후보키 아닌 결정자 종속 | 결정자가 후보키가 아닐 경우 분해 |
📌[59] 테이블 두 개를 조인하여 뷰 V_1을 정의하고, V_1을 이용하여 V_2를 정의하였다. 다음 명령 수행 후 결과로 옳은 것은? -> 맞은건데 채점 오류
- 문제 유형 :
- 내 답안 : V_1과 V_2 모두 삭제된다.
- 정답 :
📌[60] 데이터베이스에서 병행제어의 목적으로 틀린 것은?
- 문제 유형 : 데이터베이스 트랜잭션
- 내 답안 : 데이터베이스 일관성 유지
- 정답 : 데이터베이스 공유 최소화
❌ 왜 틀렸는가?
- 병행제어는 트랜잭션이 동시에 수행될 때의 충돌과 오류를 방지 하기 위한 것으로, 일관성, 독립성, 원자성 유지가 핵심 목적
- “공유 최소화”는 병행제어 목적이 아니라 병목 현상 방지나 동기화 제한의 부작용 회피 차원의 개념
🔂 다음엔 어떻게 맞출것인가
- 병행제어 목적 = 일일독무 암기
(일관성 유지, 일시성 보장, 독립성 확보, 무결성 유지)
📖 참고 개념 정리
병행제어의 목적 | 설명 |
일관성 유지 | 트랜잭션 수행 전후 데이터 상태가 논리적으로 일치 |
고립성 | 각 트랜잭션이 서로 간섭 없이 수행되도록 함 |
원자성 | 트랜잭션이 전부 수행되거나 전혀 수행되지 않아야 함 |
무결성 유지 | 데이터의 규칙 및 제약조건 위반 없이 유지 |
공유 최소화 | 병행제어의 목적 아님 – 성능 관점 부수 요소 |
⭐4. 프로그래밍 언어 활용 (12/20)
📌[61] IP 주소 체계와 관련된 설명으로 틀린 것은?
- 문제 유형 : 네트워크
- 내 답안 : IPv4는 호스트 주소를 자동으로 설정하며 유니캐스트를 지원한다.
- 정답 : IPv6의 패킷 헤더는 32 object의 고정된 길이를 가진다.
❌ 왜 틀렸는가?
- 내 답안은 다소 애매하지만 기술적으로 틀린 건 아님
- IPv4는 DHCP로 자동 할당 가능
- 유니캐스트는 IPv4에서 기본 지원
- 반면 정답 문장은 IPv6 헤더가 32 object로 구성된다"는 명백한 허위 정보
- 실제 IPv6 헤더는 40바이트 고정 길이 , 필드는 object 개념이 아님
🔂 다음엔 어떻게 맞출것인가
- IPv6 구조의 헤더 길이(고정 40바이트) , 필드 이름, 옵션 처리 방식을 암기.
- 숫자 기반 오답(32 object 등)은 자주 쓰이는 함정 문장이므로 경계
📖 참고 개념 정리
구분 | IPv4 | IPv6 |
주소 길이 | 32비트 | 128비트 |
주소 표현 | 10진수 점 표기 | 16진수 콜론 표기 |
헤더 길이 | 가변 | 고정 |
헤더 구조 | 복잡, 옵션 포함 | 단순, 확장 헤더로 옵션 분리 |
자동 주소 설정 | DHCP | SLAAC |
브로드캐스트 | 0 | x (멀티캐스트사용) |
유니캐스트 | 지원 | 지원 |
📌[62] 다음 C언어 프로그램이 실행되었을 때, 실행결과는?
#include <stdio.h>
#include <memory>
int test(int argc, char* argv[])
{
int arr[2][3] = { 1,2,3,4,5,6 };
int (*p)[3] = NULL;
p = arr;
printf("%d", *(p[0] + 1) + *(p[1] + 2)); // 2 + 6 = 8
printf("%d", *(*(p + 1) + 0) + *(*(p + 1) + 1)); // 4 + 5 = 9
system("pause");
return 0;
}
int main(int argc, char* argv[])
{
return test(argc, argv);
}
- 문제 유형 :
- 내 답안 : IPv4는 호스트 주소를 자동으로 설정하며 유니캐스트를 지원한다.
- 정답 :
❌ 왜 틀렸는가?
-
🔂 다음엔 어떻게 맞출것인가
-
📖 참고 개념 정리
📌[66] JAVA의 예외와 관련된 설명으로 틀린 것은?
- 문제 유형 :
- 내 답안 : 오동작이나 결과에 악영향을 미칠 수있는 실행 시간 동안에 발생한 오류
- 정답 :
❌ 왜 틀렸는가?
-
🔂 다음엔 어떻게 맞출것인가
-
📖 참고 개념 정리
📌[67] TCP/IP 계층 구조에서 IP의 동작 과정에서의 전송 오류가 발생하는 경우에 대비해 오류 정보를 전송하는 목적으로 사용하는 프로토콜은?
- 문제 유형 : 네트워크 – TCP/IP 계층 및 보조 프로토콜
- 내 답안 : ARP
- 정답 : ICMP (Internet Control Message Protocol)
❌ 왜 틀렸는가?
- ARP는 IP → MAC 주소 매핑을 위한 프로토콜.
- 오류 메시지(예: 목적지 도달 불가, TTL 초과 등)를 전송하는 건 ICMP임
🔂 다음엔 어떻게 맞출것인가
- “오류 정보 전송” or “ping 관련” 키워드 = 무조건 ICMP
- ARP는 “주소 변환” 키워드에서만 등장
📖 참고 개념 정리
프로토콜 | 계층 | 역할 |
ICMP | 네트워크 계층 | IP 오류 메시지 전송 (예: 목적지 없음, TTL 초과) |
ARP | 네트워크 계층 | IP 주소 ↔ MAC 주소 변환 |
RARP | 네트워크 계층 | MAC 주소 → IP 주소 변환 |
IP | 네트워크 계층 | 비연결형 패킷 전송 |
TCP | 전송 계층 | 연결형, 신뢰성 있는 전송 |
UDP | 전송 계층 | 비연결형, 빠른 전송 |
PPP | 데이터 링크 계층 | 1:1 직렬 통신용 프로토콜로, 전화선·모뎀 연결 등에 사용. IP, TCP 등 다양한 프로토콜 캡슐화 지원 |
ECP | PPP의 확장 | PPP에서 암호화 기능을 협상하고 설정하기 위한 제어 프로토콜 (확장 프로토콜 중 하나) |
📌[69] 다음과 같은 형태로 임계 구역의 접근을 제어하는 상호배제 기법은?
P(S) : while S <= 0 do skip;
S := S - 1;
V(S) : S := S +1;
- 문제 유형 : 운영체제 – 프로세스 동기화
- 내 답안 : 답 체크 X
- 정답 : 세마포어 (Semaphore)
❌ 왜 틀렸는가?
- 제시된 구조는 고전적인 세마포어 구현 방식
- `P(S)` → 진입 전 대기 (S가 0이면 skip)
- `V(S)` → 자원 반환 시 S 값 증가
- 기법 명칭을 보지 않고 로직 형태만 봤을 때 생소해서 연결을 놓침
🔂 다음엔 어떻게 맞출것인가
- P(S), V(S) 가 보이면 무조건 세마포어
- while문과 변수 감소(P), 증가(V)로 구성된 임계구역 제어 → 세마포어 고정
📖 참고 개념 정리
기번/알고리즘 | 유형 | 프로세스 수 | 특징 및 동작 방식 |
데커 알고리즘 | 소프트웨어 | 2개 | 최초의 상호배제 알고리즘, 턴 진입의사 플래그(turn)과 를 함께 사용하여 상호배제 보장 |
피터슨 알고리즘 | 소프트웨어 | 2개 | 간단하고 널리 쓰이는 방식,둘 다 진입의사를 밝히면 turn으로 조정하여 경쟁 해결 |
램포트 알고리즘 | 소프트웨어 | N개 이상 | 숫자 티켓(ticket)을 활용하여 대기 순서 보장 (우선순위 방식) |
세마포어 | 하드웨어/소프트웨어 혼합 | N개 이상 | 공유 자원 수를 정수로 관리. `P()`는 진입 대기, `V()`는 자원 반환. 음수 또는 busy-wait 없음 |
- 데커/피터슨 : 2프로세스 전용, flag + turn 조합
- 램포트 : 티켓 번호 부여, N프로세스 간 순차적 진입 보장
- 세마포어 : 시스템/운영체제 기반, `P(S), V(S)`로 자원 수량 제어
📌[73] 다음 JAVA 프로그램이 실행되었을 때, 실행결과는?
package com.example.travelagency.common.dump;
public class indexTest {
static void rs(char a[]){
for(int i=0;i<a.length;i++){
if(a[i]=='B'){
a[i] = 'C';
} else if (i == a.length-1) {
a[i] = a[i-1];
} else{
a[i] = a[i+1];
}
}
}
static void pca(char a[]){
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
System.out.println();
}
}
public static void main(String[] args) {
char c[] = {'A', 'B', 'D', 'D', 'A', 'B', 'C'};
rs(c);
pca(c);
}
}
- 문제 유형 : Java 배열 인덱스, 조건 분기, 참조 처리
- 내 답안 : BCDABCA
- 정답 : BCDABCC
❌ 왜 틀렸는가?
- `rs(char[] a)` 메서드는 배열을 인덱스 순차적으로 수정하는데, 수정된 값이 다음 루프에 바로 반영되므로, 예측 시 한 번에 모든 변경을 상상하면 안 됨
- 마지막 원소 `a[i] = a[i-1]` 처리에서 → 직전 값이 이미 변경된 C라는 점을 놓침
🔂 다음엔 어떻게 맞출것인가
- 배열 문제는 반드시 한 칸씩 따라가며 배열의 현재 상태를 추적
- 특히, 배열 내부 값을 변경하는 경우는 변경 후의 값이 이후 루프에 영향을 주므로 → 수정된 값 기준으로 생각해야 함
📖 실행 흐름 및 배열 추적
char[] c = {'A', 'B', 'D', 'D', 'A', 'B', 'C'};
// rs() 실행 흐름
i=0: a[0]='A' → a[1]='B' → a[0]='B'
i=1: a[1]='B' → 조건: 'B' → a[1]='C'
i=2: a[2]='D' → a[3]='D' → a[2]='D'
i=3: a[3]='D' → a[4]='A' → a[3]='A'
i=4: a[4]='A' → a[5]='B' → a[4]='B'
i=5: a[5]='B' → 조건: 'B' → a[5]='C'
i=6: 마지막 → a[6] = a[5] → a[6]='C'
// 최종 배열: {'B', 'C', 'D', 'A', 'B', 'C', 'C'}
📌[80] UNIX 시스템의 쉘의 주요 기능에 대한 설명이 아닌 것은?
- 문제 유형 : UNIX 쉘(Shell)의 역할 구분
- 내 답안 : 반복적인 명령울 프로그램으로 만드는 프로그래밍 기능을 제공한다.
- 정답 : 쉘 프로그램실행을 위해 프로세스와 메모리를 관리한다.
❌ 왜 틀렸는가?
- 쉘은 사용자의 명령을 해석하고 실행하는 명령어 인터프리터로,
반복 명령 작성 = 쉘 스크립트 작성 기능이 맞는 설명
- 반면, 프로세스와 메모리 직접 관리는 커널(Kernel)의 역할이며, 쉘은 이를 요청만 할 수 있음
🔂 다음엔 어떻게 맞출것인가
- UNIX 시스템 구성요소 중
→ 쉘은 명령 해석/스크립트,
→ 커널은 자원(프로세스/메모리) 관리라고 구분해 암기할 것
📖 참고 개념 정리
구성 요소 | 역할 |
쉘 | 사용자 명령 해석, 명령 실행, 스크립트 처리 (반복문/조건문 가능) |
커널 | 하드웨어 제어, 프로세스 스케쥴링, 메모리/파일/장치 관리 |
명령어 인터프리터 | 쉘 기능의 핵심 - BASH, CSH 등 |
⭐5. 정보시스템 구축 관리 (16/20)
📌[83] 위조된 매체 접근제어(MAC) 주소를 지속적으로 네트워크로 흘려보내, 스위치 MAC 주소 테이블의 저장 기능을 혼란시켜 더비 허브처럼 작동하게 하는 공격은?
- 문제 유형 : 네트워크 보안
- 내 답안 : LAN Tapping
- 정답 : Switch Jamming
❌ 왜 틀렸는가?
- LAN Tapping 은 물리적인 회선 도청 장비 설치를 의미하며, 스위치의 MAC 테이블을 과부하시켜 허브처럼 만드는 행위와 무관함
- Switch Jamming은 수천 개의 가짜 MAC 주소를 보내 스위치가 MAC 주소 저장을 포기하게 유도 → 이로 인해 스위치는 모든 트래픽을 모든 포트에 전달 → 허브처럼 동작하게 됨
🔂 다음엔 어떻게 맞출것인가
- MAC 주소 과부하 + 허브처럼 동작" → Switch Jamming 연상 고정
- LAN Tapping은 물리적 접근/스니핑 장비 설치 개념으로 분리해서 암기
📖 참고 개념 정리
용어 | 설명 |
Switch Jamming | 위조된 수많은 MAC 주소를 스위치에 지속 전송해 MAC 테이블을 오버플로우 시킴. 스위치는 브로드캐스트처럼 동작하게 되고, 스니핑 가능 |
LAN Tapping | 네트워크 케이블에 물리적으로 장비를 연결해 패킷을 몰래 가로채는 수동적 도청 기법 |
MAC Flooding | Jamming과 유사하게 MAC 주소를 넘쳐나게 하여 스위치 기능 무력화 |
Hub | 브로드캐스트 방식으로 트래픽을 전송하는 단순 장비 (스위치보다 보안 취약) |
FTP Flooding | FTP 프로토콜을 악용해 다량의 접속 요청 또는 명령어를 반복 전송하여 서버 자원을 고갈시키는 DoS 공격. 특히 제어 채널 연결 유지 특성을 악용 |
Parsing | 데이터를 처리(parsing)하는 과정에서 버퍼 오버플로우, 메모리 누수, 무한 루프 등 비정상 동작을 유도하는 공격 Ex: XML Bomb, JSON 구조 반복 등 |
📌[86] 소프트웨어 생명주기 모델 중 V 모델과 관련한 설명으로 틀린 것은?
- 문제 유형 : 소프트웨어 생명주기(SDLC) 모델
- 내 답안 : 개발 작업과 검증 작업 사이의 관계를 명확히 들어내 놓은 폭포수 모델의 변형이라고 볼 수 있다.
- 정답 : 요구분석 및 설계 단계를 거치지 않으며 항상 통합 테스트를 중심으로 v 형태를 이룬다.
❌ 왜 틀렸는가?
- 내 답안은 실제로 V 모델의 특징임
→ V 모델은 폭포수 모델의 테스트 보완형 변형 모델
- 반면 정답 문장은 요구분석과 설계를 생략 한다고 하여 명백히 틀림
→ V 모델은 요구분석–설계–구현–테스트 단계를 모두 포함하며
각 개발 단계에 대응되는 검증 단계가 연결됨 (V 형태)
🔂 다음엔 어떻게 맞출것인가
- 요구분석·설계가 없다는 문장이 나오면 100% 오답
- V 모델은 왼쪽: 개발 / 오른쪽: 대응 테스트 라는 구조 고정
📖 참고 개념 정리
구분 | 설명 |
V 모델 | 폭포수 모델을 기반으로 하되, 각 개발 단계와 1:1 대응하는 테스트 단 가 포함되어 V자 형태를 이룸 |
주요 특징 | 요구사항 분석 → 시스템 설계 → 상세 설계 → 구현 → 단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트 |
목적 | 개발과 테스트의 단계별 대응 관계를 명확히 하여 품질 확보 |
키워드 암기 | "왼쪽 개발 / 오른쪽 검증", "폭포수 + 테스트 보완", "단계 대응" |
📌[87] 블루투스공격과 해당 공격에 대한 설명이 올바르게 연결된 것은?
- 문제 유형 : 무선 네트워크 보안 – 블루투스 공격 기법 종류 및 정의
- 내 답안 : 답 체크 X
- 정답 : 블루프린팅 - 블루투스 공격 장치의 검색 활동을 의미
❌ 왜 틀렸는가?
- 블루투스 공격 종류 중 생소한 항목(블루프린팅)에 대한 학습 부족
- 보통 재킹/스너핑/버깅만 외우고, 블루프린팅처럼 정보 수집 목적의 사전 단계 개념을 놓침
🔂 다음엔 어떻게 맞출것인가
- 블루투스 공격 4종을 목적별로 암기:
- 블루프린팅 → 정보 수집(검색)
- 블루재킹 → 메시지 전송(스팸)
- 블루스너핑 → 데이터 탈취
- 블루버깅 → 원격 제어/권한 탈취
📖 참고 개념 정리
공격 유형 | 설명 |
블루프린팅 | 블루투스 장치 검색 및 정보 수집 (모델, 기기명 등 탐색 단계) |
블루재킹 | 블루투스 메시지 무단 전송 (푸시 스팸) |
블루스너핑 | 주소록, 파일 등 정보 탈취 |
블루버깅 | 권한 탈취 후 원격 명령 실행, 통화 도청 등 가능 |
📌[88] DOS 공격과 관련한 내용으로 틀린 것은?
- 문제 유형 :
- 내 답안 : LAND 공격은 패킷 전송 시 출발지 IP 주소와 목적지 IP 주솟값을 똑같이 만들어서 공격 대상에게 보내는 공격 방법이다.
- 정답 : SMURF 공격은 멀티캐스를 활용하여 공격 대상이 네트워크의 임의의 시스템에 패킷을 보내게 만드는 공격이다.
❌ 왜 틀렸는가?
- LAND 공격 설명은 정확함
- DoS 공격들은 각자 고유한 패킷 특징이 있으므로, 그것과 비교해야 함
🔂 다음엔 어떻게 맞출것인가
- 각 공격의 구체적 동작 방식과 패킷 구조를 암기해서, 설명이 기술적으로 틀렸는지 판단할 것
- LAND, Ping of Death, Teardrop, SYN Flood 등 자주 출제됨
📖 참고 개념 정리
공격명 | 설명 |
LAND 공격 | 출발지 IP = 목적지 IP로 만든 패킷을 전송, 응답 루프 유도 |
PING OF DEATH | ICMP 패킷 크기를 65,535바이트 이상으로 만들어 시스템 다운 유도 |
TEARDROP | IP 조각 offset을 비정상 설정 → 조합 불가능하게 하여 시스템 오류 유발 |
SYN FLOOD | 3-way 핸드셰이크 요청만 보내고 ACK 미응답 → 연결 대기 상태 고갈 |
SMURF | IP 브로드캐스트 주소로 ICMP 요청 → 대량 응답이 피해자에게 집중 |
FRAGGLE | Smurf와 유사하지만 UDP 사용 (주로 포트 7) |
'백엔드' 카테고리의 다른 글
정보처리기사 - 22년 1회 기출문제 오답노트 - 1편 (2) | 2025.05.05 |
---|---|
IPv4 vs IPv6 비교 (2) | 2025.05.04 |
페이지 교체 알고리즘(FIFO) 와 스래싱(THRASHING) (1) | 2025.05.04 |
파이썬 vs 자바 차이점 (0) | 2025.05.04 |
자바 2차원 배열에 대한 고찰... (2) | 2025.05.04 |