정보처리기사 실기 — 03 데이터 입출력 구현 정리
NCS·교재에서 통상 「Ⅲ. 데이터 입출력 구현」 또는 3장 데이터 입출력 구현으로 묶이는 범위입니다. 실기에서는 SQL 문법, 트랜잭션·ACID, JOIN·서브쿼리, JDBC(또는 DB API) 개념, SQL 인젝션·PreparedStatement, 파일·스트림 입출력 등이 코드 문제·단답으로 함께 출제되는 경우가 많습니다.
1. 이 단원이 다루는 것
| 소단원(일반적 구성) | 핵심 키워드 |
|---|---|
| SQL 활용 | DML·DDL·DCL, SELECT·INSERT·UPDATE·DELETE, JOIN, 서브쿼리, 집계, 뷰 |
| 트랜잭션·동시성 | COMMIT·ROLLBACK, ACID, 락, 동시성 제어 |
| 프로그램과 DB 연동 | JDBC(커넥션, Statement, PreparedStatement), 커넥션 풀(개념) |
| 데이터 보안·품질 | SQL Injection, 바인딩 변수, 입력 검증 |
| 파일 입출력 | 텍스트/바이너리, 스트림, 문자 인코딩, CSV·JSON 등 교환 형식 |
2. SQL 분류(DDL / DML / DCL)
| 분류 | 역할 | 예시 키워드 |
|---|---|---|
| DDL (정의) | 스키마 정의·변경 | CREATE, ALTER, DROP, TRUNCATE |
| DML (조작) | 데이터 조회·삽입·수정·삭제 | SELECT, INSERT, UPDATE, DELETE |
| DCL (제어) | 권한·트랜잭션 제어 | GRANT, REVOKE, COMMIT, ROLLBACK |
일부 교재는
COMMIT/ROLLBACK을 TCL(Transaction Control Language)로 따로 두기도 합니다.
3. DML 핵심(실기 코드·서술)
SELECT
WHERE,GROUP BY,HAVING,ORDER BY순서 암기- 논리 연산자 우선순위:
AND>OR(괄호로 의도 명확히) JOIN:INNER,LEFT/RIGHT/FULLOUTER,CROSS- 서브쿼리:
IN,EXISTS, 비교 연산자와 스칼라/다행 서브쿼리,ALL/ANY - 집계:
COUNT,SUM,AVG,MIN,MAX+GROUP BY
INSERT / UPDATE / DELETE
INSERT INTO ... VALUES (...)— 문자열·날짜 리터럴은 DBMS 규칙(예: 문자열 작은따옴표)UPDATE ... SET ... WHERE ...—WHERE누락 시 전체 행 변경 위험DELETE FROM ... WHERE ...— 마찬가지로WHERE주의
4. JOIN 정리(개념)
| 종류 | 의미(한 줄) |
|---|---|
| INNER JOIN | 양쪽 모두 키가 일치하는 행만 결과에 포함 |
| LEFT OUTER JOIN | 왼쪽 전부 + 오른쪽 일치 행(없으면 NULL) |
| RIGHT OUTER JOIN | 오른쪽 전부 + 왼쪽 일치 행 |
| FULL OUTER JOIN | 양쪽 모두 기준으로 일치 여부 합침(지원 DBMS 한정) |
| CROSS JOIN | 카티션 곱(행 수 = 좌×우) |
5. 트랜잭션(Transaction)
정의: DB의 논리적 일괄 작업 단위. 전부 성공하거나 전부 취소되는 것이 이상적.
제어: BEGIN(또는 시작 구문), COMMIT(반영 확정), ROLLBACK(변경 취소)
ACID (단답·필답 빈출)
| 특성 | 한글·의미 |
|---|---|
| A Atomicity | 원자성 — 모두 수행되거나 모두 되돌아감 |
| C Consistency | 일관성 — 규칙·무결성을 만족하는 상태 유지 |
| I Isolation | 격리성 — 동시 실행 시 서로 간섭 최소화(격리 수준·락) |
| D Durability | 지속성 — 커밋된 결과는 장애 후에도 유지 |
동시성 제어: 락(Lock), 타임스탬프, 낙관적 락 등 — “동시에 여러 트랜잭션이 있어도 일관성”을 목표로 함.
6. 응용프로그램 ↔ DB 연동(JDBC 중심 개념)
Java 기준으로 시험·교재에서 많이 다루는 흐름입니다. 다른 언어도 연결 → 문 실행 → 결과 처리 → 종료 구조는 동일합니다.
| 구성요소 | 역할 |
|---|---|
| Driver | DBMS와 통신 규약 구현 |
| Connection | DB 세션 연결 |
| Statement | SQL 실행 객체(정적 문자열) |
| PreparedStatement | 미리 컴파일 + 바인딩 변수(?) — 반복·보안에 유리 |
| ResultSet | SELECT 결과 행 단위 접근 |
| close() | 연결·자원 해제(누수·커넥션 고갈 방지) |
SQL Injection 방지: 사용자 입력을 SQL 문자열에 직접 이어붙이지 않고, PreparedStatement의 바인딩으로 처리 + 서버 측 검증.
7. CRUD와 SQL 대응
| CRUD | SQL(대표) |
|---|---|
| Create(생성) | INSERT |
| Read(조회) | SELECT |
| Update(수정) | UPDATE |
| Delete(삭제) | DELETE |
8. 파일 입출력(개념)
목적: 설정·로그·배치 데이터 등 DB 외부 저장소와의 데이터 교환.
| 구분 | 요지 |
|---|---|
| 텍스트 파일 | 사람이 읽기 쉬움, 인코딩(UTF-8 등) 지정 중요 |
| 바이너리 파일 | 이미지·압축 등 비문자 데이터 |
| 스트림 | 바이트/문자 단위로 순차 읽고 쓰는 추상화 |
| 버퍼링 | 입출력 횟수 감소로 성능 개선 |
교환 형식: CSV(표 형태), JSON/XML(구조화된 교환) — 파싱·직렬화 개념이 문제에 나올 수 있음.
주의: 경로 하드코딩, 예외 시 스트림 미종료, 대용량 전부 메모리 적재 등은 실무·서술형에서 지적 포인트가 됩니다.
9. 뷰(View)·기타(교재에 따라 3장 또는 4장)
- 뷰: 저장된 SELECT를 이름 붙인 가상 테이블 — 접근 제어·복잡 쿼리 단순화
DROP VIEW ... CASCADE등: DBMS별 문법 차이가 있으므로 기출·교재 예문 위주 복습
10. 시험 직전 체크리스트
- DDL / DML / DCL(또는 TCL) 예시 키워드 구분
-
WHERE·GROUP BY·HAVING·ORDER BY의미와 순서 - AND vs OR 우선순위, 괄호 사용 이유
- INNER vs LEFT(OUTER) JOIN 차이 한 줄
- ACID 네 글자 풀이
- COMMIT / ROLLBACK 의미
- JDBC: Connection, PreparedStatement, ResultSet 역할
- SQL Injection과 PreparedStatement(바인딩) 관계
- CRUD ↔ SQL 매핑
- 파일 입출력: 인코딩, 스트림·버퍼 개념
11. 이 저장소의 관련 자료
info/정보처리기사-2021년-1회-실기-기출문제-해설.md— 정규화·트랜잭션 인터페이스, SQL 논리연산자 등info/정보처리기사-2022년-2회-실기-복원문제-해설.md— SQL ALL 서브쿼리 등info/정보처리기사-2023년-2회-실기-복원문제-해설.md— SQL INSERT, 드라이버·스텁(입출력 제어) 맥락info/정보처리기사-2024년-1회-실기-복원문제-해설.md— 서브쿼리, 논리연산자info/정보처리기사-실기-IT용어-100문제-3탄.md— ACID, 커밋·롤백, 동시성, SQL Injection 등info/정보처리기사-실기-01-요구사항확인-정리.md,info/정보처리기사-실기-02-화면설계-정리.md— 앞 단원과 연결된 “데이터·사용성” 복습
본 문서는 NCS·일반 교재 구성을 바탕으로 학습용으로 정리한 것이며, 시험 공고·출제 범위는 매년 한국산업인력공단 공식 안내를 확인하세요.
'BackEnd > 정보처리기사' 카테고리의 다른 글
| 정보처리기사 실기 — 05 인터페이스 구현 정리 (1) | 2026.04.22 |
|---|---|
| # 정보처리기사 실기 — 04 통합구현 정리 (0) | 2026.04.21 |
| 정보처리기사 실기 — 02 화면설계 정리 (2) | 2026.04.19 |
| 정보처리기사 실기 — 01 요구사항 확인 정리 (1) | 2026.04.18 |
| 정보처리기사 실기 단답형 100제 (0) | 2026.04.16 |