Skip to Content
독학사독학사 4단계통합프로그래밍23. 기출 분석 ①: 평가영역·문항 유형·난이도 흐름 읽기

이번 문서의 목표: 이 문서를 다 읽으면 통합프로그래밍 4단계 시험이 어떤 평가영역을 어떤 비중으로, 어떤 문항 유형(실행 결과 추적·오류 찾기·빈칸 채우기)으로 묻는지 파악하고, 전체 범위를 아우르는 재구성 문제로 자신의 취약 영역을 점검할 수 있다.

이 문서의 문제는 실제 기출 문제를 그대로 옮긴 것이 아니다. 국가평생교육진흥원이 공개한 통합프로그래밍 평가영역(출제기준)을 근거로, 06~23편에서 다룬 개념 범위 안에서 새로 재구성한 연습 문제다. 연도별 실제 기출 문항 수·배점·난이도는 매 회차 공고로 반드시 다시 확인해야 한다.

01편에서 4단계 시험 방식(총점합격제·과목별합격제)과 평가영역 개관을 다뤘다. 이 편에서는 그 평가영역을 실제 문제 유형과 연결해 “어디에 시간을 더 써야 하는지”를 정리하고, 06~23편 전체 범위를 아우르는 재구성 문제로 마무리 점검을 한다.

평가영역별 출제 비중 감 잡기

쉽게 말하면: 통합프로그래밍은 한 과목처럼 보이지만 사실 C·Java·자료구조·DB·웹·네트워크 여섯 영역이 섞인 종합 시험이므로, 영역별로 공부 시간을 미리 배분해야 한다.

교재·합격 후기 자료를 종합하면, 통합프로그래밍은 대략 다음과 같은 비중으로 출제 영역이 나뉜다고 알려져 있다. 정확한 문항 수·배점은 회차 공고로 확인해야 하므로, 아래 비중은 “학습 시간 배분의 감”을 잡는 용도로만 참고한다.

평가영역(대분류)관련 편체감 비중대표 문항 유형
C 언어(배열·포인터·구조체·파일 I/O)06–08, 22높음실행 결과 추적, 포인터 오류 찾기
Java·객체지향(상속·다형성·예외·컬렉션)09–12, 23높음실행 결과 추적, 설계형 서술
자료구조·알고리즘(스택·큐·트리·그래프·정렬·탐색)13–15, 22중간–높음단계별 상태 추적, 복잡도 판단
GUI·이벤트 처리16낮음개념 확인형 객관식
데이터베이스·JDBC17–18, 23중간SQL 결과 예측, 코드 빈칸 채우기
웹 프로그래밍(HTML/CSS/JS·JSP/Servlet)19–20, 23중간흐름 순서 배열, 개념 비교
네트워크 프로그래밍(소켓)21, 23낮음–중간개념 비교, 코드 빈칸 채우기

이 표에서 “높음”으로 표시된 C·Java·자료구조 영역이 사실상 시험의 근간이다. 22·23편의 통합 실습이 바로 이 영역들을 조합한 문제 유형을 미리 연습하도록 설계된 이유이기도 하다.

문항 유형 네 갈래

쉽게 말하면: 통합프로그래밍은 지식을 묻기보다 “코드를 읽고 무슨 일이 일어나는지” 묻는 시험이다.

  • 실행 결과 추적형: 코드를 주고 최종 출력(또는 특정 시점의 변수 값)을 묻는다. 이 문서와 22·23편에서 계속 연습한 “변수 값 표”가 그대로 풀이 도구가 된다.
  • 오류 찾기·수정형: 의도한 동작과 다르게 동작하는 코드를 주고 원인과 수정 방법을 묻는다. call by value/포인터 혼동, 검사 예외 미처리, 인덱스 범위 초과가 단골 소재다.
  • 빈칸 채우기형: 코드 일부를 비워 두고 문맥상 들어갈 코드·값을 추론하게 한다. 앞뒤 코드의 자료형·조건을 근거로 답을 좁혀 나가야 한다.
  • 개념 비교·서술형: “A와 B의 차이”, “이 상황에서 어떤 개념이 적용되는가”를 묻는다. 객관식으로 나올 수도, 주관식 서술로 나올 수도 있다.

난이도 흐름 읽기

시험 전체를 놓고 보면 난이도는 대체로 다음 순서로 올라간다고 알려져 있다.

