1. 정보처리기사 실기 시험 구조와 전체 범위
정보처리기사 실기는 소프트웨어 개발 전체 흐름을 평가하는 필답형 시험이다. 요구사항, DB, SQL, 프로그래밍, 보안, 테스트, 패키징까지 범위를 이해하고 직접 답을 쓰는 연습이 필요하다.
# 정보처리기사 실기 시험 구조와 전체 범위
1. 정의
정보처리기사 실기는 소프트웨어 개발 실무 능력을 평가하는 시험이다.
정보처리기사는 국가기술자격이다. 정보 시스템을 분석하고, 설계하고, 개발하고, 테스트하고, 운영할 수 있는 능력을 평가한다.
여기서 정보 시스템은 데이터를 처리하는 프로그램과 서비스를 말한다. 예를 들면 쇼핑몰, 병원 예약 시스템, 은행 앱, 게시판, 회사 업무 시스템이 모두 정보 시스템이다.
정보처리기사 시험은 크게 필기와 실기로 나뉜다.
필기는 객관식 시험이다. 개념을 알고 있는지 확인한다.
실기는 필답형 시험이다. 필답형은 직접 답을 적는 시험이다. 보기에서 고르는 방식이 아니다.
정보처리기사 실기에서는 다음과 같은 문제가 나온다.
용어를 쓰는 문제
개념을 설명하는 문제
SQL 결과를 구하는 문제
프로그램 코드 실행 결과를 구하는 문제
보안 취약점을 묻는 문제
테스트 기법을 묻는 문제
개발 절차와 산출물을 묻는 문제
즉, 정보처리기사 실기는 단순 암기 시험이 아니다. 소프트웨어 개발 전체 흐름을 알고 있어야 한다.
---
2. 필요한 이유
정보처리기사 실기 시험 구조를 먼저 알아야 하는 이유는 공부 범위가 넓기 때문이다.
실기 범위에는 개발, 데이터베이스, SQL, 보안, 테스트, 운영체제, 네트워크, 프로그래밍 언어가 모두 들어간다.
처음부터 전체 구조를 모르면 다음 문제가 생긴다.
첫째, 무엇부터 공부해야 하는지 모른다. 둘째, 중요한 부분과 덜 중요한 부분을 구분하지 못한다. 셋째, 용어를 따로 외우기만 하고 실제 개발 흐름과 연결하지 못한다. 넷째, 코드 문제와 SQL 문제에서 점수를 잃기 쉽다.
실제 개발에서도 전체 구조 이해는 중요하다.
프로그램 하나를 만든다고 가정한다.
먼저 사용자가 원하는 기능을 정리해야 한다. 이것이 요구사항 확인이다.
그다음 화면을 설계한다. 이것이 화면 설계다.
데이터를 저장할 구조를 만든다. 이것이 데이터입출력 구현이다.
서버에서 동작하는 기능을 만든다. 이것이 서버프로그램 구현이다.
다른 시스템과 연결한다. 이것이 인터페이스 구현과 통합 구현이다.
기능이 제대로 동작하는지 확인한다. 이것이 애플리케이션 테스트 관리다.
보안 문제가 없는지 확인한다. 이것이 소프트웨어 개발 보안 구축이다.
완성된 프로그램을 배포한다. 이것이 제품 소프트웨어 패키징이다.
정보처리기사 실기 범위는 이 개발 흐름 전체를 다룬다.
---
3. 핵심 개념
3-1. 필답형
필답형은 답을 직접 쓰는 시험 방식이다.
객관식처럼 보기에서 고르는 것이 아니다. 정확한 용어를 직접 작성해야 한다.
예를 들면 다음과 같은 방식이다.
문제: 데이터베이스에서 데이터 중복을 줄이기 위해 테이블을 분해하는 과정은? 답: 정규화
이런 문제는 용어를 정확히 알아야 맞힐 수 있다.
---
3-2. 단답형
단답형은 짧은 답을 쓰는 문제다.
보통 용어, 약어, 명령어, 개념 이름을 묻는다.
예시는 다음과 같다.
SQL
DDL
DML
정규화
트랜잭션
캡슐화
다형성
SQL Injection
XSS
단답형은 정확한 키워드가 중요하다.
---
3-3. 약술형
약술형은 개념을 짧게 설명하는 문제다.
단어만 쓰는 것이 아니라 뜻을 간단히 풀어서 써야 한다.
예를 들면 다음과 같다.
문제: 트랜잭션의 원자성을 설명하시오. 답: 트랜잭션의 연산이 모두 수행되거나 모두 수행되지 않아야 하는 성질이다.
약술형은 핵심 단어를 포함해서 짧게 쓰는 연습이 필요하다.
---
3-4. 서술형
서술형은 개념, 절차, 특징을 문장으로 설명하는 문제다.
약술형보다 답이 길 수 있다. 하지만 불필요하게 길게 쓰면 안 된다.
실기 답안은 짧고 정확해야 한다.
---
3-5. 코드형 문제
코드형 문제는 프로그램 코드를 보고 실행 결과를 구하는 문제다.
주로 C, Java, Python 코드가 나온다.
예를 들면 다음을 묻는다.
출력 결과
반복문 실행 횟수
배열 값 변화
변수 값 변화
상속 코드 실행 결과
포인터 결과
코드형 문제는 암기보다 추적이 중요하다. 추적은 코드가 실행되는 순서를 따라가며 값을 확인하는 것이다.
---
3-6. SQL 문제
SQL 문제는 데이터베이스 명령어를 묻는 문제다.
SQL은 데이터베이스에서 데이터를 조회, 추가, 수정, 삭제할 때 사용하는 언어다.
실기에서는 다음 내용이 자주 나온다.
SELECT
INSERT
UPDATE
DELETE
JOIN
GROUP BY
HAVING
서브쿼리
트랜잭션
정규화
SQL은 직접 결과를 구하는 문제가 많다. 문법만 외우면 부족하다. 테이블 데이터를 보고 결과 행을 직접 계산할 수 있어야 한다.
---
3-7. 출제 범위
정보처리기사 실기 범위는 소프트웨어 개발 전체 영역으로 구성된다.
주요 범위는 다음과 같다.
요구사항 확인
데이터입출력 구현
통합 구현
서버프로그램 구현
인터페이스 구현
화면 설계
애플리케이션 테스트 관리
SQL 응용
소프트웨어 개발 보안 구축
프로그래밍 언어 활용
응용SW기초 기술 활용
제품 소프트웨어 패키징
각 범위는 따로 떨어진 개념이 아니다. 실제 개발 흐름으로 연결된다.
---
4. 주변 기초 개념
4-1. 소프트웨어
소프트웨어는 컴퓨터에서 실행되는 프로그램이다.
예를 들면 웹사이트, 앱, 게임, 업무 시스템, 운영체제가 있다.
정보처리기사에서 말하는 소프트웨어는 주로 업무용 프로그램을 의미한다.
---
4-2. 시스템
시스템은 여러 구성 요소가 모여 하나의 목적을 수행하는 구조다.
예를 들면 쇼핑몰 시스템은 다음 요소로 구성된다.
사용자 화면
상품 데이터
주문 기능
결제 기능
배송 기능
관리자 기능
데이터베이스
서버
이 요소들이 연결되어 하나의 쇼핑몰 시스템이 된다.
---
4-3. 서버
서버는 요청을 받아 처리하고 결과를 돌려주는 컴퓨터 또는 프로그램이다.
예를 들면 사용자가 로그인 버튼을 누르면 서버는 아이디와 비밀번호를 확인한다. 확인이 끝나면 로그인 성공 또는 실패 결과를 돌려준다.
---
4-4. 클라이언트
클라이언트는 서버에 요청을 보내는 쪽이다.
웹 브라우저, 모바일 앱, PC 프로그램이 클라이언트가 될 수 있다.
사용자가 보는 화면은 대부분 클라이언트 영역이다.
---
4-5. 데이터베이스
데이터베이스는 데이터를 체계적으로 저장하는 공간이다.
회원 정보, 게시글, 주문 내역, 결제 내역 같은 데이터를 저장한다.
DB라고 줄여 부른다.
---
4-6. DBMS
DBMS는 데이터베이스를 관리하는 소프트웨어다.
DBMS는 Database Management System의 약자다.
대표적인 DBMS는 다음과 같다.
Oracle
MySQL
MariaDB
PostgreSQL
SQL Server
데이터베이스가 창고라면 DBMS는 창고 관리 프로그램이다.
---
4-7. API
API는 프로그램끼리 데이터를 주고받기 위한 약속이다.
API는 Application Programming Interface의 약자다.
예를 들면 날씨 앱은 기상청 API에서 날씨 데이터를 받아올 수 있다. 쇼핑몰은 결제 API를 통해 카드 결제를 처리할 수 있다.
---
4-8. 테스트
테스트는 프로그램이 제대로 동작하는지 확인하는 작업이다.
예를 들면 로그인 기능을 만들었다면 다음을 확인해야 한다.
올바른 비밀번호를 입력하면 로그인되는가
틀린 비밀번호를 입력하면 실패하는가
빈 값을 입력하면 오류 메시지가 나오는가
탈퇴한 계정으로 로그인할 수 없는가
---
4-9. 보안
보안은 시스템과 데이터를 안전하게 보호하는 것이다.
개발에서 보안은 매우 중요하다. 회원 정보, 비밀번호, 결제 정보가 외부에 노출되면 큰 문제가 된다.
정보처리기사 실기에서는 SQL Injection, XSS, 암호화, 인증, 접근 제어 같은 개념이 자주 나온다.
---
4-10. 패키징
패키징은 완성된 소프트웨어를 사용자가 설치하거나 운영할 수 있도록 묶는 작업이다.
단순히 파일을 압축하는 것만 의미하지 않는다.
패키징에는 다음 내용이 포함된다.
실행 파일 구성
설치 파일 구성
배포 문서 작성
릴리즈 노트 작성
사용자 매뉴얼 작성
버전 관리
라이선스 관리
---
5. 실제 흐름
정보처리기사 실기 범위는 실제 소프트웨어 개발 흐름으로 이해하면 쉽다.
예시로 게시판 시스템을 만든다고 가정한다.
5-1. 요구사항 확인
먼저 사용자가 원하는 기능을 정리한다.
예를 들면 다음과 같다.
회원은 글을 작성할 수 있다.
회원은 글을 수정할 수 있다.
회원은 글을 삭제할 수 있다.
비회원은 글 목록만 볼 수 있다.
관리자는 부적절한 글을 삭제할 수 있다.
이 단계에서 요구사항을 잘못 정리하면 개발 결과가 달라진다.
---
5-2. 화면 설계
요구사항을 바탕으로 화면을 설계한다.
예를 들면 다음 화면이 필요하다.
로그인 화면
게시글 목록 화면
게시글 상세 화면
게시글 작성 화면
게시글 수정 화면
관리자 화면
화면 설계에서는 사용자가 어떤 순서로 화면을 이동하는지도 정리한다.
---
5-3. 데이터입출력 구현
게시판 데이터를 저장할 구조를 만든다.
예를 들면 다음 테이블이 필요하다.
회원 테이블
게시글 테이블
댓글 테이블
첨부파일 테이블
데이터입출력 구현은 데이터를 어떻게 저장하고 조회할지 정하는 영역이다.
---
5-4. SQL 응용
데이터베이스에 저장된 데이터를 다루기 위해 SQL을 사용한다.
예를 들면 다음 작업을 한다.
게시글 목록 조회
게시글 상세 조회
게시글 등록
게시글 수정
게시글 삭제
댓글 개수 조회
SQL을 모르면 데이터베이스와 연결된 기능을 구현하기 어렵다.
---
5-5. 서버프로그램 구현
서버에서 실제 기능을 만든다.
예를 들면 사용자가 글 작성 버튼을 누르면 서버는 다음 작업을 한다.
1. 로그인한 사용자인지 확인한다.
2. 제목과 내용을 검사한다.
3. 데이터베이스에 게시글을 저장한다.
4. 저장 결과를 사용자에게 알려준다.
이런 기능을 서버프로그램이라고 한다.
---
5-6. 인터페이스 구현
다른 시스템과 연결해야 할 수도 있다.
예를 들면 다음과 같다.
파일 업로드 서버와 연결
문자 발송 API와 연결
결제 API와 연결
외부 로그인 API와 연결
인터페이스 구현은 시스템 간 데이터 교환을 만드는 작업이다.
---
5-7. 통합 구현
각각 만든 기능을 하나로 연결한다.
로그인 기능, 게시글 기능, 댓글 기능, 파일 업로드 기능이 따로 있으면 사용자는 하나의 게시판처럼 사용할 수 없다.
이 기능들을 연결하는 과정이 통합 구현이다.
---
5-8. 애플리케이션 테스트 관리
기능이 제대로 동작하는지 확인한다.
예를 들면 다음을 테스트한다.
로그인하지 않은 사용자가 글을 작성할 수 없는가
작성자는 자기 글을 수정할 수 있는가
다른 사용자는 남의 글을 수정할 수 없는가
삭제된 글은 목록에 보이지 않는가
테스트는 오류를 찾기 위한 과정이다.
---
5-9. 소프트웨어 개발 보안 구축
보안 취약점이 없는지 확인한다.
예를 들면 다음을 확인한다.
비밀번호가 암호화되어 저장되는가
SQL Injection 공격을 막는가
XSS 공격을 막는가
권한 없는 사용자가 관리자 기능에 접근할 수 없는가
보안은 개발 마지막에만 하는 작업이 아니다. 개발 전체 과정에서 계속 확인해야 한다.
---
5-10. 제품 소프트웨어 패키징
완성된 프로그램을 배포할 수 있게 정리한다.
예를 들면 다음 작업을 한다.
실행 파일 정리
배포 파일 구성
버전 번호 작성
릴리즈 노트 작성
설치 매뉴얼 작성
사용자 매뉴얼 작성
이 단계까지 끝나야 실제 운영할 수 있다.
---
6. 예시
아래 예시는 게시판 글 목록을 조회하는 간단한 SQL이다.
SELECT id, title, writer, created_at
FROM posts
WHERE deleted = 'N'
ORDER BY created_at DESC;이 SQL은 삭제되지 않은 게시글 목록을 최신순으로 조회한다.
---
7. 코드 또는 설정 설명
SELECT id, title, writer, created_atSELECT는 조회할 컬럼을 지정하는 명령어다. 컬럼은 테이블에서 세로 방향의 데이터 항목이다.
여기서는 다음 컬럼을 조회한다.
id: 게시글 번호
title: 게시글 제목
writer: 작성자
created_at: 작성일
---
FROM postsFROM은 데이터를 가져올 테이블을 지정한다.
posts는 게시글 정보를 저장하는 테이블이라고 가정한다.
---
WHERE deleted = 'N'WHERE는 조건을 지정한다.
deleted는 삭제 여부를 저장하는 컬럼이다. 'N'은 삭제되지 않았다는 의미로 사용했다.
즉, 삭제되지 않은 게시글만 조회한다.
---
ORDER BY created_at DESC;ORDER BY는 정렬 기준을 지정한다.
created_at은 작성일이다. DESC는 내림차순이다.
내림차순은 큰 값부터 작은 값 순서로 정렬하는 것이다. 날짜에서는 최신 날짜가 먼저 나온다.
즉, 최신 게시글이 위에 나오게 된다.
---
8. 주의점
8-1. 실기는 단순 암기가 아니다
정보처리기사 실기는 용어 암기가 필요하다. 하지만 용어만 외우면 코드형 문제와 SQL 문제에서 막힌다.
개념을 실제 개발 흐름과 연결해야 한다.
예를 들면 정규화를 외울 때는 정의만 외우면 부족하다. 왜 테이블을 분리하는지 알아야 한다.
---
8-2. 필기와 실기는 다르다
필기는 보기에서 고르는 시험이다. 실기는 직접 쓰는 시험이다.
필기에서는 비슷한 답을 보고 고를 수 있다. 실기에서는 정확한 용어가 떠오르지 않으면 답을 쓰기 어렵다.
따라서 실기는 직접 써보는 연습이 필요하다.
---
8-3. 코드 문제는 손으로 추적해야 한다
코드 문제는 눈으로만 보면 실수하기 쉽다.
반복문, 배열, 포인터, 객체지향 코드는 값을 직접 적으면서 따라가야 한다.
특히 다음 부분을 주의해야 한다.
반복문 시작값
반복문 종료 조건
증감 연산자
배열 인덱스
함수 호출 순서
재귀 호출 순서
---
8-4. SQL은 실행 결과를 구할 수 있어야 한다
SQL 문법을 외우는 것만으로는 부족하다.
테이블 데이터가 주어졌을 때 결과가 어떻게 나오는지 계산해야 한다.
특히 다음 개념은 직접 문제를 풀어야 한다.
JOIN
GROUP BY
HAVING
서브쿼리
집계 함수
정렬
중복 제거
---
8-5. 비슷한 용어를 구분해야 한다
정보처리기사 실기에는 비슷한 용어가 많다.
예를 들면 다음과 같다.
인증과 인가는 다르다.
인증은 사용자가 누구인지 확인하는 것이다. 인가는 사용자가 어떤 기능을 사용할 수 있는지 확인하는 것이다.
오류, 결함, 장애도 다르다.
오류는 사람이 잘못 판단하거나 잘못 작성한 것이다. 결함은 소프트웨어 안에 들어간 문제다. 장애는 실행 중 실제로 문제가 발생한 상태다.
---
8-6. 범위를 버리면 안 된다
출제 비중이 높은 영역은 우선순위가 높다. 하지만 낮은 영역도 완전히 버리면 안 된다.
정보처리기사 실기는 범위가 넓다. 짧은 단답형으로 낮은 비중 영역이 나올 수 있다.
따라서 모든 범위를 한 번은 정리해야 한다.
---
9. 요약
정보처리기사 실기는 소프트웨어 개발 실무 능력을 평가하는 필답형 시험이다.
시험 범위는 요구사항 확인부터 패키징까지 개발 전체 흐름을 포함한다.
중요한 영역은 프로그래밍 언어, SQL, 데이터베이스, 보안, 테스트, 운영체제, 네트워크다.
실기에서는 용어를 직접 써야 한다. 코드 실행 결과도 구해야 한다. SQL 결과도 계산해야 한다.
따라서 공부할 때는 단순 암기보다 흐름 이해가 중요하다.
좋은 학습 순서는 다음과 같다.
1. 시험 구조 파악
2. 전체 범위 확인
3. 개발 흐름 이해
4. 핵심 용어 암기
5. SQL 문제 풀이
6. 코드 문제 풀이
7. 보안과 테스트 정리
8. 기출 문제 반복
---
10. 핵심 용어 정리
정보처리기사 = 정보 시스템의 분석, 설계, 개발, 테스트, 운영 능력을 평가하는 국가기술자격
실기 = 실제 업무 능력을 직접 답안으로 평가하는 시험
필답형 = 답을 직접 작성하는 시험 방식
단답형 = 짧은 용어나 답을 쓰는 문제 유형
약술형 = 개념을 짧게 설명하는 문제 유형
서술형 = 개념이나 절차를 문장으로 설명하는 문제 유형
코드형 문제 = 프로그램 코드를 보고 실행 결과를 구하는 문제
SQL = 데이터베이스에서 데이터를 조회, 추가, 수정, 삭제할 때 사용하는 언어
데이터베이스 = 데이터를 체계적으로 저장하는 공간
DBMS = 데이터베이스를 관리하는 소프트웨어
요구사항 = 사용자가 원하는 기능이나 조건
요구사항 확인 = 개발 전에 필요한 기능과 조건을 정리하고 검토하는 작업
화면 설계 = 사용자가 보는 화면의 구조와 흐름을 설계하는 작업
데이터입출력 구현 = 데이터를 저장하고 조회하는 구조를 만드는 작업
서버프로그램 구현 = 서버에서 동작하는 기능을 만드는 작업
인터페이스 = 시스템끼리 데이터를 주고받기 위한 연결 방식
통합 구현 = 따로 만든 기능이나 시스템을 하나로 연결하는 작업
테스트 = 프로그램이 제대로 동작하는지 확인하는 작업
보안 = 시스템과 데이터를 안전하게 보호하는 작업
패키징 = 완성된 소프트웨어를 배포할 수 있도록 구성하는 작업
API = 프로그램끼리 기능이나 데이터를 주고받기 위한 약속
서버 = 요청을 처리하고 결과를 돌려주는 컴퓨터 또는 프로그램
클라이언트 = 서버에 요청을 보내는 사용자 쪽 프로그램
정규화 = 데이터 중복을 줄이기 위해 테이블을 정리하는 과정
트랜잭션 = 데이터베이스에서 하나의 작업 단위로 처리되는 연산 묶음
인증 = 사용자가 누구인지 확인하는 절차
인가 = 사용자가 어떤 기능을 사용할 권한이 있는지 확인하는 절차
SQL Injection = 악의적인 SQL을 입력해 데이터베이스를 공격하는 기법
XSS = 웹페이지에 악성 스크립트를 삽입하는 공격 기법
릴리즈 노트 = 소프트웨어 배포 시 변경 사항을 정리한 문서
AD
제휴 광고
일부 링크는 제휴 링크이며, 구매 또는 가입 시 일정 수수료를 받을 수 있습니다.
AD