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

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

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

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

FTP 서버를 이용하여 IEC-Series의 장치 응용 프로그램 업데이트하는 방법
작성일 2015-09-07 수정일 2025-09-29 조회수 2758
분류 SmartX Framework
적용
플랫폼
키워드 스마트 업데이트, SMARTUPDATE
첨부파일 TechNote18_Example.zip

Update관련 TechNote가 다양하게 있어, 상황에 따라 참고해야 할 순서와 간단한 설명을 나타내는 표입니다. 아래 표를 참고하여 상황에 맞게 TechNote의 참고 순서를 확인하시기 바랍니다.

CASE 1 : SmartUpdate를 사용하여 업데이트 하는 경우
순서 제목 및 설명
1 [필독] 16. 장치 응용 프로그램 업데이트 처리 방식
SmartUpdate의 처리 방식과 흐름도를 설명하는 문서입니다.
2 [참고] 18. FTP 서버를 이용하여 IEC-Series의 장치 응용 프로그램 업데이트하는 방법
FTP 서버를 이용하여 업데이트 하는 방법입니다.

본 자료는
1. FTP를 사용하는 이유
2. FTP 서버 구축 방법
3. 파일의 버전 정보 설정 방법
4. FTP를 활용한 SmartUpdate 처리과정
5. SmartFTPUpdate 모듈 프로젝트 추가 방법
6. SmartFTPUpdate 사용 예제
순서로 진행합니다.

1. FTP를 사용하는 이유

1. 기존 SmartUpdate만 사용할 경우, 현장에서 제품을 업데이트하려면 업데이트 파일이 담긴 USB또는 SD카드를 직접 IEC-Series 제품과 연결해야 하는 불편함이 있었습니다. 하지만 현장에 네트워크 환경이 갖춰져 있다면, FTP 서버에 업데이트 파일을 업로드해 두기만 하면 제품이 자동으로 네트워크를 통해 업데이트 여부를 확인하고 필요한 파일을 다운로드할 수 있습니다.
2. FTP 서버는 프로그램을 다운로드한 후 간단한 설정만으로 바로 적용할 수 있을 만큼 구축과 적용이 쉽습니다. FTP 서버 구축 경험이 없더라도 본 문서를 참고하여 서버를 설정하고 프로그램에 적용할 수 있습니다.

2. FTP 서버 구축 방법

본 예제는 FileZilla Server 를 내부 IP에서 사용하여 테스트 되었으며, FileZilla Server를 사용하여 서버를 구축하는 방법을 설명하고 있습니다.

  • [STEP-1] FileZilla 홈페이지에서 FileZilla Server를 다운로드 받습니다.
    fliezilla다운
  • [STEP-2] 다운로드 받은 파일을 설치합니다.

    이 때 설정은 기본값으로 설정해도 무방하며 사용환경에 따라 변경하시기 바랍니다.

    다운로드파일 설치
  • [STEP-3] 관리자 비밀번호를 설정합니다.
    비밀번호설정
  • [STEP-4] 서버에 연결합니다.

    Host, Port는 변경하지 않고, Password는 [STEP-3]에서 설정한 Password 입니다.

    서버연결
  • [STEP-5] Crtl+F를 눌러 설정화면에 들어간 후 Server listeners 에서 현재 컴퓨터의 IP 주소를 추가합니다.

    Port는 내부망에서 접속 하므로 21로 고정합니다.
    Protocol은 "Explicit FTP over TLS and insecure plain FTP"로 고정합니다.

    ip추가
참고IP주소를 확인하는 방법

  • [STEP-1] CMD(명령 프롬포트)를 실행합니다.
    ip추가
  • [STEP-2] ipconfig 명령어를 입력합니다.
    명령어입력
  • [STEP-3] IPv4 주소를 확인합니다.
    주소확인
  • [STEP-6] 클라이언트 사용자가 접속했을 때 접근 가능한 폴더를 미리 생성합니다.
    클라이언트 폴더생성
  • [STEP-7] 사용자 계정 추가하기

    클라이언트에서 서버로 접속할 때 사용할 사용자 계정을 만들고 비밀번호 설정합니다. 이 때 이름과 비밀번호는 클라이언트에서 접속할 때 사용됩니다.

    사용자 계정추가

    // Client 관련 정보 설정
    // 사용자 접속 이름을 설정합니다.
    smartFTP1.UserID = "Test";
    // 사용자 접속 비밀번호를 설정합니다.
    smartFTP1.Password = "1234";

  • [STEP-8] 사용자 계정의 디렉토리 경로 지정.

    [STEP-7]에서 만든 사용자 계정에 디렉토리 경로를 지정합니다.
    Virtual path는사용자가 FTP 클라이언트에서 보게 되는 루트 디렉토리, 즉“표시 이름”이고 Native path는 실제 서버에 존재하는 디렉토리 입니다.
    Virtual path는 "/"하나만 사용해도 무방하며 Native path는 [STEP-6]에서 만든 폴더의 경로를 지정하면 됩니다.

    경로지정
