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

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

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

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

IEC-Series의 입력 신호 감지 방식과 입력 성능 측정 방법 및 Scan Speed를 간단하게 처리하는 방법
작성일 2017-08-10 수정일 2022-10-06 조회수 2016
분류 SmartX Framework
적용
플랫폼
키워드 SmartGPIO, 입력, 출력, Scan Speed, Prot Change Scan Process, Capture
첨부파일

본 자료는
1. SmartGPIO의 입력 성능 측정이 필요한 이유
2. SmartGPIO의 입력 신호 처리 방식에 따른 장단점
3. 입력 확인 주기(Input Scan Cycle Time)가 가변인 이유
4. 장치별 응용 프로그램 환경에 따른 최대 입력 신호 측정
4-1. 입력 확인 주기(Input Scan Cycle Time)를 확인하기 위한 처리 방식
4-2. 테스트 방법 설명
5. 제품별 테스트 결과
순서로 진행합니다.

1. SmartGPIO의 입력 성능 측정이 필요한 이유

출력 성능의 측정은 출력 신호의 측정으로 쉽게 확인이 가능하나 입력 성능의 측정은 입력 신호가 인가되어도 입력 처리를 했는지 확인해야 하는 문제가 있습니다. 또한, 입력 처리는 CPU의 가용 상태에 따라 입력 처리 시간이 달라질 수 있어 입력 신호를 놓칠 수 있습니다. 이러한 상태를 확인하기 위해 작성된 장치 응용 프로그램 환경에서 처리 가능한 입력 신호의 폭(Width)을 확인하는 측정이 필요합니다. 본 자료는 입력 신호 처리 방법 5가지를 소개하고, 그중 4가지를 예시로 테스트 방법을 제시하고 측정합니다.


2. SmartGPIO의 입력 신호 처리 방식에 따른 장단점

SmartGPIO의 입력 신호를 처리하는 방법을 CASE별로 나눠 각 방식에 따른 장단점을 설명하고 있습니다.


CASE-1. Port Change Event(OnPortDatasChange)방식

포트의 값이 변경될 때마다 호출되는 이벤트로 사용자 인터페이스의 반응 처리를 자유롭게 처리하면서 입력 신호의 변화를 처리하는 경우 사용됩니다.

장점 - 사용자 인터페이스 응답이 가능하고 코드 처리가 간단함
- 응답 성능은 OnPortDatasChangeCapture 이벤트 방식에 비해 좋음
단점 - Polling 방식보다 입력 처리가 약간 늦을 수 있음
- 연속적인 신호나 처리 코드의 복잡도가 높은 경우 입력 신호가 누락될 수 있음
CASE-2. Port Capture Event(OnPortDatasChangeCapture)방식

포트의 값이 변경될 때마다 Queue에 카운트를 추가하고, Queue의 데이터 수만큼 이벤트가 호출됩니다. Queue에 빠르게 추가되는 데이터를 놓치지 않고 최대한 정밀하게 입력 받기 위해 Port Change Scan Process의 Scan Speed(CPU에 할당되는 시간)를 조절하는 과정이 필요합니다. Queue에 데이터가 추가되고 있는 시점에 Scan Speed를 늘리고(High), 데이터의 출력이 종료되어 Queue에 데이터가 추가되지 않는 시점에 Scan Speed를 줄여(Low) CPU 할당률을 기본 상태로 돌려야 합니다.

이러한 Scan Speed는 SetPortWatchIdleInterval()와 SetPortCaptureScanSpeedAutoStart() 메소드로 조절할 수 있습니다. SetPortWatchIdleInterval() 메소드의 경우 Queue의 상태를 판단하여 Scan Speed를 High나 Low로 직접 조절해야 하지만, SetPortCaptureScanSpeedAutoStart() 메소드의 경우 Queue의 상태를 내부적으로 판단해주어 Scan Speed를 자동으로 조절해주는 편리함이 있습니다.

