시작하기#
기본 개념#
파일 전송 전후의 해시값을 비교해 원본과 동일한 상태로 도착했는지 확인하기
파일을 다른 서버나 스토리지로 전송한 경우 전송이 완료되었다는 상태만으로 파일 내용까지 정상적으로 유지되었는지 확인해야 할 수 있습니다.
예를 들어 대용량 데이터, 백업 파일이나 중요 결과 파일을 전송한 뒤 대상 시스템에 파일이 생성되었더라도, 원본과 대상 파일의 내용이 동일한지와 전송 과정에서 파일이 변경되거나 손상되지 않았는지 별도로 확인해야 할 수 있습니다.
해시값은 파일 내용을 기준으로 계산되는 값으로, 동일한 파일을 같은 방식으로 계산하면 같은 해시값을 얻을 수 있습니다. 따라서 원본 파일과 전송이 완료된 대상 파일의 해시값을 비교해 두 파일이 동일한 상태인지 확인할 수 있습니다.
하지만 파일 전송이 완료된 뒤 원본과 대상 시스템에서 각각 해시값을 계산하고 결과를 직접 비교하면 전송 작업과 검증 작업을 별도로 실행해야 하며, 여러 파일을 처리하는 경우 파일별 검증 결과도 각각 확인해야 할 수 있습니다.
INNORIX Flow를 활용하면 파일 전송 결과와 연결해 원본 파일과 대상 파일의 해시값을 자동으로 계산하고 비교하는 검증 흐름을 구성할 수 있습니다.
즉, 단순히 파일이 Target에 도착했는지만 확인하는 대신 원본 파일 확인 → 해시값 계산 → 파일 전송 → 대상 파일 확인 → 해시값 계산 → 비교 결과 확인까지 이어지는 방식으로 파일 무결성을 확인할 수 있습니다.
Original File
│
▼
Hash Calculation
SHA-256
│
▼
Original Hash
│
│ File Transfer
▼
Destination File
│
▼
Hash Calculation
SHA-256
│
▼
Destination Hash
│
▼
Hash Comparison
│
┌────┴─────┐
▼ ▼
Match Mismatch
│ │
▼ ▼
Verified Review해시값 검증은 파일 전송과 별개의 수동 확인 작업으로 처리하는 대신, 전송 결과에 따라 파일별 무결성 검증을 이어서 실행하고 동일 여부를 확인하는 방식으로 구성할 수 있습니다.
예를 들어 하나의 대용량 파일뿐 아니라 여러 파일을 동시에 전송하는 경우에도 각 파일의 검증 결과를 함께 확인해 정상적으로 일치한 파일과 추가 확인이 필요한 파일을 구분할 수 있습니다.
| 검증 결과 | 확인 내용 |
|---|---|
| Match | 원본과 대상 파일의 해시값이 동일한 상태 |
| Mismatch | 해시값이 일치하지 않아 추가 확인이 필요한 상태 |
| Verification Complete | 전송과 파일 검증이 모두 완료된 상태 |
| Review Required | 파일 또는 전송 결과를 추가로 확인해야 하는 상태 |
이렇게 구성하면 파일 전송 → 대상 파일 확인 → 해시값 계산 → 원본과 비교 → 검증 결과 확인까지 이어지는 파일 무결성 확인 과정을 하나의 Flow에서 연결할 수 있습니다.
검증 흐름#
파일 전송 완료 후 자동으로 무결성 확인까지 이어가기
해시 검증은 전송 전에 한 번, 전송 후에 다시 한 번 확인하는 구조로 구성할 수 있습니다.
원본 파일의 해시값을 기준값으로 사용하고, 대상에 반영된 파일의 해시값과 비교합니다.
| 단계 | 처리 내용 | 결과 |
|---|---|---|
| 원본 확인 | 전송할 파일 확인 | 검증 대상 결정 |
| 기준값 생성 | 원본 파일 해시 계산 | 기준 해시값 생성 |
| 파일 전송 | Source에서 Target으로 전송 | 대상 파일 생성 |
| 대상 확인 | 도착 파일 해시 계산 | 비교값 생성 |
| 값 비교 | 원본과 대상 해시 비교 | 동일 여부 확인 |
| 결과 기록 | 검증 결과 저장 | 완료 또는 확인 필요 |
원본 파일
│
▼
기준 해시값 생성
│
▼
파일 전송
│
▼
대상 파일 반영
│
▼
대상 해시값 생성
│
▼
원본 ↔ 대상 비교
│
┌─┴────────────┐
│ │
▼ ▼
검증 완료 불일치 확인
│
▼
원인 확인이 흐름을 통해 파일 전송의 완료 여부뿐 아니라 실제 파일 내용이 동일한지까지 확인할 수 있습니다.
적용 범위#
중요도와 파일 특성에 따라 필요한 전송에 검증 적용하기
모든 파일에 동일한 수준의 검증을 적용할 필요는 없습니다.
대용량 데이터, DB 백업, 미디어 원본, 배포 파일처럼 파일 손상 여부가 이후 작업에 영향을 줄 수 있는 경우에는 전송 작업과 함께 해시 검증을 연결할 수 있습니다.
전송 대상
│
├── 일반 업무 파일
│ └── 전송 결과 확인
│
├── DB 백업
│ └── 전송 + 해시 검증
│
├── 배포 파일
│ └── 전송 + 해시 검증
│
└── 대용량 원본
└── 전송 + 해시 검증예를 들어 다음과 같은 환경에 적용할 수 있습니다.
| 파일 유형 | 해시 검증 활용 |
|---|---|
| DB 백업 | 원격 보관 파일의 무결성 확인 |
| 소프트웨어 배포 파일 | 대상 서버의 파일 동일 여부 확인 |
| 미디어 원본 | 대용량 파일 전송 결과 확인 |
| 데이터 아카이브 | 장기 보관 전 파일 상태 확인 |
| 중요 업무 자료 | 전송 중 변경 또는 손상 여부 확인 |
IT 엔지니어#
검증 기준#
파일 특성에 맞는 해시 방식과 검증 범위 구성하기
먼저 어떤 파일을 검증할지와 어떤 방식으로 해시값을 비교할지 설정합니다.
전송 환경에 따라 모든 파일을 검증하거나, 특정 경로·확장자·용량 이상의 파일만 검증 대상으로 지정할 수 있습니다.
예를 들어 다음과 같이 검증 범위를 구성할 수 있습니다.
Source Path
/data/backup
│
▼
File Filter
*.sql
*.dump
*.tar
│
▼
Hash Verification
│
├── SHA-256
│
└── Selected Files검증 기준에서는 다음 항목을 함께 구성할 수 있습니다.
| 설정 항목 | 구성 내용 |
|---|---|
| 검증 대상 | 전체 파일 또는 지정된 파일 |
| 파일 조건 | 경로, 이름, 확장자 |
| 해시 방식 | 동일한 기준으로 계산할 알고리즘 |
| 검증 시점 | 전송 전, 전송 후 또는 완료 시 |
| 결과 처리 | 일치·불일치에 따른 다음 작업 |
이렇게 하면 일반 파일 전송과 무결성 검증이 분리된 별도 작업이 아니라, 특정 파일 전송에 필요한 검증 조건으로 함께 적용할 수 있습니다.
기준 생성#
원본 파일의 해시값을 검증 기준으로 기록하기
검증이 시작되면 먼저 Source에 있는 원본 파일의 해시값을 계산합니다.
이 값은 대상 파일과 비교할 기준이 됩니다.
Source
/backup
│
├── db_01.dump
│ │
│ ▼
│ SHA-256
│ │
│ ▼
│ 8F3A...C21
│
└── db_02.dump
│
▼
SHA-256
│
▼
A71D...E09여러 파일을 한 번에 전송하는 경우에는 각 파일의 기준값을 각각 생성해 대상 파일과 비교할 수 있습니다.
따라서 전체 전송 작업이 완료된 경우에도 특정 파일만 별도로 확인해야 하는 상황을 구분할 수 있습니다.
검증 연결#
파일 전송 완료와 해시 비교 작업을 하나의 Flow로 구성하기
원본 해시값이 준비되면 파일 전송을 실행하고, 대상 파일이 반영된 후 검증 작업을 이어서 실행합니다.
이때 해시 검증은 독립적인 확인 작업으로 구성할 수도 있고, 전송 완료 후 자동으로 실행되는 후속 단계로 연결할 수도 있습니다.
┌───────────────┐
│ Source File │
└───────┬───────┘
│
▼
┌───────────────┐
│ Generate Hash │
└───────┬───────┘
│
▼
┌───────────────┐
│ File Transfer │
└───────┬───────┘
│
▼
┌───────────────┐
│ Target File │
└───────┬───────┘
│
▼
┌───────────────┐
│ Verify Hash │
└───────────────┘이 구조는 다음과 같이 활용할 수 있습니다.
백업 파일 전송 후 원격 보관 상태 검증
배포 파일을 여러 서버에 전송한 뒤 대상별 무결성 확인
대용량 데이터 전송 완료 후 파일별 체크섬 비교
장기 보관 전 원본과 저장 파일의 동일 여부 확인
결과 비교#
파일별 해시값과 전체 검증 결과 함께 확인하기
전송과 검증이 완료되면 Runs에서 전체 실행 결과를 확인할 수 있습니다.
검증 결과는 단순히 전송 성공 여부와 함께 표시하는 것이 아니라, 파일별 해시값 비교 결과를 기준으로 확인할 수 있습니다.
Verification Run
┌──────────────────────────────────┐
│ File Verification │
├──────────────────────────────────┤
│ db_01.dump ✓ Match │
│ db_02.dump ✓ Match │
│ archive_01.tar ✓ Match │
│ backup_03.dump ! Mismatch │
└──────────────────────────────────┘확인 결과는 다음과 같이 구분할 수 있습니다.
| 결과 | 의미 | 다음 처리 |
|---|---|---|
| Match | 원본과 대상 파일이 동일 | 검증 완료 |
| Mismatch | 해시값이 서로 다름 | 파일 상태 확인 |
| Verification Failed | 검증 작업 자체를 완료하지 못함 | 환경 확인 |
| Pending | 검증 대기 상태 | 작업 진행 확인 |
이렇게 하면 전송 작업이 완료되었더라도 실제 파일 검증이 끝나지 않은 상태를 구분할 수 있습니다.
불일치 대응#
해시값이 다른 파일만 확인하고 필요한 작업 다시 실행하기
원본과 대상의 해시값이 다르면 해당 파일의 전송 상태와 Source·Target 환경을 확인합니다.
여러 파일 중 일부만 문제가 발생한 경우 전체 작업을 다시 처리하기보다, 검증에 실패한 파일을 중심으로 원인을 확인하고 필요한 작업을 다시 실행할 수 있습니다.
Hash Mismatch
│
▼
파일별 결과 확인
│
├── Source File
│
├── Target File
│
├── Transfer Result
│
└── Hash Value
│
▼
원인 확인
│
▼
Retry
│
▼
Hash Recheck
│
┌────┴────┐
▼ ▼
Match Mismatch
│
▼
Verified불일치가 발생한 경우 다음 항목을 중심으로 확인할 수 있습니다.
| 확인 항목 | 확인 내용 | 대응 |
|---|---|---|
| 원본 파일 | 파일 변경 여부 | 기준값 다시 생성 |
| 대상 파일 | 정상적으로 반영되었는지 | 파일 상태 확인 |
| 전송 기록 | 전송 과정의 오류 여부 | Run 상세 확인 |
| 저장 경로 | 다른 파일과 비교되지 않았는지 | Target 경로 확인 |
| 검증 방식 | 동일한 기준으로 계산되었는지 | 해시 설정 확인 |
이 레시피를 적용하면 원본 파일 확인 → 해시값 생성 → 파일 전송 → 대상 파일 확인 → 체크섬 비교 → 파일별 검증 결과 기록 → 불일치 파일 재확인까지 하나의 자동화 흐름으로 연결할 수 있습니다.
즉, 파일이 단순히 대상 시스템에 도착했는지만 확인하는 것이 아니라, 원본과 동일한 상태로 정상적으로 반영되었는지까지 자동으로 검증하는 파일 전송 환경을 구성할 수 있습니다.