참고Virtual path 설정에 따른 클라이언트에서 지정된 경로 이름 예시

//[CASE-1] Virtual path를 "/"로 설정한 경우
smartFTP1.FileDownload("//RemoteUpdate.exe, "Flash Disk\\UpdateFiles");
//[CASE-2] Virtual path를 "/test"로 설정한 경우
smartFTP1.FileDownload("//test//RemoteUpdate.exe, "Flash Disk\\UpdateFiles");

  • [STEP-9] 윈도우 방화벽 해제
  • 1) 제어판 > Windows Defender 방화벽 > Windows Defender 방화벽을 통해 앱 또는 기능 허용 클릭
  • 2)설정 변경 > 다른앱 허용 > 찾아보기 클릭
  • 3) Filezilla Server 설치경로 에서 Filezilla-server.exe 클릭
    (위치 미변경시 C드라이브 Program Files 폴더 안에 있습니다.)
  • 4) Filezilla Server 개인, 공용 모두 체크 후 확인
     
3. 파일의 버전 비교를 위한 정보 설정 방법

프로그램 실행 시 불필요하게 FTP 서버에서 파일을 다운로드하지 않도록 버전 정보를 활용합니다.
프로그램의 버전 비교 시, 현재 실행 중인 프로그램은 Assembly 버전 정보를 사용하고, 업데이트 대상 프로그램은 파일명에서 언더바("_") 이후의 문자열을 버전 정보로 인식합니다.
이를 위해, FTP 서버에 업로드되는 응용 프로그램의 이름은 반드시 파일이름_버전정보.exe 형식(예시: SmartUpdate_1.0.0.2.exe)이어야 합니다. 또한 버전 정보 앞에 오는 구분용 언더바("_") 외에는 파일 이름에 언더바를 사용할 수 없습니다.

1) 현재 실행 프로그램의 exe 버전 정보 설정 방식
이미지

// 현재 실행중인 프로그램의 버전
string nowVer = Assembly.GetExecutingAssembly().GetName().Version.ToString();

2) 업데이트 할 프로그램의 exe 버전 정보 설정 방식

FTP에 업데이트 파일을 업로드시 ~.exe의 파일명을 다음의 형식으로 변경하여 업로드 하시기 바랍니다.
형식 : 파일이름_버전정보.exe (예시 : SmartFTPUpdate_1.0.0.2.exe)

이미지

4. FTP를 활용한 SmartUpdate 처리과정

업데이트는 exe 파일 버전을 기준으로 진행되며, 버전이 다를 경우 모든 파일을 다운로드합니다. 이후 SmartUpdate에서 다운로드된 파일과 현재 실행중인 파일의 바이너리 데이터를 비교하여 중복되는 파일은 제외하고 업데이트를 적용합니다. 자세한 내용은 아래 그림을 참고하시기 바랍니다.

플로어차트
플로어차트
참고Flash Disk를 대상으로 잦은 업데이트를 진행하면 단편화 문제가 발생할 수 있습니다.
단편화에 관한 자세한 내용은 “자료실 > Tech Note > 79. 단편화 발생에 따른 외부저장장치(USB 메모리, SD Card) 운영 방식”을 참고하시기 바랍니다.

5. SmartFTPUpdate 모듈 프로젝트 추가 방법

이 모듈은 사용자가 기존 프로젝트에 큰 변경 없이 간단한 코드의 추가로 쉽게 적용할 수 있습니다. 아래 STEP에서 SmartFTPUpdate 모듈의 특징 및 프로젝트에 추가하는 방법을 확인해보시기 바랍니다.

