본문 바로가기
  • 코딩, 허쌤이 떠먹여 줄게
BackEnd/정보처리기사

정보처리기사 실기 — 03 데이터 입출력 구현 정리

by 허쌤 2026. 4. 20.

정보처리기사 실기 — 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/ROLLBACKTCL(Transaction Control Language)로 따로 두기도 합니다.


3. DML 핵심(실기 코드·서술)

SELECT

  • WHERE, GROUP BY, HAVING, ORDER BY 순서 암기
  • 논리 연산자 우선순위: AND > OR (괄호로 의도 명확히)
  • JOIN: INNER, LEFT/RIGHT/FULL OUTER, 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 InjectionPreparedStatement(바인딩) 관계
  • 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·일반 교재 구성을 바탕으로 학습용으로 정리한 것이며, 시험 공고·출제 범위는 매년 한국산업인력공단 공식 안내를 확인하세요.