25년 1회차 정처기 실기 시험 후기 (feat. 이론 자료 첨부)
작년 3회차 실기에서 불합격하고 25년 1회차 시험만을 기다렸다..
3회차 이후 다음 해 1회차까지는 시간 텀이 너무나 길기 때문이다ㅋ
첫 실기시험 땐 단순한 유형의 프로그래밍 문제만 연습해 간 것이 낭패였다.
작년 3회차 실기에서 프로그래밍 문제 유형이 5첩 반상마냥 골고루 다양하게 나왔기 때문에
이번에는 여러 유형의 문제를 풀어보고 모르는 유형이 없도록 빈틈 없이 준비했다.
그리고 시험이 개편된 20년도부터 작년까지의 기출문제를 모두 거의 훑어봤는데
20년도~21년도까지는 이론문제가 상당히 어렵게 나왔었다.
어떤 용어에 대한 설명만 나오고, 그 용어를 "영어로" 쓰시오. 같은 문제.
(보기도 제공 안 돼서 걍 암기해 가야 함)
예를 들면
"입력 결과와 출력 결과의 논리적 관계를 그래프로 표현한 뒤 테스트 케이스를 도출하는 테스트 기법 이름을 영어로 쓰시오 (보기 없음)"
이따구?
그런데 24년도쯤 부터 이론문제는 아주 쉬워지고,
대부분 답을 보기에서 찾아 쓸 수 있도록 문제가 나오는 것 같다.
SQL문제도 크게 어렵지 않게 나오는 편.
대신 프로그래밍 문제가 자바, C언어, 파이썬에서 각각 3문제 정도씩 총 9문제 이상이 나오는데
그 3문제가 전부 다른 유형으로 골고루 나온다.
자바의 경우 업스케일 된 타입을 가지는 인스턴스의 메서드와 멤버변수의 바인딩 시점이 달라 멤버변수는 부모의 값을,
메서드는 차일드의 오버라이딩 된 메서드를 갖는데, 이런걸 테스트하는 문제도 자주 나오는 편. (아래 같은 문제)
public class Main{
public static void main(String[] args){
Base a = new Derivate();
Derivate b = new Derivate();
System.out.print(a.getX() + a.x + b.getX() + b.x);
}
}
class Base{
int x = 3;
int getX(){
return x * 2;
}
}
class Derivate extends Base{
int x = 7;
int getX(){
return x * 3;
}
}
그리고 제네릭 문제도 간혹 나온다.
자바의 제네릭은 타입 소거에 대해 잘 모르면 헷갈리기 아주 좋은 문제다.
C언어는 포인터, 이중포인터, 구조체, 진법 변환, 비트 연산 등이 골고루 나올 수 있고,
파이썬은 다른 언어에 비해 비교적 쉽게 나오는 편이다. 하지만 파이썬에서도 존나 낯설고 헷갈리는 형태의 코드가 많아서
이런걸 잘 숙지해둬야 한다. (예를 들면 formatted string literal 그리고 이번 시험에 나왔던 파이썬 삼항연산자..(A if 조건 else B))
25년 1회차 시험은 어땠나
2회차 시험 준비를 해야겠다. 아몰라 딸 때 까지 계속 볼거야.
실기시험은 문제은행에서 출제되는게 아니고 매번 출제자들이 새롭게 문제를 출제하기 때문에
기출문제를 열심히 풀어가도 기출대로 나올 가능성이 거의 없다고 하는 사람도 있는데
나는 기출문제를 꼭 풀어보고 가기를 추천한다.
시험 전 날 기출문제를 풀면서 "세션 하이재킹"에 대한 문제가 나와서 이게 저절로 외워졌는데,
시험 당일날 1번 문제로 세션 하이재킹 용어를 맞춰야 하는 문제가 나왔다.
그리고 기출문제를 풀어보면 아주 자주 등장하는 이론 문제들이 있다는 것을 알 수 있는데
대표적으로
블랙박스 테스트
화이트박스 테스트
모듈 응집도 / 모듈 결합도
무결성 제약조건
키의 유일성 / 최소성 관련 문제
VPN / IPSec 문제
그리고 계산식 문제로 IP를 구하는 문제는 거의 매번 나오는 것 같다. (서브넷 구하기, IP클래스 구하기 등)
여하튼 이번 시험에서 이론문제는 꽤 쉽게 나왔다.
SQL문제도 걍 쉬웠다.
하지만 프로그래밍 문제는 존나..
어렵다기 보다는 문제 풀이에 시간이 오래걸리는 재귀함수 실행 결과를 쓰는 문제가 4개 이상이 나왔다;;
재귀함수 문제의 경우, 재귀로 호출하는 목적을 파악한다면 쉽게 풀 수 있었을지도 모른다.
하지만 나는 일일이 다 노가다로 풀었고...
다양한 프로그래밍 문제 유형에 대비해서 갔기 때문에 문법을 몰라 못 푸는 문제는 거의 없었는데
의외로 파이썬 3항연산자 문법을 이해하지 못해서 이걸 틀렸다.
자바스크립트에서는 3항 연산자를 "조건 ? A : B" 형식으로 쓰는데
파이썬에서는 "A if 조건 else B" 이렇게 나와서 패닉해버린 것..
그리고 C언어에서 int *p = (int *)malloc(sizeof(int)) 이런 문법도 나왔다.
malloc, calloc 등 메모리 할당 문제는 출제 빈도가 낮아서 대비를 안 하고 갔는데 나와버렸고..
나는 일요일 오후 1시에 친언니 상견례에 참석해야 해서 11시쯤 시험을 끝내고 나가는 것이 계획이었다.
그런데 문제 풀이 시간이 생각보다 오래걸려서 11시 30분쯤에 결국 두 문제를 풀지 못하고
시험장을 나와야 했다.
생각 난 대로 복귀해 본 C언어 재귀 문제. 배열이 주어지고, comp의 결과가 몇인지 작성하는 문제였음.
#include <stdio.h>
int max(int a, int b) {
return a > b ? a : b;
}
int comp(int a[], int st, int end) {
if (st >= end) return 0;
int mid = (st + end) / 2;
return a[mid] + max(comp(a, st, mid), comp(a, mid + 1, end));
}
대충 복귀해 본 C언어 마지막 문제. 16진수를 AND비트연산 한 뒤 정수로 변환하여 빼기 계산해주기.
#include <stdio.h>
#include <string.h>
typedef struct {
char name[20];
int scores[3];
} Student;
int calc(int scores[]) {
int sum = 0;
for (int i = 0; i < 2; i++) {
sum += (scores[i] & 0xA0);
}
return sum;
}
int main() {
Student students[2] = {
{"Kim", {0xF5, 0xDE, 0xA3}},
{"Lee", {0xEF, 0x3D, 0xAF}}
};
int score1 = calc(students[0].scores);
int score2 = calc(students[1].scores);
printf("%d\n", score1 - score2);
return 0;
}
후기
비전공자 + 비개발자라면 점점 더 따기 어려운 자격증이 되어가는 것 같다.
프로그래밍 문제의 난이도가 회차가 지날 수록 계단식으로 어려워지고 있는데
차라리 작년 3회차때의 문제는 선녀였다. 그 때 붙을걸 ㅋ
여러분 1회차라도 더 이를 때 시험 보세요~ (계산기도 챙겨가세요~)
아 그리고 이론공부 팁이 있다.
많은 용어를 외워야 하는 이론의 경우, 용어를 그냥 외우면 절대 안 외워진다.
GPT를 켜놓고, 이 용어는 왜 이렇게 이름 붙여졌어? (ex : 화이트박스/블랙박스 테스트는 왜 화이트,블랙이라고 이름 붙인거야?)
물어보고 이름의 유래를 읽으면 안 외우고 싶어도 외워진다.
이론 공부 자료
프로그래밍 연습만 해도 시간 없는데
5센치짜리 책으로 이론공부? 시작부터 나가떨어진다.
이론공부는 최소한만 하시라고 직접 정리한
A4용지로 6장도 안 되는 분량의 필승 이론 자료를 공유합니다.
https://github.com/seoulsaram/CIPE/tree/main
GitHub - seoulsaram/CIPE: 정보처리기사 실기 이론 자료
정보처리기사 실기 이론 자료. Contribute to seoulsaram/CIPE development by creating an account on GitHub.
github.com
'일기' 카테고리의 다른 글
갑자기 난 피부 발진과 가려움! ㅠㅠ (1) | 2025.04.29 |
---|---|
비정기 회고 : 2024.9 ~ 2025.4 (2) | 2025.04.28 |
2024 콘텐츠코리아 전시회 커넥트브릭 참여 후기 (0) | 2024.12.14 |
2024 LG 비즈노베이터 커넥트브릭 성과 발표 후기 (1) | 2024.12.07 |
월간 회고 : 5-8월 (9) | 2024.09.02 |