Preview와 원본 민감정보 탐색¶
mode=PREVIEW는 Target DML 없이 Source 표본과 Target 메타데이터를 사용하는 검증 모드입니다. 적재 호환성 검증과 선택적 원본 민감정보 탐색을 구분합니다.
| 구분 | 적재 호환성 검증 | 원본 민감정보 탐색 |
|---|---|---|
| 목적 | 표본 값의 Target 컬럼·자료형·길이 등 호환성 확인 | 스크램블링이 필요한 Source 컬럼의 민감정보 후보 확인 |
| 입력 | 작업의 매핑·스크램블링을 적용한 검증 대상 | 매핑·스크램블링 전 Source 원본 컬럼 |
| 활성화 | mode=PREVIEW | PREVIEW에 privacy_check=Y 추가 |
| 기본값 | PREVIEW에서 수행 | 사용 안 함 |
| 보고서 | 테이블·컬럼별 결과·위반 건수 | Source·컬럼별 유형·건수·점수·검사 상태 |
두 검사는 별도 표본 조회를 사용합니다. 두 결과가 같은 행을 대상으로 한다거나 통계적 무작위 표본이라는 보장은 없습니다. 표본 통과·미탐지는 전체 전송 성공이나 전체 테이블의 민감정보 부재를 의미하지 않습니다.
1. CLI 실행¶
Source/Target 연결과 schemas|tables|mapping_rule 중 하나를 지정합니다. Target에 데이터를 쓰지는 않지만 대상 메타데이터를 확인하므로 Target 연결도 필요합니다.
datatrans \
source=SRC_USER/password@host:1521/SRCDB \
target=TGT_USER/password@host:1521/TGTDB \
tables=SRC_USER.CUSTOMER \
remap_schema=SRC_USER:TGT_USER \
mode=PREVIEW \
privacy_check=Y \
privacy_entities=RRN,PHONE,EMAIL,ACCOUNT,CARD,PERSON,ADDRESS \
jobname=CUSTOMER_PREVIEW
예제 접속정보는 형식 설명용입니다. 실제 접속정보를 담은 파일은 접근 권한을 제한합니다.
| 파라미터 | 의미 |
|---|---|
privacy_check=Y|N | 원본 민감정보 탐색 여부. 기본 N, PREVIEW 전용 |
privacy_entities=TYPE[,TYPE...] | 탐색 유형. 생략하면 지원하는 12개 유형 전체. 빈 목록·알 수 없는 유형은 거부 |
CLI 표본 수는 범위별 기본 100행입니다. preview_rows는 현재 CLI 공개 파라미터가 아닙니다. UI/API에서는 1~10,000행을 지정하며 기본값은 100행입니다. 이 값은 각 검사의 범위별 표본 한도이고 전체 DB의 총 행 수 한도가 아닙니다.
2. 웹 콘솔 실행¶
- 할당된 프로젝트의 작업을 열고 검증 탭을 선택합니다.
- 필요하면 원본 민감정보 탐색 (Preview 전용)을 켜고 표본 행 수와 유형을 지정합니다.
- DB Preview 실행을 선택하고 사용할 저장 버전을 확인합니다. 실행 통제 프로젝트는 DB Preview 요청으로 관리자 승인을 받습니다.
- 실행 상세의 Preview 보고서에서 적재 호환성 검증과 원본 민감정보 탐색을 각각 확인합니다.
- 테이블·Source 범위를 펼쳐 컬럼별 결과를 확인하고 Markdown 내보내기로 보고서를 저장합니다.
이 기능은 일반 전송·TRIGGER 중 원본을 자동 검사하거나, 발견한 컬럼에 스크램블링 규칙을 자동 할당하는 기능은 아닙니다.
3. 검사 범위와 지원 유형¶
원본 탐색은 선택한 Source 범위와 조회 조건을 따릅니다. Mapping에서 제외한 Source 컬럼도 포함하지만 선택하지 않은 전체 DB로 범위를 확대하지 않습니다. 같은 Source와 같은 조건을 여러 Mapping이 쓰면 한 번 탐색하고 관련 Mapping ID를 표시합니다. 조건이 다르면 각각 검사하며 범위 간 같은 행이 포함될 수 있습니다.
| 값 | 탐색 후보 |
|---|---|
RRN | 주민등록번호 |
FRN | 외국인등록번호 |
PASSPORT | 여권번호 |
DRIVER_LICENSE | 운전면허번호 |
PHONE | 전화번호 |
EMAIL | 이메일 주소 |
ACCOUNT | 계좌번호 |
CARD | 카드번호 |
PERSON | 이름 |
ADDRESS | 주소 |
BUSINESS_REG | 사업자등록번호 |
IP | IP 주소 |
문자형 CHAR/NCHAR/VARCHAR2/NVARCHAR2, CLOB/NCLOB, NUMBER를 지원합니다. 그 밖의 자료형은 미검사로 표시합니다. NUMBER 저장 과정에서 사라진 선행 0은 복원하지 않습니다. 이미지·바이너리·문서 OCR은 포함하지 않습니다.
현재 탐색은 로컬 ko-pii==1.16.0을 사용하며 외부 AI API로 원본을 전송하지 않습니다. 이름·주소는 사전·규칙 기반 후보로, 일반 한국어 NER나 모든 민감한 의미의 분류를 보장하지 않습니다. 설치 시 해당 버전과 종속 패키지·라이선스 고지를 준비하며 실행 중 자동 다운로드하지 않습니다.
4. 결과 판정¶
적재 호환성 outcome¶
| outcome | 의미 |
|---|---|
PASSED | 조회 표본에서 위반을 발견하지 못함 |
VIOLATIONS | 조회 표본에서 하나 이상의 컬럼 위반 발견 |
NOT_EVALUATED | 조회 행이 없어 판정하지 못함 |
INCOMPLETE | 메타데이터·조회·변환 오류로 검사 불완전 |
VIOLATIONS와 NOT_EVALUATED 자체는 실행 오류가 아닙니다. 다른 실행 오류가 없으면 작업 상태는 COMPLETED입니다. 민감정보 탐색 오류 등 다른 단계의 오류가 함께 있으면 최종 작업 상태도 확인해야 합니다.
원본 민감정보 탐색 상태¶
| 상태 | 의미 |
|---|---|
NOT_REQUESTED | 사용 안 함 또는 과거 보고서에 탐색 결과 없음 |
FOUND | 검사한 표본에서 후보 탐지 |
NOT_FOUND | 실제 검사한 표본 내 미탐지 |
NOT_EVALUATED | 표본 없음, NULL·빈값만 있음 또는 미지원 자료형 |
PARTIAL | 일부만 검사했거나 미지원 컬럼·길이 제한·값별 오류가 있음 |
ERROR | 해당 범위의 조회·분석을 완료하지 못함 |
- 검사 값은 분석을 완료한 컬럼 값의 수, 탐지 값은 하나 이상의 후보가 나온 값의 수입니다. 반복된 값도 행마다 셉니다.
- 검출 건수는 발견한 항목 수입니다. 한 값에 두 항목이 있으면 탐지 값은 1, 검출 건수는 2가 될 수 있습니다.
- 최대 점수는 검출 점수이며 정확도 확률이나 법적 판정이 아닙니다.
- 값별 최대 4,096자를 검사하며 잘린 값은 부분 검사로 표시합니다. 부분 검사에서도 이미 확인한 후보는 보고합니다.
- 후보 탐지 자체는 실패가 아닙니다. 조회·값 처리·분석 오류는 작업 오류에 반영되며, 탐색 엔진 초기화 실패는 빈 성공 결과로 바꾸지 않습니다.
5. 보고서와 보존¶
기존 {JOBNAME}.md는 계속 작성됩니다. 신규 실행은 콘솔의 실행 상세에서도 보고서를 확인할 수 있습니다. 과거 Markdown 파일만 있는 실행은 자동 연결되지 않습니다.
보고서와 API에는 Source·컬럼·유형·집계·점수·제한된 근거만 포함합니다. 원본 값, 일부 마스킹한 원문, 탐지 문자열과 접속 비밀번호를 보고서에 저장하지 않습니다.
콘솔용 PREVIEW 보고서는 연결된 CLI 작업 이력의 job_history_retention_days 보존 정책을 따릅니다. 프로젝트 실행 기록과 전체 설치 백업의 범위는 웹 콘솔 가이드를 참고하세요.