본문 바로가기
카테고리 없음

정보처리기사 실기 - 2장 데이터 입출력 구현

by kik328288 2026. 5. 2.

데이터 모델링과 데이터베이스 개체 정리

정보처리기사 실기 2장 데이터 입출력 구현은 데이터베이스 설계와 운영의 실무 지식을 묻는 영역이다. 1장 요구사항 확인이 분석 단계의 절차에 초점을 맞췄다면, 2장은 그렇게 도출된 요구를 실제 데이터베이스로 구현하는 과정 전반을 다룬다. 시험에서는 데이터 모델링의 3단계 변환 규칙, 데이터베이스 주요 개체의 정의와 사용 목적, 그리고 절차형 SQL의 종류와 작성 문법이 매회 반복적으로 출제된다. 본 글은 한 글에 1~2개 핵심 원칙에 따라 모델링과 데이터베이스 개체, 그리고 절차형 SQL을 시험 답안에 직접 활용할 수 있는 정형화된 형태로 정리한다.

 

논리와 물리 데이터 모델링의 차이

데이터 모델링은 일반적으로 개념 데이터 모델링, 논리 데이터 모델링, 물리 데이터 모델링의 3단계로 진행된다. 개념 모델링은 사용자 관점에서 핵심 엔티티와 관계를 식별하는 가장 추상적인 단계이고, 논리 모델링은 이를 관계형 모델로 변환하는 단계이며, 물리 모델링은 실제 DBMS와 저장 장치에 맞춰 상세화하는 단계이다. 실기 시험에서 가장 자주 묻는 영역은 두 번째와 세 번째 단계인 논리 모델링과 물리 모델링의 변환 규칙이다.

논리 데이터 모델링은 개념 모델을 관계형 데이터 모델로 변환하는 단계이다. 이 단계에서 엔티티는 릴레이션(테이블)으로, 속성은 애트리뷰트(컬럼)로 변환되며, 식별자는 기본 키(Primary Key)로 지정된다. 일대다 관계는 다 쪽 테이블에 외래 키(Foreign Key)를 두는 형태로 표현되고, 다대다 관계는 별도의 연결 테이블(Junction Table)을 추가하는 방식으로 해소한다. 또한 정규화(Normalization)를 수행해 데이터 중복과 이상 현상을 제거하며, 일반적으로 BCNF까지 진행하는 것이 표준이다. 논리 모델링의 산출물은 특정 DBMS에 종속되지 않는 형태이므로, 어떤 관계형 DBMS를 선택하더라도 그대로 적용할 수 있다는 특징을 가진다.

물리 데이터 모델링은 논리 모델을 실제 사용할 DBMS와 하드웨어 환경에 맞춰 구체화하는 단계이다. 시험에서 자주 묻는 핵심 변환 규칙은 다음 네 가지로 정리된다. 첫째, 개체(Entity)는 테이블(Table)로 변환된다. 둘째, 속성(Attribute)은 컬럼(Column)으로 변환된다. 셋째, UID(Unique Identifier)는 기본 키(Primary Key)로 변환된다. 넷째, 관계(Relationship)는 외래 키(Foreign Key)로 변환된다. 이 네 가지 매핑은 시험 답안에서 정확히 그대로 작성할 수 있어야 하며, 추가적으로 데이터 타입 결정·인덱스 설계·파티셔닝·반정규화 같은 성능 최적화 작업도 이 단계에서 수행된다. 물리 모델링은 운영 단계에서 시스템의 성능을 좌우하는 가장 결정적인 작업이므로, 신중한 설계가 필요하다.

데이터베이스 주요 개체

데이터베이스를 운영하기 위해서는 테이블 외에도 다양한 개체(Object)가 필요하며, 각 개체는 고유한 목적과 사용 시나리오를 가진다. 정보처리기사 실기에서 가장 자주 출제되는 개체는 인덱스, 뷰, 시퀀스, 그리고 트리거이며, 각 개체의 정의와 생성 구문을 정확히 외워두어야 한다. 이 개체들은 모두 SQL의 데이터 정의어(DDL)인 CREATE 문을 통해 생성된다는 공통점이 있다.

인덱스(Index)는 테이블의 검색 성능을 향상시키기 위해 특정 컬럼에 대한 정보를 별도로 구성한 자료구조이다. 책의 색인이 본문 내 단어를 빠르게 찾도록 도와주는 것과 동일한 원리이며, B-트리·B+트리·해시 같은 자료구조가 내부적으로 사용된다. CREATE INDEX 인덱스명 ON 테이블명(컬럼명) 형식으로 생성하며, UNIQUE 키워드를 추가하면 중복을 허용하지 않는 유일 인덱스가 만들어진다. 인덱스는 SELECT 성능을 향상시키지만, 그 대가로 INSERT·UPDATE·DELETE 성능에는 부담을 주기 때문에 자주 검색되는 컬럼에 한해 선별적으로 적용해야 한다.

