본문으로 건너뛰기

데이터 전환 계획과 검증

정보처리기사 목차데이터 전환레슨 122 / 233

목차

데이터 검증은 전환한 데이터가 원천의 데이터와 맞는지 확인하는 일입니다. 전환이 끝난 뒤 한 번만 하는 것이 아니라 추출부터 완료 후까지 단계마다 하고, 무엇을 보느냐에 따라 방법이 다섯으로 나뉩니다.

전환 프로그램이 오류 없이 끝났다는 것은 '프로그램이 멈추지 않았다'는 뜻일 뿐입니다. 짝을 찾지 못한 행은 조용히 빠지고, 자료형을 바꾸는 사이에 값이 깎이고, 글자 코드가 달라 한글이 깨집니다. 로그에는 어느 것도 실패로 남지 않습니다. 그래서 전환에는 계획을 세울 때부터 검증을 함께 넣고, 넣은 건수와 나온 건수를 양쪽에서 세어 맞춰 봅니다. 아래 그림은 전환 단계마다 검증 표시가 켜지는 모습과, 적재 단계에서 건수가 어긋나는 장면을 보여 줍니다.

6단계 중 1단계. 전환을 시작하기 전에 계획서로 무엇을 어떻게 옮길지 정하고, 체크리스트로 작업마다 할 일과 시각·담당자를 적어 둡니다.

1전환 수행 계획과 체크리스트

데이터 전환 수행 계획은 전환을 위한 상세 설계와 전환·검증 프로그램 개발, 통합 전환까지 할 수 있도록 미리 짜 두는 계획입니다. 이 계획을 적어 둔 문서가 데이터 전환과 ETL에서 본 데이터 전환 계획서이고, 적는 항목도 그 레슨에 적은 것과 같습니다.

계획대로 움직이게 하는 문서가 체크리스트입니다. 전환 작업을 잘게 나누어 작업 상세 항목, 예정 시작·종료 시각, 담당자를 적고, 끝낼 때마다 표시합니다.

체크리스트는 전환을 하다 만나는 위험에 미리 대비하려고 만듭니다. 전환 프로그램의 오류, 정해진 시간 안에 끝내야 하는 제약, 업무 절차의 변경, 자주 바뀌는 데이터 요건, 하드웨어 장애 같은 것들입니다.

2무엇으로 확인하나 — 검증 방법 다섯

방법무엇을 보나학사 전환에서는
로그 검증추출·전환·적재 과정에 남은 로그추출 로그의 건수와 오류 메시지를 읽는다
기본 항목 검증로그 검증 밖에 따로 요청해 둔 항목학년이 1~4 안에 있는지, 학과코드가 학과 표에 있는지 본다
응용 프로그램 검증사람이 쓰는 프로그램으로 본 결과새 시스템의 학생 목록 화면을 열어 자료가 보이는지 본다
응용 데이터 검증미리 정해 둔 업무 규칙에 맞는지매핑 정의서에 적은 대로 학과명이 학과코드로 바뀌었는지 본다
값 검증숫자의 합계, 코드의 범위, 값 사이의 관계원천 건수와 적재 건수, 점수 합계를 양쪽에서 세어 맞춘다

로그 검증이 가장 먼저지만 가장 약합니다 — 프로그램이 남긴 말만 믿는 것이라, 프로그램이 알아채지 못한 누락은 로그에 없습니다. 값 검증은 데이터를 직접 세는 것이라 프로그램의 말을 믿지 않습니다.

3언제 확인하나 — 검증 시점 다섯

시점묻는 것
추출쓰던 시스템의 데이터가 셀 수 있는 상태인가
전환매핑 정의서에 적은 규칙대로 값이 바뀌었나
적재넣는 과정에서 누락되거나 잘린 것이 없나
적재 후들어간 값이 새 시스템에서 쓸 수 있는 값인가
전환 완료 후업무 화면과 보고서가 제대로 도는가

