# 스캔 실행

> DQS 스캔을 실행하고, 진행 상황을 모니터링하고, 대규모 데이터셋을 처리하고, 반복 스캔을 예약하는 방법을 알아봅니다.

Source: https://dataqualitysense.com/ko/resources/using-dqs/running-scans/
Last updated: 2026-06-03

---

## 스캔의 작동 방식

스캔을 실행하면 DQS는 사용자가 구성한 역량(capability)에 따라 Salesforce 레코드를 처리합니다. 스캔은 Salesforce Batch Apex를 사용해 백그라운드에서 실행되므로, 처리가 진행되는 동안에도 작업을 계속할 수 있습니다.

DQS는 Salesforce 거버너 한도(governor limit)를 자동으로 준수합니다. 스캔 중에도 조직(org)은 정상적으로 응답합니다.

## 수동 스캔 실행

### 스캔 시작하기

1. App Launcher에서 DQS를 엽니다
2. 목록에서 Definition을 찾습니다
3. **Run Scan**(또는 재생 아이콘)을 클릭합니다
4. 확인하여 시작합니다

스캔은 즉시 처리를 시작합니다.

### 스캔 상태 표시기

| 상태 | 아이콘 | 의미 |
|--------|------|---------|
| Queued | 시계 | 시작 대기 중 |
| Processing | 스피너 | 현재 실행 중 |
| Completed | 체크 표시 | 성공적으로 완료됨 |
| Failed | X | 오류 발생 |

### 진행 중인 스캔 보기

DQS 홈 화면은 실행 중인 모든 스캔을 표시합니다.
- Definition 이름
- 진행률(%)
- 처리된 레코드 / 전체 레코드
- 경과 시간
- 예상 남은 시간

## 진행 상황 이해하기

### 진행 상황 추적

DQS는 레코드를 배치(batch) 단위로 처리합니다. 진행 표시줄은 다음을 보여 줍니다.

- 전체 배치 중 **완료된 배치**
- 전체 레코드 중 **처리된 레코드**
- 현재 평가 중인 **역량**

예: "Processing batch 5 of 12 (2,500 of 6,000 records) - Completeness"

### 처리 순서

DQS는 다음 순서로 역량을 평가합니다.

1. Completeness(완전성) (빠른 필드 검사)
2. Validity(유효성) (형식 패턴 일치)
3. Timeliness(시의성) (날짜 비교)
4. Consistency(일관성) (값 일치 여부)
5. Uniqueness(고유성) (중복 탐지)
6. AI Readiness 역량

비용이 낮은 역량을 먼저 실행해 빠른 피드백을 제공합니다.

### 예상 시간

스캔 소요 시간은 다음에 따라 달라집니다.

| 요인 | 영향 |
|--------|--------|
| 레코드 수 | 레코드가 많을수록 시간이 길어짐 |
| 필드 수 | 필드가 많을수록 시간이 길어짐 |
| 역량 비용 | HIGH 비용 역량은 시간이 더 걸림 |
| 조직 부하 | 사용량이 많은 조직은 처리가 느려짐 |

일반적인 처리 속도:

| 레코드 수 | 예상 시간 |
|--------------|----------------|
| 1,000 | 1분 미만 |
| 10,000 | 2~5분 |
| 100,000 | 15~30분 |
| 1,000,000+ | 1~2시간 |

이는 추정치입니다. 실제 시간은 역량 선택과 조직 활동에 따라 달라집니다.

## 처리 비용

각 역량에는 스캔 소요 시간에 영향을 미치는 처리 비용이 있습니다.

### 비용 수준

| 비용 | 역량 | 처리 관련 비고 |
|------|--------------|------------------|
| LOW | Completeness, Validity | 레코드별 단순 필드 검사 |
| MEDIUM | Timeliness, Consistency, PII Detection | 패턴 분석 및 날짜 계산 |
| HIGH | Uniqueness | 레코드 간 비교 |

### 비용 계산

Definition 요약에는 예상 총비용이 표시됩니다.

