"객관식인데 왜 이렇게 어려워요?"
정처기 필기 비전공자 후기 보면 거의 항상 같은 패턴이에요. 1·2·5과목은 어찌어찌 60–70점 맞췄는데, 4과목에서 30점대가 나와서 과락으로 떨어졌다는 이야기.
정처기 필기는 매 과목 40점 미만이면 전체 평균과 무관하게 탈락이에요. 비전공자가 4과목 8문제(40점) 이상을 만드는 게 합격 분기점입니다.문제는 4과목이 객관식인데도 사실상 코드를 한 줄씩 머리로 실행시켜야 풀린다는 거예요. 보기 4개 중에 결과값을 고르는 문제가 대부분이라, 코드를 읽지 못하면 25% 찍기로 가는 수밖에 없습니다.
4과목 출제 비중 (최근 3개년 평균)
| 영역 | 비중 (20문제 중) | 난이도 |
|---|---|---|
| C언어 (포인터·배열·구조체) | 6–7문제 | 상 |
| Java (상속·오버라이딩·예외) | 4–5문제 | 중상 |
| Python (리스트·딕셔너리·슬라이싱) | 3–4문제 | 중 |
| 스크립트 언어·웹 언어 개념 | 2–3문제 | 하 (암기) |
| 라이브러리·프레임워크 용어 | 2–3문제 | 하 (암기) |
C가 가장 비중도 크고 어려워요. 비전공자가 C 포인터에서 무너지면 4과목 자체가 무너집니다. 반대로 C에서 4문제만 건져도 4과목 과락은 거의 피해요. 나머지는 암기 영역으로 채울 수 있거든요.
비전공자가 4과목 12점 만드는 3단계
1단계 (1주차): 코드 읽는 법만 익히기
C·Java·Python 문법을 외우려고 하면 망해요. 비전공자는 코드가 위에서 아래로 흘러간다는 감각부터 잡는 게 먼저예요.
이 정도만 알면 됩니다.
- 변수 = 이름표 붙은 값.
int a = 5;는 a라는 이름표에 5를 넣음 for (int i=0; i<10; i++)는 0부터 9까지 i가 바뀌면서 10번 반복if (조건) { ... } else { ... }는 조건이 참이면 위쪽, 아니면 아래쪽 실행- 함수 호출
printf("a=%d", a);는 a 값을 빈칸에 넣어서 출력
문제 푸는 게 아니라 읽기 연습이라고 생각하세요. 기출 코드 5개만 펼쳐놓고 한 줄씩 "이거는 i가 0이고", "지금은 i가 1이고" 종이에 적어가면서 따라가는 거예요. 처음엔 1문제에 20분 걸려요. 정상입니다.
2단계 (2–3주차): 언어별 함정 패턴 외우기
기출 보면 언어별로 출제되는 함정이 거의 정해져 있어요. 새로운 코드처럼 보여도 결국 같은 패턴 변형입니다.
C언어 단골 함정 5개
-
포인터 vs 변수 값
int a = 10; int *p = &a; *p = 20; printf("%d", a); // 20*p = 20이 a를 바꾼다는 게 핵심. -
배열 인덱스 + 포인터 연산
int arr[] = {1, 2, 3, 4}; printf("%d", *(arr + 2)); // 3*(arr + n)=arr[n]. -
2차원 배열 접근
arr[2][3]같은 형태에서 행·열 인덱스 헷갈림. -
구조체 포인터 멤버 접근
p->namevs(*p).name(둘 다 같은 의미). -
재귀 함수 결과값 추적
factorial(4)같은 거. 종이에 콜스택 그려야 풀려요.
Java 단골 함정 3개
- 오버라이딩 vs 오버로딩 — 부모 클래스 메서드를 자식이 재정의(오버라이딩) vs 같은 이름 다른 매개변수(오버로딩)
- 상속 + 생성자 호출 순서 — 부모 생성자가 먼저, 자식이 나중
- 예외 처리 try/catch/finally — finally는 예외가 나든 안 나든 무조건 실행
Python 단골 함정 3개
- 슬라이싱 —
a[1:4]는 인덱스 1, 2, 3 (4는 미포함) - 리스트 vs 튜플 —
[]는 변경 가능,()는 변경 불가 - 딕셔너리 키·값 —
d['key']로 값 꺼냄
3단계 (4–5주차): 기출 코드만 30개 트레이스
비전공자가 절대 하지 말아야 할 것 — 개념서로 공부 더 하기. 4과목은 이제 기출만 봅니다.
- 최근 3개년 6개 회차 × 4과목 코드 문제 5개씩 = 약 30개
- 한 문제당 종이에 변수 변화 추적 (i=0→1→2..., a=5→10...)
- 답을 봐도 좋아요. 틀려도 좋고, 답을 보고 따라가면서 "왜 그렇게 되는지" 만 이해하면 됩니다
30개 트레이스 끝나면 4과목 모의고사 점수가 30점대에서 50–60점대로 올라옵니다. 이게 비전공자 합격 라인이에요.
시험장 시간 배분 — 4과목은 마지막에
CBT 시험은 100문제를 150분 안에 풀어야 해요. 비전공자는 4과목을 가장 마지막에 푸는 게 정답입니다.
이유는 두 가지예요.
- 4과목 코드 문제는 한 문제에 3–5분 걸림. 앞에 두면 시간 압박이 누적됨
- 1·2·5과목 빠르게 풀고 시간을 4과목에 몰아주면 자신 없는 코드도 차분히 트레이스할 수 있음
추천 풀이 순서:
- 5과목 (보안·신기술 — 암기 위주, 빠름) — 15분
- 1과목 (소프트웨어 설계) — 20분
- 3과목 (DB·SQL) — 25분
- 2과목 (소프트웨어 개발) — 25분
- 4과목 (프로그래밍) — 50분 ← 시간 몰아주기
- 검토 — 15분
4과목에 50분 쓴다는 건 한 문제당 평균 2.5분이에요. 코드 트레이스에 충분한 시간입니다.
"그래도 도저히 코드가 안 읽혀요" 라면
비전공자 중 5–10%는 4주차까지 가도 코드 트레이스가 안 잡히는 경우가 있어요. 이때 선택지는 두 가지입니다.
선택지 A: 4과목 50점 노리고 다른 과목으로 평균 끌어올리기
- 4과목은 8–10문제(40–50점)만 노리고 과락 회피
- 1·2·3·5과목에서 70점 이상 받아 평균 60점 만들기
- 단점: 4과목 못 푸는 5문제는 그냥 찍기라 운빨이 큼
선택지 B: 시험 한 회차 미루고 코드 기초 다지기
- 정처기 필기는 한 해 3회 시험. 한 회차 미루고 6주 더 투자
- 코딩 입문 강의 (생활코딩 C/Java) 4–6시간만 들어도 큰 차이
- 권장: 4주 공부했는데 4과목 모의고사 30점이라면 미루는 게 합리적
대부분 비전공자는 선택지 A로 합격합니다. 다만 모의고사 4과목 점수가 25점 이하로 고정되면 B를 진지하게 고려하세요.
정리
정처기 필기 4과목은 비전공자 합격을 가르는 분기점이에요.
- 1주차: 코드 읽는 법 (변수·반복·조건·함수)
- 2–3주차: 언어별 함정 패턴 11개 정리
- 4–5주차: 기출 코드 30개 트레이스
- 시험장: 4과목을 마지막에, 50분 몰아주기
- 목표 점수: 50–60점 (8–12문제 정답)
CBT 모의고사로 4과목 점수 추이 확인하면서 보강하세요. 점수가 한 회차 만에 안 오르는 게 정상이에요. 3–4회 풀면서 패턴 익히는 시간이 필요합니다.