한 시점에 방법 하나만 쓰는 것이 아닙니다. 적재 시점에 적재 로그를 읽고(로그 검증) 건수를 세는(값 검증) 것처럼, 한 시점에 여러 방법을 함께 씁니다.

예제

앞 레슨에서 본 전환을 처음 데이터에서 다시 돌려 봅니다. 옛 학사 시스템의 학생 3건을 학과명으로 학과코드를 찾아 새 학생 표에 적재했습니다. 전환 프로그램은 오류 없이 끝났습니다. 원천의 세 건이 각각 들어갔는지 외부 조인으로 맞춰 봅니다. 블록마다 처음 데이터에서 시작합니다 — 앞 블록이 만들거나 바꾼 것은 남아 있지 않습니다.

CREATE TABLE 구학생 (
  학번 NUMBER,
  이름 VARCHAR2(10 CHAR),
  학년 VARCHAR2(10 CHAR),
  학과명 VARCHAR2(10 CHAR)
);
INSERT INTO 구학생 VALUES
  (201, '한지우', '3학년',
    '컴퓨터'),
  (202, '오세진', '1학년',
    '전자'),
  (203, '류지호', '2학년',
    '기계');
INSERT INTO 학생
SELECT G.학번, G.이름,
  TO_NUMBER(
    SUBSTR(G.학년, 1, 1)),
  D.학과코드
FROM 구학생 G
  JOIN 학과 D
  ON D.학과명 = G.학과명;
SELECT G.학번, G.이름,
  CASE
    WHEN S.학번 IS NULL
    THEN '빠짐'
    ELSE '적재'
  END AS 결과
FROM 구학생 G
  LEFT JOIN 학생 S
  ON S.학번 = G.학번
ORDER BY G.학번;
학번이름결과
201한지우적재
202오세진적재
203류지호빠짐

원천 3건 가운데 2건만 적재됐고, 203번이 빠졌습니다. 건수를 양쪽에서 센 것이라 값 검증이고, 빠진 자리를 찾은 시점은 적재입니다. 여기서 끝이 아닙니다 — 빠진 까닭(학과 표에 없는 기계)을 세어 고치고 다시 전환하는 일이 다음에 이어집니다.

시험 포인트

  • 필기: 검증 방법은 로그 검증·기본 항목 검증·응용 프로그램 검증·응용 데이터 검증·값 검증 다섯입니다. 하는 일을 보고 어느 방법인지 고르게 하고, 응용 프로그램 검증과 응용 데이터 검증을 바꿔 놓는 함정이 나옵니다 — 사람이 쓰는 프로그램으로 보는 쪽이 응용 프로그램, 업무 규칙에 맞는지 보는 쪽이 응용 데이터입니다. 검증 시점은 추출 → 전환 → 적재 → 적재 후 → 전환 완료 후 다섯입니다. 체크리스트에는 작업 상세 항목·예정 시작과 종료 시각·담당자를 적습니다.
  • 실기: 검증 방법의 이름을 한글로 씁니다 — 로그 검증, 기본 항목 검증, 응용 프로그램 검증, 응용 데이터 검증, 값 검증. 전환 작업마다 항목·시각·담당자를 적어 대비하는 문서는 체크리스트입니다.

확인 문제

1. 카드사가 결제 내역을 새 시스템으로 옮깁니다. 적재 시점의 검증에서 하는 일로 알맞은 것을 고르세요.

  • ① 옛 시스템에 쌓인 결제 내역이 몇 건인지 세어 둡니다.
  • ② 금액 단위를 원에서 전으로 바꾸는 규칙이 제대로 적용됐는지 봅니다.
  • ③ 넣는 중에 빠지거나 잘린 내역이 없는지 봅니다.
  • ④ 고객이 쓰는 결제 내역 조회 화면을 열어 내역이 보이는지 봅니다.
정답