- **Low** - 선택한 모든 역량이 LOW 비용
- **Medium** - MEDIUM 비용 역량이 하나 이상 포함됨
- **High** - HIGH 비용 역량이 하나 이상 포함됨

> **팁:** 대규모 데이터셋에 대한 첫 스캔에서는 LOW 비용 역량만으로 시작하십시오. 기준선(baseline)을 파악한 뒤 HIGH 비용 역량을 추가하십시오.

## 배치 처리 세부 사항

### Batch Apex의 작동 방식

DQS는 Salesforce Batch Apex를 사용해 레코드를 처리합니다. 이것이 의미하는 바는 다음과 같습니다.

1. 레코드가 배치로 나뉩니다 (기본값: 배치당 200건)
2. 각 배치는 독립적으로 처리됩니다
3. 한 배치가 실패해도 나머지는 계속 진행됩니다
4. 거버너 한도는 배치 사이에 재설정됩니다

이 방식 덕분에 DQS는 다음을 수행할 수 있습니다.
- 수백만 건의 레코드 처리
- Salesforce 한도 준수
- 사용자를 차단하지 않고 실행
- 중단되더라도 재개

### Salesforce 거버너 한도

Batch Apex에는 다음과 같은 주요 한도가 있습니다.

| 한도 | 값 | 비고 |
|-------|-------|-------|
| 최대 대기 배치 작업 수 | 5 | DQS는 스캔당 1개의 작업을 사용 |
| QueryLocator를 통한 레코드 | 5천만 | 대부분의 조직에 충분 |
| 일일 배치 실행 횟수 | 250,000 | 조직 내 모든 배치 작업 합산 |

DQS는 이 한도 내에서 충분히 여유 있게 동작하도록 설계되었습니다.

### 배치 크기 최적화

DQS는 역량의 복잡도에 따라 배치 크기를 조정합니다.

| 역량 유형 | 배치 크기 |
|----------------|------------|
| LOW 비용만 | 200건 |
| MEDIUM 비용 포함 | 200건 |
| HIGH 비용 포함 | 100건 |

복잡한 역량에 대해 더 작은 배치를 사용하면 시간 초과(timeout) 오류를 방지할 수 있습니다.

## 대규모 데이터셋 처리

### 100,000건 이상의 데이터셋

대규모 데이터셋의 경우 다음 방법을 따르십시오.

1. 범위를 제한하기 위해 **필터를 사용**합니다
2. **LOW 비용 역량으로 먼저 시작**합니다
3. 가능하면 **비피크 시간대에 실행**합니다
4. 문제가 없는지 **진행 상황을 모니터링**합니다

### 100만 건 이상의 데이터셋

매우 큰 데이터셋의 경우:

1. 필터를 적용한 여러 Definition을 사용해 **데이터를 분할**합니다
2. 유지 보수 시간대에 **스캔을 예약**합니다
3. 필요하면 **역량을 따로따로 실행**합니다
4. 데이터를 병렬로 처리하기 위해 **세분화(segmentation)를 활용**합니다

분할 예시:
- Definition A: Region = 'Americas'인 Contact
- Definition B: Region = 'EMEA'인 Contact
- Definition C: Region = 'APAC'인 Contact

### 성능 팁

| 팁 | 이점 |
|-----|---------|
| Definition당 필드 수 줄이기 | 더 빠른 처리 |
| 레코드 필터 사용 | 스캔할 데이터셋 축소 |
| HIGH 비용 역량 따로 실행 | 진행 상황 가시성 향상 |
| 비피크 시간대 예약 | 자원 경쟁 감소 |

## 스캔 완료

### 완료 알림

스캔이 끝나면 다음 알림을 받습니다.

1. **인앱 알림** - 종 아이콘에 새 결과 표시
2. **이메일 알림** - 요약이 이메일로 전송됨
3. **홈 화면 업데이트** - 상태가 Completed로 변경됨

### 결과 보기

완료된 스캔을 클릭하면 다음을 볼 수 있습니다.
- 전체 품질 점수
- 차원(dimension)별 점수
- 메트릭 세부 정보
- 영향을 받은 레코드까지 드릴다운

