정보처리기사 실기: 필답형 100점, 코드·SQL·설계를 직접 쓴다
정보처리기사 실기는 객관식이 아니라 필답형(주관식) 100점 만점 시험이며, 60점 이상이면 합격이다. 시험시간은 150분이고 문항 수는 회차마다 다르지만 대체로 1220문항, 문항당 410점 배점이다. 답은 짧은 단어·숫자·코드 출력값으로 요구되는 경우가 많고, 서술형은 채점 키워드가 미리 정해져 있다고 보고 답안을 구성해야 한다.
출제 축 다섯 가지
- 프로그래밍 언어: C, Java, Python으로 작성된 코드의 실행 결과와 빈칸 채우기. 포인터, 상속과 오버라이딩, 예외, 자료구조가 단골이다.
- SQL: DDL/DML, JOIN, GROUP BY와 HAVING, 서브쿼리, 집계 함수, 뷰.
- 데이터베이스 설계: 정규화, 이상(Anomaly), 키, 트랜잭션, 인덱스.
- 업무 프로세스: 요구사항 확인, 화면 설계, 애플리케이션 테스트(경계값 분석·동등 분할), 인터페이스 구현, 배치 스케줄.
- 신기술·보안: REST, 마이크로서비스, 클라우드, 형상관리, 암호화 방식.
코드 문제 예시
다음 Java 코드의 출력값을 구해 보자. class A { int f(){ return 1; } int g(){ return f()+1; } }이고 class B extends A { int f(){ return 2; } }일 때 new B().g()의 값은? g()는 A에 정의되어 있지만 그 안에서 호출되는 f()는 실제 객체 타입(B) 기준으로 결정된다(동적 바인딩). 따라서 f()는 2를 반환하고 결과는 3이다. 만약 f()가 static 메서드였다면 정적 타입 기준으로 A의 f()가 호출되어 결과가 2가 된다.
SQL과 서술형 규칙
SELECT 문은 FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY 순으로 평가된다. WHERE 절에는 집계 함수를 쓸 수 없고, 집계 결과에 대한 조건은 HAVING에 쓴다. NULL은 = NULL이 아니라 IS NULL로 비교한다. 용어 약술은 "정의 + 목적 + 간단한 예" 구조로 2~3문장을 채워야 키워드 점수를 받는다.
감점 함정
- 출력값만 쓰라고 했는데 계산 과정을 길게 서술해 답으로 인정되지 않는 경우
- C 문자열 배열에서 널 문자(
\0)를 포함한 크기 계산 - Python 슬라이싱
a[1:4]가 4번 인덱스를 포함하지 않는다는 점 - Java의 static 메서드는 오버라이딩되지 않고 숨겨진다는 점
- SQL 결과에서 DISTINCT 적용 여부와 NULL 처리