③입니다. 적재 시점에는 데이터를 새 데이터베이스에 넣는 동안 누락되거나 잘린 것이 없는지 봅니다.

  • ① 꺼내 오는 쪽을 세는 일이라 추출 시점입니다. 이 건수가 적재 건수를 맞춰 보는 기준이 됩니다.
  • ② 값을 바꾸는 규칙이 적용됐는지 보는 일이라 전환 시점입니다.
  • ④ 업무 화면이 도는지 보는 일이라 전환 완료 후 시점입니다.

2. 통신사가 요금 데이터를 옮기고 네 가지 방법으로 검증했습니다. (가)~(라)가 어느 검증인지 이름을 한글로 쓰세요. 답을 끝까지 쓴 뒤 정답을 펼치세요.

  • (가) 전환 프로그램이 남긴 기록 파일을 열어 처리 건수와 오류 메시지를 읽습니다.
  • (나) 미리 정해 둔 '해지한 회선에는 요금이 붙지 않는다'는 업무 규칙을 어긴 행이 있는지 봅니다.
  • (다) 상담원이 쓰는 요금 조회 화면을 열어 고객 요금이 제대로 보이는지 봅니다.
  • (라) 적재한 뒤 요금제 코드가 요금제 표에 있는 코드인지 따로 요청해 확인합니다.
정답

받는 답: (가) 로그 검증 · (나) 응용 데이터 검증 · (다) 응용 프로그램 검증 · (라) 기본 항목 검증

(가)의 실마리는 '프로그램이 남긴 기록을 읽는다', (나)는 '미리 정해 둔 업무 규칙을 어겼나', (다)는 '사람이 쓰는 프로그램으로 본다', (라)는 '로그 밖에 따로 요청해 둔 항목을 본다'입니다.

  • 틀리는 꼴 (나)와 (다)를 바꿔 쓴 꼴: 업무 규칙에 맞는지 보는 쪽이 응용 데이터, 화면이나 프로그램으로 보는 쪽이 응용 프로그램입니다. 이름이 비슷해 가장 많이 바뀝니다.
  • 틀리는 꼴 (가)에 값 검증: 값 검증은 합계·범위처럼 데이터를 직접 세는 것입니다. 프로그램이 남긴 기록을 읽는 것은 로그 검증입니다.
  • 틀리는 꼴 (라)에 무결성 검증: 레슨이 쓰는 이름은 기본 항목 검증입니다.

3. 대학이 장학금 지급 내역을 옮겼습니다. 다음 두 가지를 무엇이라 부르는지 이름을 한글로 쓰세요. 답을 끝까지 쓴 뒤 정답을 펼치세요.

  • (가) 옛 시스템의 지급 총액과 새 시스템의 지급 총액을 각각 더해 두 금액이 같은지 맞춰 보는 검증
  • (나) '지급 내역 추출 — 3월 2일 1시~3시 — 담당 전환팀'처럼 작업마다 항목과 시각, 담당자를 적어 두고 끝낼 때마다 표시하는 문서
정답

받는 답: (가) 값 검증 · (나) 체크리스트

(가)의 실마리는 '숫자 항목의 합계를 양쪽에서 더해 맞춘다'입니다. (나)는 전환 작업마다 할 일과 시각·담당자를 적어 위험에 대비하는 문서입니다.

  • 틀리는 꼴 (가)에 로그 검증: 로그 검증은 프로그램이 남긴 기록을 읽는 것입니다. 금액을 직접 더해 맞추는 것은 값 검증입니다.
  • 틀리는 꼴 (가)에 기본 항목 검증: 기본 항목 검증은 코드 범위처럼 따로 요청해 둔 항목을 보는 것입니다. 합계를 맞추는 것은 값 검증입니다.
  • 틀리는 꼴 (나)에 데이터 전환 계획서: 계획서는 대상·범위·일정·전환 방안을 적는 문서입니다. 작업마다 시각과 담당자를 적어 짚어 가는 문서는 체크리스트입니다.

끝까지 내려오면 저절로 표시됩니다. 이 기기에만 저장합니다.

정보처리기사 목차로