중요본 모듈은 SmartX New Framework를 사용하여 만들어졌습니다. 따라서 모듈의 적용을 위해서는 반드시 SmartX New Framework의 설치 및 프로젝트에 적용이 필요합니다.
  • [STEP-1] 예제 코드 복사 후 적용할 프로젝트에 복사하기

    본 문서 아래 예제코드에 표시된 부분을 확인하여 적용할 프로젝트에 복사합니다.프로젝트에서 FTP 연결과 Update를 처리하기 위한 코드가 필요하며, 자세한 내용은 아래 예제 코드를 확인하시기 바랍니다.

    그림
  • [STEP-2]프로젝트의 버전 설정하기

    본 문서 "3. 파일의 버전 정보 설정 방법" 을 참고하여 현재 프로젝트와 업데이트 할 프로젝트의 버전 정보를 설정합니다.

  • [STEP-3] 본 문서 2. FTP 서버 구축 방법 [STEP-6]에서 생성한 FTP 폴더에 업데이트 할 파일의 응용프로그램을 추가합니다.

    이때, 향후 업데이트를 위해, 업데이트할 파일도 [STEP-1, 2] 과정을 동일하게 수행해야 합니다.

    그림
주의exe파일 이름은 반드시 "파일이름_버전정보.exe" 이어야 하며, 버전정보 앞에 구분자 언더바("_")를 제외한 파일 이름에 언더바("_")를 사용하면 안됩니다.

6. SmartFTPUpdate 사용 예제

본 예제는 모든 제품에 적용할 수 있도록 4.3인치 기준으로 제작 되었으며, 자세한 내용은 첨부 파일을 참고하시기 바랍니다.

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

//버튼 클릭 시 업데이트 체크 및 시작
private void butUpdateStart_Click(object sender, EventArgs e)
{
//----------------------------복사하여 사용--------------------------------------
// 현재 실행중인 프로그램의 Assembly 버전과 업데이트 할 프로그램의 파일 명에서
// 읽어온 버전을 비교하여 버전이 다를 경우 업데이트 할 프로그램을 다운로드 합니다.
if (FTPDownloadCheck() == true)
{
//업데이트 적용
UpdateApply();
}
else
{
smartListBox1.AddItem("최신버전 입니다.!!!");
}
//-------------------------------------------------------------------------------
}
//--------------------------------복사하여 사용-----------------------------------------------
//사용자의 환경에 맞게 변경하시기 바랍니다.
private string _FTPServerAddress = "192.168.00.00"; //FTPServerAddress 주소
private string _UserID = "Test"; //FTP UserID
private string _Password = "123"; //FTP User Password
private string _DownloadPath = @"Flash Disk\Temp"; //FTP에서 다운로드 할 경로
private string _RunPath = @"Flash Disk\Run"; //Run폴더 경로
private List<string> lstDownloadFiles = new List<string>(); //다운로드할 파일 리스트 변수 선언
//처리 과정을 표시하는 코드
private void MessageProcess(string msg)
{
//리스트 박스에 출력
smartListBox1.AddItem(msg);
}

//SmartUpdate 설정 및 업데이트 시작
//자세한 내용은 SmartX.co.kr > ReferenceGuide Part 4 > SmartUpdate를 참고하시기 바랍니다.
private void UpdateApply()
{
smartUpdate1.FromFilePath = _DownloadPath;
smartUpdate1.ToFilePath = _RunPath;
smartUpdate1.Restart = SmartX.SmartUpdate.RESTARTFLAG.REBOOTING;
smartUpdate1.UpdateStartInterval = 5000;
if (smartUpdate1.UpdateCheck() == true)
{
DialogResult dResult = SmartX.SmartMessageBox.Show("업데이트를 시작 하시겠습니까?", "업데이트 시작", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dResult == DialogResult.Yes)
{
smartUpdate1.Start();
smartForm1.Close();
}
}
}

//FTP 서버 연결
//자세한 내용은 SmartX.co.kr > ReferenceGuide Part 4 > SmartFTP를 참고하시기 바랍니다.
private void FTP_Connect(string FTP_IPAddress, string UserID, string Password)
{
smartFTP1.ServerFTPAddress = FTP_IPAddress;
smartFTP1.PortNo = 21;
smartFTP1.UserID = UserID;
smartFTP1.Password = Password;
if (smartFTP1.Connect() == true)
{
MessageProcess("연결에 성공하였습니다.");
}
else
{
MessageProcess("연결에 실패하였습니다.");
}
}