해석 안내는 [결과 이해하기](/ko/resources/using-dqs/understanding-results/)를 참고하십시오.

### 스캔 이력

DQS는 각 Definition에 대한 모든 스캔 이력을 보관합니다.
- 날짜 및 시각
- 소요 시간
- 레코드 수
- 전체 점수
- 이전 스캔과의 비교

이력을 활용해 시간에 따른 개선 추이를 추적하십시오.

## 스캔 예약

반복 스캔을 예약해 데이터 품질 모니터링을 자동화할 수 있습니다.

### 일정 설정하기

1. Definition을 엽니다
2. **Schedule**(시계 아이콘)을 클릭합니다
3. 주기를 선택합니다.
   - 매일(Daily)
   - 매주(Weekly) (요일 선택)
   - 매월(Monthly) (날짜 선택)
4. 시작 시각을 설정합니다
5. **Save Schedule**을 클릭합니다

### 일정 모범 사례

| 주기 | 사용 사례 |
|-----------|----------|
| 매일 | 대량 데이터 입력, 핵심 품질 모니터링 |
| 매주 | 표준 품질 추적, 추세 분석 |
| 매월 | 경영진 보고, 컴플라이언스 감사 |

> **팁:** 사용자에게 미치는 영향을 최소화하려면 비피크 시간대(이른 아침이나 주말)에 스캔을 예약하십시오.

### 일정 관리

Definition 상세 페이지에서:
- **Edit** - 주기 또는 시각 변경
- **Pause** - 삭제하지 않고 일시 중지
- **Resume** - 일시 중지된 일정 재시작
- **Delete** - 일정 완전 삭제

### 일정 한도

예약 스캔은 모든 사용자에게 제공되며, 설정할 수 있는 일정 수에는 제한이 없습니다.

## 스캔 취소

### 취소 방법

1. 홈 화면에서 실행 중인 스캔을 찾습니다
2. 정지 아이콘(또는 **Cancel**)을 클릭합니다
3. 취소를 확인합니다

### 취소 시 동작

- 현재 배치를 마친 후 처리가 중단됩니다
- 부분 결과가 저장됩니다
- 상태가 "Canceled"로 변경됩니다
- 수집된 부분 데이터를 볼 수 있습니다

취소된 스캔은 한도에 포함되지 않습니다.

## 문제 해결

### "Scan queued but not starting" (스캔이 대기 중이지만 시작되지 않음)

**원인:** 조직 내 다른 배치 작업이 실행 중입니다.

**해결책:** 다른 작업이 완료될 때까지 기다리십시오. Salesforce는 최대 5개의 동시 배치 작업을 허용합니다.

**확인:** Setup > Apex Jobs에서 무엇이 실행 중인지 확인하십시오.

### "Scan failed" (스캔 실패)

**원인:** 일반적으로 데이터 문제 또는 권한 문제입니다.

**해결책:**
1. 스캔 세부 정보에서 오류 메시지를 확인합니다
2. 해당 객체와 필드에 대한 접근 권한이 있는지 확인합니다
3. 필터 조건에 오류가 없는지 검토합니다
4. 더 적은 레코드로 실행해 봅니다

### "Scan taking too long" (스캔이 너무 오래 걸림)

**원인:** 대규모 데이터셋 또는 HIGH 비용 역량.

**해결책:**
1. 완료될 때까지 기다립니다 (결국 끝납니다)
2. 필터를 추가해 레코드 수를 줄입니다
3. HIGH 비용 역량을 제거합니다
4. 비피크 시간대에 예약합니다

### "Results don't show all records" (결과에 일부 레코드가 표시되지 않음)

**원인:** 필터 조건이 일부 레코드를 제외했습니다.

**해결책:** Definition 필터를 검토하고 조정하십시오.

## 다음 단계

- [결과 이해하기](/ko/resources/using-dqs/understanding-results/): 스캔 데이터 해석하기
- [Definition Builder 가이드](/ko/resources/using-dqs/definition-builder/): Definition 수정하기