참고 SetPortCaptureScanSpeedAutoStart 메소드의 자세한 내용은 “자료실 → SmartX Framework 관련 → Reference Guide → Part 3. 하드웨어 장치 제어 컴포넌트 → 2. SmartGPIO” 내용을 참고하시기 바랍니다.
장점 - 일정 시간동안 빠른 속도의 연속적인 입력 신호를 처리하기에 적합하여 입력 신호의 누락이 거의 발생되지 않음
단점 - OnPortDatasChange 이벤트(CASE-1)에 비해 응답 성능이 떨어짐
- 카운팅 용도로만 사용할 수 있음(32bit 범위 내)
CASE-3. Work Thread 방식

smartThread를 통해 반복적으로 Port의 입력 신호가 변경될 때를 즉시 알 수 있으며 이에 따른 사용자 인터페이스(UI)를 갱신할 수 있습니다. CPU 사용률이 중요하지 않으며 사용자 인터페이스(UI)를 즉시 갱신해야 할 경우 사용됩니다.

장점 - 입력값 변경에 따른 사용자 인터페이스(UI)를 즉시 갱신할 수 있음
단점 - CPU 사용률이 100%가 되기 때문에 UI 응답성이 떨어짐
CASE-4. Polling 방식

Timer나 반복문을 사용해 값을 계속 읽어서 값의 변경을 확인하고, 처리하는 방식입니다. 중요한 데이터를 입력받는 경우 사용됩니다.

장점 Port Change Event 보다 입력 처리가 빠름
단점 Loop 문으로 입력을 Check 하므로 사용자 인터페이스(UI) 입력 및 처리가 불가능함
CASE-5. InputCounter 방식

별도의 InputCounter블록이 입력 신호의 상승 엣지마다 값을 카운트하여 저장하고, SmartInputCounter-Block으로 그 값을 읽는 방식입니다. OnPortDatasChangeCapture Event보다 더 고속으로 일정 시간 동안 카운팅해야 하는 경우, OnPortDatasChangeCapture Evnet방식의 범위인 32bit보다 더 많은 수를 카운팅해야 하는 경우 사용됩니다.

장점 - OnPortDatasChangeCapture 보다도 성능이 약 17배 빠름(IEC1000-Series 기준)
• InputCounter : 680kHz
• OnPortDatasChangeCapture : 39.02kHz(단순한 방법 기준)
- 에러가 발생하는 경우 예외 처리를 할 수 있음
- 최대 64bit 범위를 카운팅할 수 있음
단점 - 카운팅 외 입력에 따른 별도의 처리는 할 수 없음
- 별도의 옵션 제품을 구입해야함

3. 입력 확인 주기(Input Scan Cycle Time)가 가변인 이유

입력 처리는 CPU의 가용 상태에 따라 입력 처리 시간이 달라질 수 있습니다. CPU는 단일 코어이므로 백그라운드에서 돌아가는 많은 작업(Task)이 실행되는 동안 터치 등의 입력을 통해서 별도의 작업이 수행되는 경우 CPU의 가용 상태가 변경되어 입력 확인 주기는 길어질 수 있습니다. 또한, 사용자가 구현한 프로그램의 입력 처리가 복잡한 경우에도 가변 길이가 더 길어질 수 있습니다. 즉, 사용자 프로그램의 성능과 시스템의 동작 방식에 따라 측정값이 달라질 수 있습니다.


4. 장치별 응용 프로그램 환경에 따른 최대 입력 신호 측정



4-1. 입력 확인 주기(Input Scan Cycle Time)를 확인하기 위한 처리 방식 CASE-1. Port Change Event(OnPortDatasChange) 방식
테스트에 사용된 소스 코드