//FTP폴더 안에 있는 exe파일의 버전을 파일명에서 읽어오기 및 DownloadFiles 리스트 생성
private string GetFtpExeFileVersion()
{
StringBuilder strFileList = new StringBuilder(3000);
lstDownloadFiles.Clear();
if (!smartFTP1.GetFileList(strFileList)) return "";
//다운로드파일 리스트 생성
lstDownloadFiles.AddRange(strFileList.ToString().Split(':'));
//exe 파일을 찾아서 _뒤에 있는 버전을 리턴
foreach (string filenameExt in lstDownloadFiles)
{
if (filenameExt.ToLower().Contains("exe"))
{
string filename = Path.GetFileNameWithoutExtension(filenameExt);
return filename.Substring(filename.IndexOf("_") + 1);
}
}
return "";
}

//현재 실행중인 exe와 FTP파일에 있는 exe의 버전 읽어오기 및 비교
private bool FTPDownloadCheck()
{
string ftpVer;
//현재 버전 읽기
string nowVer = Assembly.GetExecutingAssembly().GetName().Version.ToString();
FTP_Connect(_FTPServerAddress, _UserID, _Password);
//업데이트파일 버전 읽기
ftpVer = GetFtpExeFileVersion();
//현재 버전과 업데이트 버전 비교
if (nowVer != ftpVer)
{
FileDownload(_DownloadPath, ftpVer);
return true;
}
return false;
}

//Download 파일 리스트의 파일들을 순차적으로 다운로드
private void FileDownload(string downloadPath, string ftpExeVer)
{
Directory.CreateDirectory(downloadPath); //다운로드 할 파일 생성
//GetFtpExeFileVersion()에서 받아온 DownloadFiles의 List를 순차적으로 다운로드
//exe파일은 언더바와 버전을 제거 후 다운로드
foreach (string filenameExt in lstDownloadFiles)
{
string targetName = filenameExt.ToLower().Contains("exe") ? filenameExt.Replace("_" + ftpExeVer, "") : filenameExt;
FileDownloadBlocking("//" + filenameExt, Path.Combine(downloadPath, targetName));
MessageProcess(filenameExt + " 다운로드 완료");
}
}

//다운로드 완료 확인
private void FileDownloadBlocking(string ftpFilename, string localFilename)
{
smartFTP1.FileDownload(ftpFilename, localFilename);
while (true)
{
if (smartFTP1.Percentage == 100)
{
break;
}
System.Threading.Thread.Sleep(100);
Application.DoEvents();
}
}
//----------------------------------------------------------------------------------------
VB.NET 예제코드
소스 코드는 참고 및 학습용으로 버그 및 여러 가지 문제가 있을 수 있습니다.

'버튼 클릭 시 업데이트 체크 및 시작
Private Sub butUpdateStart_Click(ByVal sender As Object, ByVal e As EventArgs) Handles butUpdateStart.Click
'----------------------------복사하여 사용--------------------------------------
'현재 실행중인 프로그램의 Assembly 버전과 업데이트 할 프로그램의 파일 명에서
'읽어온 버전을 비교하여 버전이 다를 경우 업데이트 할 프로그램을 다운로드 합니다.
If FTPDownloadCheck() = True Then
'//업데이트 적용
UpdateApply()
Else
smartListBox1.AddItem("최신버전 입니다.!!!")
End If
'-------------------------------------------------------------------------------
End Sub

'--------------------------------복사하여 사용-----------------------------------------------
'사용자의 환경에 맞게 변경하시기 바랍니다.
Private _FTPServerAddress As String = "192.168.00.00" 'FTPServerAddress 주소
Private _UserID As String = "Test" 'FTP UserID
Private _Password As String = "123" 'FTP User Password
Private _DownloadPath As String = "Flash Disk\Temp" 'FTP에서 다운로드 할 경로
Private _RunPath As String = "Flash Disk\Run" 'Run폴더 경로
Private lstDownloadFiles As List(Of String) = New List(Of String)() '다운로드할 파일 리스트 변수 선언

'처리 과정을 표시하는 코드
Private Sub MessageProcess(ByVal msg As String)
'리스트 박스에 출력
smartListBox1.AddItem(msg)
End Sub