뷰(View)는 하나 이상의 테이블에서 유도된 가상 테이블로, 실제 데이터를 저장하지 않고 정의된 SELECT 문의 실행 결과를 보여준다. CREATE VIEW 뷰명 AS SELECT ... 형식으로 생성하며, 사용자에게는 일반 테이블처럼 보인다. 뷰는 세 가지 핵심 기능을 제공한다. 첫째, 논리적 데이터 독립성을 제공해 기본 테이블의 구조가 변경되어도 응용 프로그램에 영향을 주지 않는다. 둘째, 복잡한 조인이나 집계 쿼리를 단순한 뷰 조회로 대체할 수 있어 데이터 조작이 간소화된다. 셋째, 사용자에게 필요한 컬럼만 노출시키고 민감한 컬럼은 숨길 수 있어 보안 기능을 제공한다.

시퀀스(Sequence)는 자동으로 증가하는 일련번호를 생성하는 개체로, 주로 기본 키 값을 자동 부여할 때 사용된다. CREATE SEQUENCE 시퀀스명 START WITH 시작값 INCREMENT BY 증가값 형식으로 정의하며, 호출 시에는 시퀀스명.NEXTVAL을 사용해 다음 값을 가져오고 시퀀스명.CURRVAL로 현재 값을 조회한다. 마지막으로 트리거(Trigger)는 특정 테이블에 INSERT·UPDATE·DELETE 같은 이벤트가 발생했을 때 자동으로 실행되는 절차형 SQL이다. CREATE OR REPLACE TRIGGER 트리거명 BEFORE/AFTER 이벤트 ON 테이블명 형식으로 생성하며, 데이터 무결성 보장과 자동 로깅, 감사 추적에 폭넓게 활용된다.

절차형 SQL: 프로시저, 트리거, 사용자 정의 함수

절차형 SQL이란 일반적인 SELECT·INSERT 같은 단순한 SQL 문장 단위가 아니라, 변수 선언·조건문·반복문·예외 처리 같은 절차적 프로그래밍 요소를 포함해 작성되는 SQL을 의미한다. 데이터베이스 서버 내부에 미리 컴파일된 형태로 저장해두고 호출할 때마다 빠르게 실행할 수 있다는 강점이 있어, 반복적이고 복잡한 데이터 처리 로직을 효율적으로 구현하는 데 활용된다. 정보처리기사 실기에서 가장 자주 출제되는 절차형 SQL은 저장 프로시저, 트리거, 그리고 사용자 정의 함수 세 가지이다.

저장 프로시저(Stored Procedure)는 일련의 SQL 명령들을 하나의 절차로 묶어 데이터베이스에 저장해두고, 필요할 때 호출해 실행하는 객체이다. CREATE OR REPLACE PROCEDURE 프로시저명(매개변수) IS BEGIN ... END 형식으로 작성하며, 매개변수는 IN(입력), OUT(출력), INOUT(양방향) 세 가지 모드로 선언할 수 있다. 호출 시에는 EXECUTE 또는 CALL 명령을 사용한다. 동일한 처리 로직을 여러 응용 프로그램이 공유할 수 있고, 네트워크 트래픽을 줄여 성능을 향상시키며, 비즈니스 로직을 데이터베이스 단에 집중시킬 수 있다는 강점이 있다.

트리거는 앞서 언급한 것처럼 특정 이벤트에 반응해 자동 실행되는 절차형 SQL이며, 사용자가 직접 호출하지 않는다는 점이 저장 프로시저와의 결정적 차이이다. 실행 시점에 따라 BEFORE 트리거와 AFTER 트리거로 나뉘며, 영향 받는 행 단위에 따라 행 수준(Row-level) 트리거와 문장 수준(Statement-level) 트리거로 구분된다. 데이터의 무결성 검사, 자동 로깅, 통계 정보 갱신, 비즈니스 규칙 강제 같은 용도로 활용된다. 다만 너무 많은 트리거를 설정하면 성능 저하와 디버깅 어려움이 발생할 수 있으므로 신중히 사용해야 한다.

사용자 정의 함수(User-Defined Function)는 저장 프로시저와 유사하지만 결정적인 차이가 있다. 함수는 반드시 단일 값을 RETURN으로 반환해야 하며, SELECT 문 안에서 일반 함수처럼 사용할 수 있다는 점이다. CREATE OR REPLACE FUNCTION 함수명(매개변수) RETURN 반환타입 IS BEGIN ... RETURN 값 END 형식으로 작성한다. 반복적으로 사용되는 계산 로직이나 변환 로직을 함수로 정의해두면, 여러 쿼리에서 재사용할 수 있어 코드의 일관성과 유지보수성이 크게 향상된다. 시험에서는 프로시저와 함수의 차이를 묻는 문제가 자주 출제되므로, "프로시저는 호출, 함수는 반환"이라는 핵심 차이를 정확히 기억해두어야 한다.


메타 디스크립션: 정보처리기사 실기 2장 데이터 입출력 구현의 핵심인 논리/물리 데이터 모델링 변환 규칙, 데이터베이스 주요 개체(인덱스·뷰·시퀀스·트리거), 그리고 절차형 SQL 3종(프로시저·트리거·함수)을 시험 답안 기준에 맞춰 정리합니다.


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 블로그 이름