// 입력 신호를 카운팅 할 변수
private int m_iCount;
// A포트 감지 시작
private void btnStart_Click(object sender, EventArgs e)
{

m_iCount = 0;
labCount.Text = m_iCount.ToString();

// 복잡한 방식일 경우
if(chkCPUStress.Checked == true)
{
smartTimer1.Interval = 50;
smartTimer1.Start();
}

// SmartGPIO의 Port를 A로 설정하고 입력Pin 설정
smartGPIO1.PortSelect = SmartX.SmartGPIO.PORTID.PORTA;
smartGPIO1.DirPin1 = SmartX.SmartGPIO.PINDIR.INPUT;

// A포트 상태 변경 감지를 시작하는 메서드
smartGPIO1.PortWatchStart();
}

// 감지 종료
private void btnStop_Click(object sender, EventArgs e)
{
smartGPIO1.PortWatchStop();
smartTimer1.Stop();
}

// A포트의 상태 변경이 감지되었을 경우 발생되는 이벤트
private void smartGPIO1_OnPortDatasChange(int iPortDatas)
{
// 신호 감지 시점을 선택하여 수신 받음(LevelChange, NegativeEdge, PositiveEdge 중 선택)
SmartX.SmartGPIO.PORTPIN iBit = smartGPIO1.PortDetection(SmartX.SmartGPIO.PORTID.PORTA, SmartX.SmartGPIO.TRIGGERMODE.HighActive, iPortDatas, SmartX.SmartGPIO.PORTPIN.PIN1);
// Counting
if (iBit == SmartX.SmartGPIO.PORTPIN.PIN1)
{
// 라벨에 데이터를 표시
labCount.Text = (++m_iCount).ToString();
}
}

private void smartTimer1_Tick(object sender, EventArgs e)
{
// 입력 처리를 복잡하게 하는 코드(복잡한 방법)
smartDraw1.Chart.PutData((int)(100 * Math.Sin((double)m_iCount / 50)));
smartListBox1.AddItem(m_iCount.ToString());
}


CASE-2. Port Capture Event(OnPortDatasChangeCapture)방식
테스트에 사용된 소스 코드

private int m_iCount;
private void butStart_Click(object sender, EventArgs e)
{

m_iCount = 0;
labCount.Text = m_iCount.ToString();

// SmartGPIO의 Port를 A로 설정하고 입력Pin 설정
smartGPIO1.PortSelect = SmartX.SmartGPIO.PORTID.PORTA;
smartGPIO1.DirPin1 = SmartX.SmartGPIO.PINDIR.INPUT;

smartGPIO1.PortDetection_Initialize();
smartGPIO1.SetPortCaptureScanSpeedAutoStart((int)udScanSpeedHigh.Value, (int)udScanSpeedLow.Value);

smartGPIO1.PortWatchStart();
}

private void butStop_Click(object sender, EventArgs e)
{
// PORTA의 입력 감지 종료
smartGPIO1.PortWatchStop();
// Scan Speed 자동 변환 종료
smartGPIO1.SetPortCaptureScanSpeedAutoStop();
}

private void smartGPIO1_OnPortDatasChangeCapture(int iPortDatas)
{
// 신호 감지 시점을 선택하여 수신 받음(LevelChange, NegativeEdge, PositiveEdge 중 선택)
SmartX.SmartGPIO.PORTPIN iBit = smartGPIO1.PortDetection(SmartX.SmartGPIO.PORTID.PORTA, SmartX.SmartGPIO.TRIGGERMODE.HighActive, iPortDatas, SmartX.SmartGPIO.PORTPIN.PIN0);
// Counting
if (iBit == SmartX.SmartGPIO.PORTPIN.PIN1)
{
// SmartLabel에 데이터를 표시
labCount.Text = (++m_iCount).ToString();
}
}

private void smartTimer1_Tick(object sender, EventArgs e)
{
// 입력 처리를 복잡하게 하는 코드
smartDraw1.Chart.PutData((int)(100 * Math.Sin((double)m_iCount / 50)));
smartListBox1.AddItem(m_iCount.ToString());
}