'SmartUpdate 설정 및 업데이트 시작
'자세한 내용은 SmartX.co.kr > ReferenceGuide Part 4> SmartUpdate 를 참고하시기 바랍니다.
Private Sub UpdateApply()
smartUpdate1.FromFilePath = _DownloadPath
smartUpdate1.ToFilePath = _RunPath
smartUpdate1.Restart = SmartX.SmartUpdate.RESTARTFLAG.REBOOTING
smartUpdate1.UpdateStartInterval = 5000
If smartUpdate1.UpdateCheck() = True Then
Dim dResult As DialogResult = SmartX.SmartMessageBox.Show("업데이트를 시작 하시겠습니까?", "업데이트 시작", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

If dResult = DialogResult.Yes Then
smartUpdate1.Start()
SmartForm1.Close()
End If
End If
End Sub

'FTP 서버 연결
'자세한 내용은 SmartX.co.kr > ReferenceGuide Part 4> SmartFTP 를 참고하시기 바랍니다.
Private Sub FTP_Connect(ByVal FTP_IPAddress As String, ByVal UserID As String, ByVal Password As String)
smartFTP1.ServerFTPAddress = FTP_IPAddress
smartFTP1.PortNo = 21
smartFTP1.UserID = UserID
smartFTP1.Password = Password
If smartFTP1.Connect() = True Then
MessageProcess("연결에 성공하였습니다.")
Else
MessageProcess("연결에 실패하였습니다.")
End If
End Sub

'FTP폴더 안에 있는 exe파일의 버전을 파일명에서 읽어오기 및 DownloadFiles 리스트 생성
Private Function GetFtpExeFileVersion() As String
Dim strFileList As StringBuilder = New StringBuilder(3000)
lstDownloadFiles.Clear()
If Not SmartFTP1.GetFileList(strFileList) Then Return ""
'다운로드파일 리스트 생성
lstDownloadFiles.AddRange(strFileList.ToString().Split(":"c))
'exe 파일을 찾아서 _뒤에 있는 버전을 리턴
For Each filenameExt As String In lstDownloadFiles
If filenameExt.ToLower().Contains("exe") Then
Dim filename As String = Path.GetFileNameWithoutExtension(filenameExt)
Return filename.Substring(filename.IndexOf("_") + 1)
End If
Next
Return ""
End Function

'현재 실행중인 exe와 FTP파일에 있는 exe의 버전 읽어오기 및 비교
Private Function FTPDownloadCheck() As Boolean
Dim ftpVer As String
'현재 버전 읽기
Dim nowVer As String = Assembly.GetExecutingAssembly().GetName().Version.ToString()
'업데이트파일 버전 읽기
FTP_Connect(_FTPServerAddress, _UserID, _Password)
ftpVer = GetFtpExeFileVersion()
'현재 버전과 업데이트 버전 비교
If nowVer <> ftpVer Then
FileDownload(_DownloadPath, ftpVer)
Return True
End If
Return False
End Function

'Download 파일 리스트의 파일들을 순차적으로 다운로드
Private Sub FileDownload(ByVal downloadPath As String, ByVal ftpExeVer As String)
Directory.CreateDirectory(downloadPath) '다운로드 할 파일 생성
'GetFtpExeFileVersion()에서 받아온 DownloadFiles의 List를 순차적으로 다운로드
'exe파일은 언더바와 버전을 제거 후 다운로드
For Each filenameExt As String In lstDownloadFiles
Dim targetName As String = If(filenameExt.ToLower().Contains("exe"), filenameExt.Replace("_" & ftpExeVer, ""), filenameExt)
FileDownloadBlocking("//" & filenameExt, Path.Combine(downloadPath, targetName))
MessageProcess(filenameExt & " 다운로드 완료")
Next
End Sub

'다운로드 완료 확인
Private Sub FileDownloadBlocking(ByVal ftpFilename As String, ByVal localFilename As String)
smartFTP1.FileDownload(ftpFilename, localFilename)
While True
If smartFTP1.Percentage = 100 Then
Exit While
End If
System.Threading.Thread.Sleep(100)
Application.DoEvents()
End While
End Sub
'----------------------------------------------------------------------------------------
맨 위로
팝업닫기

(주)에이치앤에스('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