학습 순서(06~23편)와 시험장에서의 풀이 순서를 다르게 가져가는 것도 전략이 된다. 즉 공부는 개념부터 통합까지 순서대로 하되, 실제 시험에서는 자신 있는 영역의 문제부터 먼저 풀어 확실한 점수를 확보하는 방식이 합격 후기에서 자주 언급된다.

재구성 연습 문제

아래 문제들은 06~23편에서 다룬 개념을 영역별로 골고루 재구성한 것이다. 정답 위치는 모두 최종 검토 시 옵션 배열의 실제 순서와 대조해 확인했다.

마무리 복습

문제 14지선다
C 코드에서 int a = 5, b = 2로 선언한 뒤 a를 b로 나눈 값(a / b)을 정수로 출력했을 때 그 값은?
문제 24지선다
포인터 변수 p가 정수형 배열 arr의 첫 원소를 가리키고 있을 때, arr의 두 번째 원소 값을 얻는 표현으로 옳은 것은? (역참조 연산자는 asterisk 기호를 사용)
문제 34지선다
다음 자바 코드의 출력 결과는?
class A {
  void show() {
    System.out.println("부모");
  }
}

class B extends A {
  void show() {
    System.out.println("자식");
  }
}

A obj = new B();
obj.show();
문제 44지선다
배열 기반 큐에서 FIFO(선입선출) 구조를 올바르게 설명한 것은?
문제 54지선다
이진 탐색(binary search)이 정상적으로 동작하기 위한 전제 조건으로 옳은 것은?
문제 64지선다
member 테이블에서 point가 500보다 크고 1000 이하인 행의 name을 조회하는 SQL을 실행했을 때, 결과에 포함되는 행의 조건으로 옳은 것은?
문제 74지선다
JDBC 코드에서 ResultSet, PreparedStatement, Connection을 try-with-resources 구문의 괄호 안에 선언했을 때 얻는 이점으로 옳은 것은?
문제 84지선다
서블릿에서 HTTP GET 요청이 들어왔을 때 컨테이너가 자동으로 호출하는 메서드는?
문제 94지선다
TCP 소켓 통신에서 서버 쪽 accept 메서드의 동작 특성으로 옳은 것은?
문제 104지선다
다음 C 함수 호출에서 원본 변수의 값을 변경하려면 반드시 필요한 것은? void changeValue(int x) 함수가 x = 100으로 값을 바꾸는 코드일 때, main의 원본 변수를 실제로 바꾸려면?
문제 114지선다
다음 중 검사 예외(checked exception)에 해당하는 것은?
문제 124지선다
다음 C 코드에서 malloc으로 할당한 메모리를 free하지 않고 함수가 종료되면 발생하는 문제로 옳은 것은?
문제 134지선다
다음 재귀 함수 호출 fibo(4)에서 fibo(n)이 fibo(n마이너스1) 더하기 fibo(n마이너스2)로 정의되고 fibo(0)과 fibo(1)이 모두 1을 반환할 때, fibo(4)의 결과는?
문제 144지선다
선택 정렬(selection sort)에 대한 설명으로 옳지 않은 것은?
문제 154지선다
다음 중 이진 트리의 순회 방식과 방문 순서 설명이 잘못 짝지어진 것은?
문제 164지선다
다음 자바 코드에서 발생하는 예외의 종류로 옳은 것은?
int[] arr = new int[3];
System.out.println(arr[3]);
문제 174지선다
추상 클래스와 인터페이스에 대한 설명으로 옳지 않은 것은?
문제 184지선다
HTML 폼에서 method 속성을 POST로 설정했을 때의 특징으로 옳은 것은?
문제 194지선다
다음 자바 코드의 컬렉션 사용에 대한 설명으로 옳은 것은? List 목록 = new ArrayList(); 목록에 순서대로 원소를 추가하고 반복문으로 꺼낼 때
문제 204지선다
다음 중 UDP 기반 통신에 가장 적합한 상황으로 옳은 것은?
문제 214지선다
자바 GUI 프로그래밍에서 이벤트 리스너(event listener)의 역할에 대한 설명으로 옳은 것은?
문제 224지선다
다음과 같은 그래프를 인접 리스트로 표현했다고 할 때(정점 A는 B, C와 연결, B는 A, D와 연결, C는 A와 연결, D는 B와 연결), 정점 A에서 시작한 너비 우선 탐색(BFS)의 방문 순서로 옳은 것은?

참고 자료

Last updated on