CASE-3. Work Thread 방식
참고 Background Worker Thread를 사용하는 자세한 방법은 “자료실 → Tech Note → 68. SmartThread를 이용한 Background Worker 기능 구현 방법” 내용을 참고하시기 바랍니다.
테스트에 사용된 소스 코드

// CPU의 부하 여부를 나타냄(true : 복잡한 방법 / false : 단순한 방법)
private bool m_bCPUStress = false;
private int m_iCounting = 0;
// 입력 신호 저장하는 리스트
private List<int> m_listChartDatas = new List<int>();

private void Form1_Load(object sender, EventArgs e)
{

// Worker Thread 사용 활성화
smartThread1.WorkerReportsProgress = true;

// SmartGPIO의 Port를 A로 설정하고 입력Pin 설정
smartGPIO1.PortSelect = SmartX.SmartGPIO.PORTID.PORTA;
smartGPIO1.DirPin1 = SmartX.SmartGPIO.PINDIR.INPUT;

smartGPIO1.PortDetection_Initialize();
}

private void btnHardStart_Click(object sender, EventArgs e)
{
// 복잡한 방법
m_bCPUStress = true;
smartThread1.Start();
}

private void btnEasyStart_Click(object sender, EventArgs e)
{
// 단순한 방법
m_bCPUStress = false;
smartThread1.Start();
}

private void smartThread1_ThreadFunction(SmartX.ThreadArgs args)
{
// Work Thread를 통해 반복적이고 빠르게 PortA의 PIN1에 입력되는 신호를 감지
SmartX.SmartGPIO.PORTPIN iBit = smartGPIO1.PortDetection(SmartX.SmartGPIO.PORTID.PORTA, SmartX.SmartGPIO.TRIGGERMODE.HighActive, SmartX.SmartGPIO.PORTPIN.PIN0);

if (iBit == SmartX.SmartGPIO.PORTPIN.PIN1)
{
// A1의 Pin1의 입력 신호를 카운팅
m_listChartDatas.Add(m_iCounting++);
// 1,000번마다 UI 갱신
if (m_iCounting % 1000 == 0)
{
smartThread1.ReportProgress(m_iCounting);
}
}
args.bEnd = false;
}

private void smartThread1_UIThreadFunction(SmartX.ThreadArgs args)
{
// 단순한 방법 : UI에 카운팅 횟수 출력
lbCounting.Text = args.iProgressPercentage.ToString();

// 복잡한 방법 : SmartListBox와 SmartDraw에 데이터 출력하여 CPU에 부하를 줌
if (m_bCPUStress == true)
{
foreach (int iAddData in m_listChartDatas)
{
// 일괄 처리 방식으로 데이터 출력
smartDraw1.Chart.PutData((int)(100 * Math.Sin((double)iAddData / 50)));
smartListBox1.AddItem(iAddData.ToString());
}
m_listChartDatas.Clear();
smartDraw1.Chart.ChartNowDraw();
smartListBox1.Refresh();
}
}


CASE-4.Polling 방식
테스트에 사용된 소스 코드

private int m_icounting = 0;

private void Form1_Load(object sender, EventArgs e)
{

// SmartGPIO의 Port를 A로 설정하고 입력Pin 설정
smartGPIO1.PortSelect = SmartX.SmartGPIO.PORTID.PORTA;
// PortA의 모든 Pin을 입력으로 설정
smartGPIO1.DirPin1 = SmartX.SmartGPIO.PINDIR.INPUT;

smartGPIO1.PortDetection_Initialize();
}

private void btnStart_Click(object sender, EventArgs e)
{
while (true)
{
// 현재 Pin의 상태를 저장
int iPortDatas = smartGPIO1.PortDatas;
// 신호 감지 시점을 선택하여 확인한다.
SmartX.SmartGPIO.PORTPIN iBit = smartGPIO1.PortDetection(SmartX.SmartGPIO.PORTID.PORTA, SmartX.SmartGPIO.TRIGGERMODE.HighActive, iPortDatas);

if (iBit == SmartX.SmartGPIO.PORTPIN.PIN1)
{
m_iCount++;
}

smartGPIO1.PortDetection_Update(iPortDatas);

if (m_iCount == 10000)
{
break;
}
}
labCounting.Text = m_icounting.ToString();
}


