자료 참고 안내 1. 본 자료실의 모든 자료 저작권은 ㈜에이치앤에스에 있습니다.

본 자료는 개발하시는데 참고자료 용도로 사용하실 수 있으며 저작권 표시 없이 복사,게재, 출판 하실 수 없습니다. 외부 게재 사용 시 반드시 출처 항목에 회사명과 사이트 주소를 반드시 명시해 주시기 바랍니다.
[표기 예] 출처 : ㈜에이치앤에스(www.hnsts.co.kr) 또는 ㈜HNS(www.hnsts.co.kr)

2. 제품 개발 시 내용과 예제 코드는 수정 및 검증작업을 직접 하셔야 하며 문제 발생에 대한 책임은 ㈜HNS사와 무관합니다.

본사는 자료를 최신내용으로 유지하기 위해 노력하고 있으며 제공되는 정보의 오류 및 내용이 정확하지 않을 경우 사전 공지 없이 업데이트 될 수 있습니다. 자료의 문제점 발견 시 본사로 문의주시면 검토하여 자료를 수정하도록 하겠습니다.

[C#, VB.NET] 파일 복사 실패에 따른 예외 처리 및 재시도 처리 방법
작성일 2017-05-12 수정일 2022-10-05 조회수 2103
분류 Knowhow
적용
플랫폼
키워드 파일 복사 실패 예외 처리, 파일 복사 재시도 처리, FILECOPY 실패
첨부파일 TechNote33_Example.zip

본 자료는
1. 프로그램 사용 전 준비사항
2. 예제 프로그램 동작 순서
3. 파일 복사(File Copy) 관련 메서드
순서로 설명합니다.

IEC-Series에서 프로그램 상에서 파일 복사(File Copy)를 하는 경우 파일이 정상 복사되지 않고 복사 실패가 될 수 있으며 이러한 경우 여러 가지 이유로 발생될 수 있지만, 외부 메모리의 인식 상태와 경로 문제로 인하여 발생될 수 있습니다.
따라서 파일 복사가 실패되어도 파일 복사를 다시 시도하거나 복사가 되지 않는 파일을 기록해두고 차후 복사해야 할 필요가 있습니다. 본 프로그램은 IEC-Series에서 복수 개의 파일을 복사하는 경우 파일 복사를 Try~Catch로 처리하고 복사 시도(Retry Count) 횟수 설정이 가능하며 복사 실패 시 사용자가 지정한 횟수만큼 자동으로 복사를 시도합니다. 만약 그래도 복사되지 않는 경우에는 복사 실패한 파일의 리스트를 리턴하는 기능을 갖고 있습니다. 본 내용의 소스를 프로젝트에 적용하기 편리하게 주요 복사 처리 코드는 FileCopyCore() 메서드를 통하여 구현하였습니다. 코드를 복사하여 적용하시기 바랍니다.


1. 프로그램 사용 전 준비사항

본 프로그램의 복사 경로는 Falsh Disk ↔ SD Memory 또는 Flash Disk ↔ USB Memory를 대상으로 사용할 수 있습니다. 본 예제를 테스트하시기 위해서는 아래의 내용들을 준비하시기 바랍니다.

IEC-Series의 Flash Disk로부터 SD Card로 복사하므로 SD Card가 필요함

SD Card의 파일 포맷(File Format) 형식은 SD/SDHC 타입의 경우 FAT32를 권장하고 SDXC타입의 경우 exFAT을 권장합니다.
- IEC667/1000-Series는 SD/SDHC 타입을 지원하며 용량은 64G까지 지원합니다.


프로그램에서 사용할 파일 리스트가 필요함

사용되는 파일들은 예제로써 사용을 위해 임시로 지정한 것이며 실제 사용 시 파일 이름과 확장자는 사용자가 복사를 원하는 파일로 변경하여 사용하면 됩니다.
복사할 파일은 LIST(동적 배열)에 저장하여 사용하므로 제한되는 파일 개수는 별도로 없습니다.


2. 예제 프로그램 동작순서

본 예제는 SD Memory를 기준으로 작성되었습니다. 사용하고자 하실 경우 파일 복사(File Copy) 관련 메서드 설명을 참고하시어 필요한 부분을 간단하게 수정하시면 편리하게 적용할 수 있습니다.

.

① 파일 복사 실패 시 복사 재시도 횟수를 지정하는 FileRetryCount를 설정. (SmartUpDown 버튼 사용)
② Start 버튼을 클릭하여 File 복사를 실행합니다. (Falsh Disk ↔ SD Memory, USB Memory)
파일을 한번 복사한 다음 다시 복사 명령을 실행 시 목적 폴더에 해당 파일이 존재하는 경우 복사 실패(Copy Fail)이 발생하므로 복사된 폴더와 파일을 삭제 후 복사 명령을 실행 바랍니다.
③ 복사 결과를 출력합니다.
File Count : 복사할 파일 총 개수 / Success Count : 복사 성공한 파일 개수 / Fail Count : 복사 실패한 파일 개수
④ CopyFailFileList : 복사 실패한 파일 리스트를 출력합니다.


3. 파일 복사(File Copy) 관련 메서드 설명

※ 기존 프로젝트에 본 메서드의 코드를 참조하여 파일 복사 관련 기능을 손쉽게 구현하시기 바랍니다.

string[] FileCopyCore(string SrcFile, string DestFile, string[] filelist, int iRetryCnt, out int iSuccessCnt)

(인자) SrcFile : 원본 경로. @"Flash Disk\\Src\\"; 같이 사용하며 Flash Disk는 Flash Disk로 표기. SD Memory는 SD Card로 표기. USB 메모리는 하드 디스크로 표기
(인자) DestFile : 목적지 경로
(인자) filelist : 복사할 원본 파일 리스트. (string 배열)
(인자) iRetryCnt : 파일 복사 재시도 횟수. 사용자가 직접 지정 가능
(인자) iSuccessCnt : 복사 성공 카운트. 메서드 내부에서 변경된 값을 참조하기 위해 out 파라미터로 선언
(반환값) CopyFailList : 파일 복사 실패 리스트를 배열(Array)로 반환

C# 예제코드
소스 코드는 참고 및 학습용으로 버그 및 여러 가지 문제가 있을 수 있습니다.

FormMain.cs 소스 코드
private FileCopyCoreEx m_cFileCopyCore;

private void FormMain_Load(object sender, EventArgs e)
{
// 현재 Form을 MainForm으로 설정합니다.
smartForm1.MainForm = this;

m_cFileCopyCore = new FileCopyCoreEx();
// source 경로의 파일을 dest 경로로 복사하되 FileOverWrite의 속성값이 True인 경우 동일 이름의 파일을 덮어쓰기. False인 경우 덮어쓰기 안 함
m_cFileCopyCore.FileOverWrite = false;
}

// 프로그램 종료
private void btnClose_Click(object sender, EventArgs e)
{
smartForm1.Close();
}

private void btnStart_Click(object sender, EventArgs e)
{
// 원본 경로
string strSrcFile = "Flash Disk\\Src\\";

// 목적지(파일이 복사된) 경로
string strDestFile = "하드 디스크\\Test\\Dest\\";

// FailList 초기화
lstCopyFailList.ClearAll();

// 전체 파일 String 배열(Array)선언
string[] strAllFileList = new string[5];

string[] strCopyFailList;

// out 매개변수로 사용되어 선언만 하고 초기화 필요 없음
int iSuccessCnt;

// 복사할 원본 파일들을 배열(Array)에 순차적으로 저장
strAllFileList[0] = "test.txt";
strAllFileList[1] = "test.cs";
strAllFileList[2] = "test.png";
strAllFileList[3] = "test.exe";
strAllFileList[4] = "test.docx";

// 인자로는 SrcFile : 원본 경로, DestFile : 목적지 경로, filelist : 파일 리스트, iRetryCnt : 파일 복사 재시도 횟수, iSuccessCnt : 복사 성공 카운트
// iSuccessCnt는 메서드 내부에서 변경된 값을 참조하기 위해 out 파라미터로 선언
strCopyFailList = m_cFileCopyCore.FileCopyRetry(strSrcFile, strDestFile, strAllFileList, Convert.ToInt32(udRetryCount.Value), out iSuccessCnt);

// 파일 복사 시 복사가 실패한 리스트가 있으면
if (strCopyFailList != null)
{
// 실패한 리스트를 리스트 박스에서 추가
foreach (string value in strCopyFailList)
{
smartListBox1.AddItem(value);
}
}

// 파일의 총 개수
labFileCount.Text = strAllFileList.Length.ToString();
// 복사 성공 횟수
labSuccessCount.Text = iSuccessCnt.ToString();
// 복사 실패 횟수
labFailCount.Text = (strAllFileList.Length - iSuccessCnt).ToString();
}


FileCopyCoreEx.vb 소스 코드
class FileCopyCoreEx
{
public FileCopyCoreEx()
{
m_bFileCopyOverWrite = false;
}

private bool m_bFileCopyOverWrite;

public bool FileOverWrite
{
set
{
m_bFileCopyOverWrite = value;
}
get
{
return m_bFileCopyOverWrite;
}
}

// 소스파일의 원본 경로, 목적지 경로를 설정하고 사용자가 설정한 재시도 횟수만큼 복사를 시도하고 복사 실패시 해당 파일을 CopyFailList에 추가하고 해당 정보를 반환
// 인자로는 SrcFile : 원본 경로, DestFile : 목적지 경로, filelist : 파일 리스트, iRetryCnt : 파일 복사 재시도 횟수, iSuccessCnt : 복사 성공 횟수
public string[] FileCopyRetry(string strSrcFile, string strDestFile, string[] filelist, int iRetryCnt, out int iSuccessCnt)
{
// 파일 복사 실패 리스트 저장 배열
List<string> lstCopyFailList = new List<string>();

// 파일 복사 재시도 횟수, 성공 횟수 초기화
int iRCnt = 0;
iSuccessCnt = 0;

DirectoryInfo di = new DirectoryInfo(strDestFile);
if (di.Exists == false)
{
// 파일이 복사될 위치에 폴더가 없는 경우 생성
di.Create();
}

// 리스트 카운트만큼 반복
for (int i = 0; i < filelist.Length; i++)
{
// strSrcFile + filelist[i] 은 "Flash Disk\\Src\\" + "1.txt" 로 표시됨
// strDestFile + filelist[i] 은 "SD Card\\Dest\\" + "1.txt" 로 표시됨
if (FileCopy(strSrcFile + filelist[i], strDestFile + filelist[i]) == false)
{
// 파일 복사 실패하는 경우
// 재시도 카운트 1 증가
++iRCnt;
if (iRetryCnt <= iRCnt)
{
// 재시도 카운트가 사용자가 설정한 카운트라면
// 사용자가 설정한 카운트만큼 반복해도 파일 복사 실패 시 해당 파일을 lstCopyFailList에 추가
lstCopyFailList.Add(filelist[i]);
}
else
{
// 재시도 카운트가 사용자가 설정한 카운트보다 작은 경우
// 동일한 파일의 복사를 재시도 해야하므로 i값은 증가하면 안됨
i--;
// 상기 for문으로 이동하여 FileCopy 재시도 수행
continue;
}
}
else
{
// 파일 복사가 성공하게 되는 경우
// 성공 카운트 증가
iSuccessCnt++;
// 재시도 카운트는 0으로 초기화
iRCnt = 0;
}
}

// 파일 복사 실패를 배열로 리턴
return lstCopyFailList.ToArray();
}

// 파일 복사를 수행할 메서드. 복사 성공 시 TRUE 반환, 복사 실패 시 FALSE 반환
private bool FileCopy(string source, string dest)
{
try
{
// 1. File.Copy 메서드
// source 경로의 파일을 dest 경로로 복사하되 동일 이름의 파일은 덮어쓰기가 실패합니다.
// (인자)source : 복사할 원본 파일, (인자)dest : 복사될 경로의 대상 파일 이름
// File.Copy(source, dest);

// 2. File.Copy 메서드의 오버로드(덮어쓰기 기능 포함)
// source 경로의 파일을 dest 경로로 복사하되 m_bFileCopyOverWrite가 True인 경우 동일 이름의 파일을 덮어쓰기가 가능
// (인자)m_bFileCopyOverWrite : True(덮어쓰기 가능), False(덮어쓰기 불가능)
File.Copy(source, dest, m_bFileCopyOverWrite);
}
// FileNotFoundException 예외 : source 경로의 FileName을 찾을 수 없는 경우 예외 발생
// 디버깅 모드로 트레이싱 하는 경우 source 경로의 파일에 문제가 있는 경우
// FileNotFoundException 예외 처리를 해주어 source 경로의 파일 문제를 쉽게 찾을 수 있음
// 릴리즈 모드로 배포하는 경우 false 리턴
catch (FileNotFoundException)
{
#if DEBUG
throw new System.IO.FileNotFoundException(source + "File not Found");
#else
return false;
#endif
}
catch (IOException)
{
return false;
}

return true;
}
}
VB.NET 예제코드
소스 코드는 참고 및 학습용으로 버그 및 여러 가지 문제가 있을 수 있습니다.

FormMain.vb 소스 코드
Private m_cFileCopyCore As FileCopyCoreEx

Private Sub FormMain_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
' 현재 Form을 MainForm으로 설정합니다.
SmartForm1.MainForm = Me

m_cFileCopyCore = New FileCopyCoreEx()
' source 경로의 파일을 dest 경로로 복사하되 FileOverWrite의 속성값이 True인 경우 동일이름의 파일을 덮어쓰기. False인 경우 덮어쓰기 안 함
m_cFileCopyCore.FileOverWrite = False
End Sub

' 프로그램 종료
Private Sub btnClose_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnClose.Click
SmartForm1.Close()
End Sub

' 파일 복사 시작
Private Sub btnStart_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnStart.Click
' 원본 경로
Dim strSrcFile As String = "Flash Disk\\Src\\"

' 목적지(파일이 복사된) 경로
Dim strDestFile As String = "하드 디스크\\Test\\Dest\\"

' FailList 초기화
lstCopyFailList.ClearAll()

' 전체 파일 String 배열(Array)선언
Dim strAllFileList As String() = New String(4) {}

Dim strCopyFailList As String()

' out 매개변수로 사용되어 선언만하고 초기화 필요없음
Dim iSuccessCnt As Integer

' 복사할 원본 파일들을 배열(Array)에 순차적으로 저장
strAllFileList(0) = "test.txt"
strAllFileList(1) = "test.cs"
strAllFileList(2) = "test.png"
strAllFileList(3) = "test.exe"
strAllFileList(4) = "test.docx"


' 인자로는 SrcFile : 원본 경로, DestFile : 목적지 경로, filelist : 파일 리스트, iRetryCnt : 파일 복사 재시도 횟수, iSuccessCnt : 복사 성공 카운트
' iSuccessCnt는 메서드 내부에서 변경된 값을 참조하기 위해 out 파라미터로 선언
strCopyFailList = m_cFileCopyCore.FileCopyRetry(strSrcFile, strDestFile, strAllFileList, Convert.ToInt32(udRetryCount.Value), iSuccessCnt)

' 파일 복사 시 복사가 실패한 리스트가 있으면
If strCopyFailList IsNot Nothing Then
' 실패한 리스트를 리스트 박스에서 추가
For Each value As String In strCopyFailList
lstCopyFailList.AddItem(value)
Next
End If

' 파일의 총 개수
labFileCount.Text = strAllFileList.Length.ToString()
' 복사 성공 횟수
labSuccessCount.Text = iSuccessCnt.ToString()
' 복사 실패 횟수
labFailCount.Text = (strAllFileList.Length - iSuccessCnt).ToString()
End Sub


FileCopyCoreEx.vb 소스 코드
Public Class FileCopyCoreEx

Public Sub New()
m_bFileCopyOverWrite = False
End Sub

Private m_bFileCopyOverWrite As Boolean

Public Property FileOverWrite() As Boolean
Set(ByVal value As Boolean)
m_bFileCopyOverWrite = value
End Set
Get
Return m_bFileCopyOverWrite
End Get
End Property

' 소스파일의 원본 경로, 목적지 경로를 설정하고 사용자가 설정한 재시도 횟수만큼 복사를 시도하고 복사 실패시 해당 파일을 CopyFailList에 추가하고 해당 정보를 반환
' 인자로는 SrcFile : 원본 경로, DestFile : 목적지 경로, filelist : 파일 리스트, iRetryCnt : 파일 복사 재시도 횟수, iSuccessCnt : 복사 성공 횟수
Public Function FileCopyRetry(ByVal strSrcFile As String, ByVal strDestFile As String, ByVal filelist As String(), ByVal iRetryCnt As Integer, ByRef iSuccessCnt As Integer) As String()
' 파일 복사 실패 리스트 저장 배열
Dim lstCopyFailList As List(Of String) = New List(Of String)()

' 파일 복사 재시도 횟수, 성공 횟수 초기화
Dim iRCnt As Integer = 0
iSuccessCnt = 0

Dim di As DirectoryInfo = New DirectoryInfo(strDestFile)
If di.Exists = False Then
' 파일이 복사될 위치에 폴더가 없는 경우 생성
di.Create()
End If

' 리스트 카운트만큼 반복
For i As Integer = 0 To (filelist.Length - 1)
' strSrcFile + filelist[i] 은 "Flash Disk\\Src\\" + "1.txt" 로 표시됨
' strDestFile + filelist[i] 은 "SD Card\\Dest\\" + "1.txt" 로 표시됨
If FileCopy(strSrcFile + filelist(i), strDestFile + filelist(i)) = False Then
' 파일 복사 실패하는 경우
' 재시도 카운트 1 증가
iRCnt += 1
If iRetryCnt <= iRCnt Then
' 재시도 카운트가 사용자가 설정한 카운트라면
' 사용자가 설정한 카운트만큼 반복해도 파일 복사 실패 시 해당 파일을 CopyFailList에 추가
lstCopyFailList.Add(filelist(i))
Else
' 재시도 카운트가 사용자가 설정한 카운트보다 작은 경우
' 동일한 파일의 복사를 재시도 해야하므로 i 값은 증가하면 안 됨
i -= 1
' 상기 for 문으로 이동하여 FileCopy 수행
Continue For
End If
Else
' 파일 복사가 성공하게 되는 경우
' 성공 카운트 증가
iSuccessCnt += 1
' 재시도 카운트는 0으로 초기화
iRCnt = 0
End If
Next

' 파일 복사 실패를 배열로 리턴
Return lstCopyFailList.ToArray()
End Function

' 파일 복사를 수행할 메서드. 복사 성공 시 TRUE 반환, 복사 실패 시 FALSE 반환
Private Function FileCopy(ByVal source As String, ByVal dest As String) As Boolean
Try
' 1. File.Copy 메서드
' source 경로의 파일을 dest 경로로 복사하되 동일이름의 파일은 덮어쓰기가 실패
' (인자)source : 복사할 원본 파일, (인자)dest : 복사될 경로의 대상 파일 이름
' File.Copy(source, dest);

' 2. File.Copy 메서드의 오버로드(덮어쓰기 기능 포함)
' source 경로의 파일을 dest 경로로 복사하되 m_bFileCopyOverWrite가 True인 경우 동일 이름의 파일을 덮어쓰기가 가능
' (인자)m_bFileCopyOverWrite : True(덮어쓰기 가능), False(덮어쓰기 불가능)
File.Copy(source, dest, m_bFileCopyOverWrite)
Catch __unusedFileNotFoundException1__ As FileNotFoundException
' FileNotFoundException 예외 : source경로의 FileName을 찾을 수 없는 경우 예외 발생
' 디버깅 모드로 트레이싱하는 경우 source 경로의 파일에 문제가 있는 경우
' FileNotFoundException 예외 처리를 해주어 source 경로의 파일 문제를 쉽게 찾을 수 있음
' 릴리즈 모드로 배포하는 경우 false 리턴
#If DEBUG Then
Throw New System.IO.FileNotFoundException(source + " File not Found")
#Else
Return False
#End If

Catch __unusedIOException2__ As IOException
Return False
End Try

Return True
End Function
End Class
맨 위로
팝업닫기

(주)에이치앤에스('http://hnsts.co.kr/'이하 '(주)에이치앤에스 웹사이트')는 개인정보보호법에 따라 이용자의 개인정보 보호 및 권익을 보호하고 개인정보와 관련한 이용자의 고충을 원활하게 처리할 수 있도록 다음과 같은 처리방침을 두고 있습니다.

(주)에이치앤에스 웹사이트는 개인정보처리방침을 개정하는 경우 웹사이트 공지사항(또는 개별공지)을 통하여 공지할 것입니다.

○ 본 방침은 2011년 4월 1일부터 시행됩니다.

1. 개인정보의 처리 목적 (주)에이치앤에스 웹사이트는 개인정보를 다음의 목적을 위해 처리합니다. 처리한 개인정보는 다음의 목적 이외의 용도로는
사용되지 않으며 이용 목적이 변경될 시에는 사전동의를 구할 예정 입니다.
가. 민원사무 처리
민원인의 신원 확인, 민원사항 확인, 사실조사를 위한 연락 · 통지, 처리결과 통보 등을 목적으로 개인정보를 처리합니다.
2. 개인정보 파일 현황
1. 개인정보 파일명 : 고객의 소리
  • - 개인정보 항목 : 이메일, 휴대전화번호, 자택전화번호, 이름, 서비스 이용 기록, 접속 로그, 쿠키, 접속 IP 정보
  • - 수집방법 : 웹사이트
  • - 보유근거 : 이용자 동의
  • - 보유기간 : 3년
3. 개인정보의 제3자 제공에 관한 사항
① (주)에이치앤에스 웹사이트는 원칙적으로 이용자의 개인정보를 제1조에서 명시한 목적 범위 내에서 처리하며, 본래의 범위를 초과하여 처리하거나 제3자에게 제공하지 않습니다.
다만, 다음의 경우에는 개인정보를 제3자에게 제공할 수 있습니다.
  • – 이용자가 사전에 제3자 제공 및 공개에 동의한 경우
  • – 법령 등에 의해 제공이 요구되는 경우
  • – 서비스의 제공에 관한 계약의 이행을 위하여 필요한 개인정보로서 경제적/기술적인 사유로 통상의 동의를 받는 것이 현저히 곤란한 경우
  • – 개인을 식별하기에 특정할 수 없는 상태로 가공하여 이용하는 경우
4. 정보주체의 권리,의무 및 그 행사방법 이용자는 개인정보주체로서 다음과 같은 권리를 행사할 수 있습니다.
① 정보주체는 (주)에이치앤에스 웹사이트에 대해 언제든지 다음 각 호의 개인정보 보호 관련 권리를 행사할 수 있습니다.
  • 1. 개인정보 열람요구
  • 2. 오류 등이 있을 경우 정정 요구
  • 3. 삭제요구
  • 4. 처리정지 요구
② 제1항에 따른 권리 행사는 (주)에이치앤에스 웹사이트에 대해 개인정보 보호법 시행규칙 별지 제8호 서식에 따라 서면, 전자우편, 모사전송(FAX) 등을 통하여 하실 수 있으며 (주)에이치앤에스 웹사이트는
이에 대해 지체 없이 조치하겠습니다.
③ 정보주체가 개인정보의 오류 등에 대한 정정 또는 삭제를 요구한 경우에는 (주)에이치앤에스 웹사이트는 정정 또는 삭제를 완료할 때까지 당해 개인정보를 이용하거나 제공하지 않습니다.
④ 제1항에 따른 권리 행사는 정보주체의 법정대리인이나 위임을 받은 자 등 대리인을 통하여 하실 수 있습니다. 이 경우 개인정보 보호법 시행규칙 별지 제11호 서식에 따른 위임장을
제출하셔야 합니다.
5. 제3자에게의 개인정보 제공
① (주)에이치앤에스 웹사이트는 다음의 개인정보 항목을 처리하고 있습니다.
<민원사무 처리>
– 필수항목 : 이름, 휴대전화번호, 자택전화번호, 이메일, 서비스 이용 기록, 접속로그, 쿠키, 접속IP 정보
6. 개인정보의 파기
(주)에이치앤에스 웹사이트는 원칙적으로 개인정보 처리목적이 달성된 경우에는 지체없이 해당 개인정보를 파기합니다. 파기의 절차, 기한 및 방법은 다음과 같습니다.
  • –파기절차 이용자가 입력한 정보는 목적 달성 후 별도의 DB에 옮겨져(종이의 경우 별도의 서류) 내부 방침 및 기타 관련 법령에 따라 일정기간 저장된 후 혹은 즉시 파기됩니다. 이 때, DB로 옮겨진 개인정보는 법률에 의한 경우가 아니고서는 다른 목적으로 이용되지 않습니다.-파기기한이용자의 개인정보는 개인정보의 보유기간이 경과된 경우에는 보유기간의 종료일로부터 5일 이내에, 개인정보의 처리 목적 달성, 해당 서비스의 폐지, 사업의 종료 등 그 개인정보가 불필요하게 되었을 때에는 개인정보의 처리가 불필요한 것으로 인정되는 날로부터 5일 이내에 그 개인정보를 파기합니다.
  • –파기방법 전자적 파일 형태의 정보는 기록을 재생할 수 없는 기술적 방법을 사용합니다. 종이에 출력된 개인정보는 분쇄기로 분쇄하거나 소각을 통하여 파기합니다.
7. 개인정보의 안전성 확보 조치
(주)에이치앤에스 웹사이트는 개인정보보호법 제29조에 따라 다음과 같이 안전성 확보에 필요한 기술적/관리적 및 물리적 조치를 하고 있습니다.
1. 정기적인 자체 감사 실시
개인정보 취급 관련 안정성 확보를 위해 정기적(분기 1회)으로 자체 감사를 실시하고 있습니다.
2. 개인정보 취급 직원의 최소화 및 교육
개인정보를 취급하는 직원을 지정하고 담당자에 한정시켜 최소화 하여 개인정보를 관리하는 대책을 시행하고 있습니다.
3. 내부관리계획의 수립 및 시행
개인정보의 안전한 처리를 위하여 내부관리계획을 수립하고 시행하고 있습니다.
4. 해킹 등에 대비한 기술적 대책
(주)에이치앤에스 웹사이트는 해킹이나 컴퓨터 바이러스 등에 의한 개인정보 유출 및 훼손을 막기 위하여 보안프로그램을 설치하고 주기적인 갱신·점검을 하며 외부로부터 접근이 통제된 구역에
시스템을 설치하고 기술적/물리적으로 감시 및 차단하고 있습니다.
5. 개인정보의 암호화
이용자의 개인정보는 비밀번호는 암호화 되어 저장 및 관리되고 있어, 본인만이 알 수 있으며 중요한 데이터는 파일 및 전송 데이터를 암호화 하거나 파일 잠금 기능을 사용하는 등의
별도 보안기능을 사용하고 있습니다.
6. 접속기록의 보관 및 위변조 방지
개인정보처리시스템에 접속한 기록을 최소 6개월 이상 보관, 관리하고 있으며, 접속 기록이 위변조 및 도난, 분실되지 않도록 보안기능 사용하고 있습니다.
7. 개인정보에 대한 접근 제한
개인정보를 처리하는 데이터베이스시스템에 대한 접근권한의 부여,변경,말소를 통하여 개인정보에 대한 접근통제를 위하여 필요한 조치를 하고 있으며 침입차단시스템을 이용하여
외부로부터의 무단 접근을 통제하고 있습니다.
8. 문서보안을 위한 잠금장치 사용
개인정보가 포함된 서류, 보조저장매체 등을 잠금장치가 있는 안전한 장소에 보관하고 있습니다.
9. 비인가자에 대한 출입 통제
개인정보를 보관하고 있는 물리적 보관 장소를 별도로 두고 이에 대해 출입통제 절차를 수립, 운영하고 있습니다.
8. 개인정보 보호책임자 작성
① (주)에이치앤에스 웹사이트는 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를
지정하고 있습니다.
▶ 개인정보 보호책임자
성명 : 김진효
소속 : (주)에이치앤에스
전화번호 : 02-6402-8001
이메일 : hns@hnsts.co.kr
② 정보주체께서는 (주)에이치앤에스 웹사이트의 서비스(또는 사업)을 이용하시면서 발생한 모든 개인정보 보호 관련 문의, 불만처리, 피해구제 등에 관한 사항을 개인정보 보호책임자 및
담당부서로 문의하실 수 있습니다. (주)에이치앤에스 웹사이트는 정보주체의 문의에 대해 지체 없이 답변 및 처리해드릴 것입니다.
9. 개인정보침해 구제방법
정보주체는 개인정보침해로부터 구제받고자 하는 경우 다음과 같은 기관에 도움을 요청할 수 있습니다.
▶ 개인정보 침해신고센터 (한국인터넷진흥원 운영)
– 소관업무 : 개인정보 침해사실 신고, 상담 신청
– 홈페이지 : privacy.kisa.or.kr
– 전화 : (국번없이) 118
– 주소 : (138-950) 서울시 송파구 중대로 135 한국인터넷진흥원 개인정보침해신고센터
▶ 개인정보 분쟁조정위원회 (한국인터넷진흥원 운영)
– 홈페이지 : privacy.kisa.or.kr
– 전화 : (국번없이) 118
– 주소 : (138-950) 서울시 송파구 중대로 135 한국인터넷진흥원 개인정보침해신고센터
10. 개인정보 처리방침 변경
① 이 개인정보처리방침은 시행일로부터 적용되며, 법령 및 방침에 따른 변경내용의 추가, 삭제 및 정정이 있는 경우에는 변경사항의 시행 7일 전부터 공지사항을 통하여 고지할
것입니다.
팝업닫기

본 웹사이트에 게시된 이메일 주소가 전자우편 수집 프로그램이나 그 밖의 기술적 장치를 이용하여 무단으로 수집되는 것을 거부하며, 이를 위반시 정보통신망법에 의해 형사처벌됨을 유념하시기 바랍니다.

게시일 : 2011.4.1