재구성 출제 고지: 이 문제집은 국가평생교육진흥원 독학학위제 4단계 통합프로그래밍 출제기준의 평가영역(데이터베이스 프로그래밍, 웹 프로그래밍, 네트워크 프로그래밍, 자료구조 활용) 범위와 문항 유형을 분석해 새로 구성한 재구성 문항입니다. 실제 기출 문항을 그대로 옮긴 것이 아니며, 회차별 정확한 문항 수·배점·시험 시간은 시행처 공고를 확인해야 합니다. 여기서는 학습 편의를 위해 22문항을 표준 분량으로 구성했습니다.
출제 범위와 문항 배분
이 편은 13~21편(자료구조 구현, 정렬·탐색, DB·SQL, JDBC, 웹, JSP/Servlet, 소켓)에서 다룬 개념을 실행 결과 추적·코드 빈칸·짧은 구현 형태로 재확인합니다. 23편(통합 실습 ②)에서 다룬 여러 영역 연결 감각도 함께 점검합니다. SQL 예제는 이 사이트의 SQLD 과목과 문법을 맞추기 위해 Oracle 문법을 기준으로 합니다.
| 영역 | 문항 수 | 문항 번호 | 관련 편 |
|---|---|---|---|
| SQL 기본·조인 | 3 | 1–3 | 17 |
| JDBC 연동 코드 구조 | 4 | 4–7 | 18 |
| JSP·Servlet·MVC | 4 | 8–11 | 20 |
| 소켓 프로그래밍 | 4 | 12–15 | 21 |
| 자료구조 연동(스택·큐·트리·그래프) | 4 | 16–19 | 13, 14 |
| 웹 프런트 기초(HTML·CSS·JS) | 3 | 20–22 | 19 |
SQL 기본·조인 (1–3)
문제 1
다음은 EMP(사원) 테이블과 DEPT(부서) 테이블이다.
| EMPNO | ENAME | DEPTNO |
|---|---|---|
| 100 | KIM | 10 |
| 101 | LEE | 20 |
| 102 | PARK | 10 |
| DEPTNO | DNAME |
|---|---|
| 10 | SALES |
| 20 | DEV |
SELECT e.ename, d.dname
FROM emp e
JOIN dept d ON e.deptno = d.deptno
WHERE d.dname = 'SALES';문제 14지선다
위 조인 조회의 실행 결과로 조회되는 행의 개수와 이름으로 가장 적절한 것은?
문제 2
SELECT deptno, COUNT(*) AS cnt
FROM emp
GROUP BY deptno
HAVING COUNT(*) >= 2;문제 24지선다
문제 1의 EMP 테이블 데이터를 기준으로 위 GROUP BY와 HAVING을 사용한 집계 조회의 결과로 가장 적절한 것은?
문제 3
SELECT ename,
CASE
WHEN deptno = 10 THEN 'A'
ELSE 'B'
END AS grp
FROM emp
ORDER BY ename;문제 34지선다
CASE 표현식으로 부서 번호에 따라 그룹 문자를 부여하고 이름 기준으로 정렬한 위 조회 결과 순서로 가장 적절한 것은?
JDBC 연동 코드 구조 (4–7)
문제 4
import java.sql.*;
public class JdbcExample {
public static void main(String[] args) throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe", "scott", "tiger");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT ename FROM emp");
while (rs.next()) {
System.out.println(rs.getString("ename"));
}
rs.close();
stmt.close();
conn.close();
}
}문제 44지선다
위 JDBC 코드에서 Class.forName 코드가 하는 역할로 가장 적절한 것은?
문제 5
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT ename FROM emp");
while (rs.next()) {
System.out.println(rs.getString("ename"));
}문제 54지선다
ResultSet의 next 메서드를 while문의 조건으로 사용하는 방식에 대한 설명으로 가장 적절한 것은?
문제 6
다음 JDBC 코드에는 자원 정리와 관련된 문제가 있다.
Connection conn = DriverManager.getConnection(url, id, pw);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT ename FROM emp");
while (rs.next()) {
if (rs.getString("ename").equals("KIM")) {
throw new RuntimeException("stop here");
}
}
rs.close();
stmt.close();
conn.close();문제 64지선다
반복 도중 예외가 발생할 수 있는 위 코드의 자원 관리 문제로 가장 적절한 것은?
문제 7
PreparedStatement pstmt = conn.prepareStatement(
"SELECT * FROM emp WHERE ename = ?");
pstmt.setString(1, "KIM");
ResultSet rs = pstmt.executeQuery();문제 74지선다
Statement 대신 PreparedStatement와 물음표(placeholder)를 사용하는 방식의 장점으로 가장 적절한 것은?
JSP·Servlet·MVC (8–11)
문제 8
import javax.servlet.http.*;
import java.io.*;
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("Hello Servlet");
}
}문제 84지선다
위 Servlet 클래스에서 doGet 메서드가 호출되는 시점으로 가장 적절한 것은?
문제 9
<%
int count = 0;
for (int i = 0; i < 5; i++) {
count += i;
}
%>
합계: <%= count %>문제 94지선다
JSP의 스크립틀릿(scriptlet, 퍼센트 기호로 감싼 자바 코드 블록)과 표현식 태그를 사용한 위 코드의 출력 결과로 가장 적절한 것은?
문제 10
문제 104지선다
웹 애플리케이션의 MVC(Model-View-Controller) 패턴에서 각 구성 요소의 역할을 짝지은 것으로 가장 적절한 것은?
문제 11
<%
request.setAttribute("userName", "Kim");
%>
<jsp:forward page="result.jsp" />문제 114지선다
request 영역에 값을 저장한 뒤 다른 JSP로 forward(제어를 넘기는 것)하는 위 코드에 대한 설명으로 가장 적절한 것은?
소켓 프로그래밍 (12–15)
문제 12
import java.net.*;
import java.io.*;
public class EchoServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(5000);
Socket socket = serverSocket.accept();
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String line = in.readLine();
System.out.println("received: " + line);
}
}문제 124지선다
ServerSocket의 accept 메서드가 하는 동작으로 가장 적절한 것은?
문제 13
import java.net.*;
import java.io.*;
public class EchoClient {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 5000);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("hello server");
socket.close();
}
}문제 134지선다
클라이언트에서 new Socket 하고 문자열 localhost와 포트 번호 5000을 전달하는 위 코드가 의미하는 바로 가장 적절한 것은?
문제 14
문제 144지선다
TCP와 UDP 소켓 통신 방식의 차이에 대한 설명으로 가장 적절한 것은?
문제 15
Socket socket = new Socket("localhost", 5000);
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("hello");
String response = in.readLine();문제 154지선다
위 코드에서 in.readLine() 호출 지점의 동작 특성으로 가장 적절한 것은?
자료구조 연동: 스택·큐·트리·그래프 (16–19)
문제 16
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<Integer>();
stack.push(1);
stack.push(2);
stack.push(3);
stack.pop();
stack.push(4);
System.out.println(stack.peek());
}
}문제 164지선다
push, pop, peek 연산이 섞인 위 코드의 실행 과정을 단계별로 추적했을 때 마지막 peek()의 결과로 가장 적절한 것은?
문제 17
import java.util.LinkedList;
import java.util.Queue;
public class Main {
public static void main(String[] args) {
Queue<Integer> queue = new LinkedList<Integer>();
queue.offer(1);
queue.offer(2);
queue.offer(3);
queue.poll();
queue.offer(4);
System.out.println(queue.peek());
}
}문제 174지선다
큐(Queue)의 offer(삽입), poll(꺼내며 제거), peek(조회) 연산이 섞인 위 코드에서 마지막 peek()의 결과로 가장 적절한 것은?
문제 18
다음은 이진 탐색 트리(BST)에 7, 3, 9, 1, 5를 순서대로 삽입하는 과정을 나타낸다.
| 삽입 값 | 비교 과정 | 삽입 위치 |
|---|---|---|
| 7 | 트리가 비어 있음 | 루트 |
| 3 | 7보다 작음 | 7의 왼쪽 자식 |
| 9 | 7보다 큼 | 7의 오른쪽 자식 |
| 1 | 7보다 작음, 3보다 작음 | 3의 왼쪽 자식 |
| 5 | 7보다 작음, 3보다 큼 | 3의 오른쪽 자식 |
문제 184지선다
위 표와 같이 만들어진 이진 탐색 트리를 중위 순회(in-order traversal, 왼쪽-루트-오른쪽 순서로 방문)했을 때 방문 순서로 가장 적절한 것은?
문제 19
다음은 정점 A, B, C, D와 간선 A-B, A-C, B-D, C-D로 이루어진 그래프를 인접 리스트로 표현한 것이다.
| 정점 | 인접한 정점 목록 |
|---|---|
| A | B, C |
| B | A, D |
| C | A, D |
| D | B, C |
문제 194지선다
A에서 시작해 너비 우선 탐색(BFS, Breadth-First Search)을 수행할 때, 각 정점의 인접 목록에 나열된 순서대로 방문한다고 가정하면 방문 순서로 가장 적절한 것은?
웹 프런트 기초: HTML·CSS·JS (20–22)
문제 20
<form action="/register" method="post">
<input type="text" name="userName" />
<input type="submit" value="가입" />
</form>문제 204지선다
위 form 요소에서 method 속성을 post로 지정했을 때의 동작으로 가장 적절한 것은?
문제 21
.box {
width: 100px;
padding: 10px;
border: 5px solid black;
margin: 20px;
}문제 214지선다
CSS 박스 모델(box model)에서 위 클래스가 적용된 요소가 차지하는 전체 너비(기본 box-sizing 기준)에 대한 설명으로 가장 적절한 것은?
문제 22
<button id="btn">클릭</button>
<p id="msg"></p>
<script>
var count = 0;
document.getElementById("btn").addEventListener("click", function () {
count = count + 1;
document.getElementById("msg").innerText = "클릭 횟수: " + count;
});
</script>문제 224지선다
버튼에 addEventListener로 클릭 이벤트를 등록한 위 JavaScript 코드에서 버튼을 세 번 클릭했을 때 p 요소에 표시되는 최종 내용으로 가장 적절한 것은?
참고 자료
Last updated on