4-2. 테스트 방법 설명

출력 장치에서 출력 신호를 모두 입력받을 수 있는 최적의 출력 주기를 조절해 10,000번 신호를 토글시키고, 입력 장치에서 smartGPIO1.PortDetection()메소드를 사용해 토글되는 신호를 카운트합니다. 본 테스트는 단순 방법과 복잡 방법으로 분류하여 진행했습니다. 단순 방법은 출력된 값을 입력받아 카운팅을 사용자 인터페이스(UI)에 나타내는 작업만 하지만 복잡 방법은 단순 방법에 아래의 코드를 추가하여 CPU에 부하를 더했습니다.

smartDraw1.Chart.PutData((int)(100 * Math.Sin((double)m_iCount / 50)));
smartListBox1.AddItem(m_iCount.ToString());


5. 제품별 테스트 결과

smartGPIO 입력 처리 관련하여 테스트 결과 및 과정에서 "입력 성능은 Windows CE의 멀티태스킹 환경에 따라 결과 해석이 복잡함"을 확인할 수 있습니다. 이는 단일 코어 CPU에서 백그라운드 프로세서의 영향으로 CPU의 사용량에 따라 입력 성능의 차이를 나타내는 것으로 확인되었으며 이에 따라 개발하는 프로젝트에 맞게 입력 성능을 확인하여 사용하시는 것을 권장합니다. 또한, 아래의 표는 입력 속도가 빠른 순으로 작성되었으며,각 CASE 별 테스트 데이터는 참고용으로만 사용하시기 바랍니다.



참고
해당 테스트 결과는 사용하는 환경에 따라 결과값이 달라질 수 있으므로 참고용으로 사용하시기 바랍니다.
CASE-1. Port Change Event방식
출력 제품 IEC1000-Series
입력 확인 제품 IEC667-Series IEC1000-Series
단순 복잡 단순 복잡
최대 입력 주파수 10.86Hz 2.26Hz 11.9Hz 3.24Hz
CPU 사용량 6~8% 41~45% 3~5% 10~12%
CASE-2. Port Capture Event 방식
참고
- Scan Speed Low 값은 어떠한 값으로 설정하여도 결과값에 영향을 주지 않습니다. 적절한 임의의 값으로 설정하여 사용하시기 바랍니다.
- Scan Speed가 높으면 IEC667-Series의 경우 사용자 인터페이스(UI)의 반응성이 낮지만 IEC1000-Series의 경우 비교적 사용자 인터페이스(UI)의 반응성이 높습니다.
iScanSpeedHigh 100,000
iScanSpeedLow 100
출력 제품 IEC1000-Series
입력 확인 제품 IEC667-Series IEC1000-Series
단순 복잡 단순 복잡
최대 입력 주파수 11.58kHz 17.79kHz 35.4kHz 20.9kHz
CPU 사용량 100%
CASE-3. Work Thread 방식
출력 제품 IEC1000-Series
입력 확인 제품 IEC667-Series IEC1000-Series
단순 복잡 단순 복잡
최대 입력 주파수 10.63Hz 2.64Hz 12.19Hz 6.09Hz
CPU 사용량 100%
CASE-4. Polling방식
참고Polling 방식의 경우 반복문으로 입력 신호를 체크하기 때문에 입력 신호를 받는 동안 다른 처리가 불가능하므로 단순 방법으로만 진행합니다.
출력 제품 IEC1000-Series
입력 확인 제품 IEC667-Series IEC1000-Series
단순 복잡
최대 입력 주파수 15.15Hz 250.01Hz
CPU 사용량 100%
맨 위로
팝업닫기

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