I.서 론
최근 컴퓨터의 하드웨어와 소프트웨어의 급속한 발전으로 데이터의 처리 용량과 처리 요구 속도는 급속히 발전하고 있다. 또한, 전 세계 사람들이 사 용하는 사물 인터넷(IoT), 모바일, 전자 상거래, 온 라인 게임 등으로 데이터는 기하급수적으로 증가하 고 있다[1]. 이러한 빅 데이터에서 컴퓨터가 처리해 야하는 자료는 이미 초당 5천 트랜잭션을 넘었으며, 데이터를 손실 없이 제공하는 문제로 인-메모리 컴 퓨팅에 관한 연구가 많이 진행 되고 있다[2].
빅 데이터가 중요한 이유는 ‘실시간’ 때문이며, 이 는 어떠한 상황에서도 모든 데이터를 분석하여 정 확한 데이터를 적시에 얻는 것이다[3]. 특히 반도체 제조 공정에서 발생되는 데이터의 양과 수집 주기 및 데이터의 형태에 대한 다양성은 빅 데이터의 특 성인 Velocity, Volume, Variety를 모두 요구하고 있 어서, 빅 데이터기술에 대한 관심도 높아지고 있는 것이 현실이다[4, 5]. 반도체 제조 공정에서 중요한 요구사항은 데이터의 유실 없이 실시간의 고속 데 이터를 이용한 분석이지만, 이 부분의 가장 큰 걸림 돌은 리소스(프로세스 메모리) Garbage Collection( GC)에 대한 제약부분이다[6, 7]. 이를 해결하기 위 해 방법의 하나는 인-메모리 컴퓨팅은 어플리케이 션 운영을 위한 데이터를 다수의 분산된 메인 메모 리영역에 상주시켜 운영하는 것이다. 즉, 메인 메모 리영역을 연산 뿐 만 아니라 저장을 위한 공간으로 도 이용하는 것이다[8].
본 논문에서는 인 메모리 데이터 그리드(In Mem -ory Data Grid, IMDG)를 이용하여 리소스의 제약을 고려한 고속의 빅 데이터 처리를 위한 인-메모리 데이터 그리드를 이용한 시스템 구조를 구현하였으 며, 실험을 통해 향상된 성능을 입증하였다. 구현한 시스템은 반도체 공정뿐만 아니라, 고속의 다량, 다 형의 데이터 수집 및 무손실 데이터를 요구하는 모 든 부분에서 응용 가능 할 것으로 생각된다. 또한, 사람의 안전과 관련된 무인 자동차 시대에 데이터 손실로 인한 안전사고 및 사망사고 예방과 분석에 이용할 수 있을 것으로 예상하며, 추후에 타 분야에 도 적용할 수 있도록 연구수행을 할 것이다.
II.인 메모리 컴퓨팅 개요
인-메모리 컴퓨팅(In Memory Computing, IMC)은 가 트너 10대 기술(2012 ~ 2013)로 선정될 정도로 많은 관심과 연구가 진행되고 있다. IMC 기술은 디스크 기반 스토리지에 안에 존재하는 데이터를 메인 메모리로 옮겨 처리하는 기술로 디스크 기반 방식에 비해 몇 배에 달하는 속도 개선 효과를 가져왔다[9]. 이와 같은 속도 개선 효과로 실시간 데이터 처리 기술에 활용 가능성을 높게 보고 있기 때문에 디스크 기반의 데이터 저장 영역보다 훨씬 빠른 속도의 데이터 저장 및 전달 체계를 갖출 수 있는 인-메모리 영역에 많은 기업들이 관심 있게 지켜보고 적용해 오고 있다. IMC와 일반 메모리를 비교했을 때 입출력 속도 차이는 실제 10만 배 이상 차이가 나고 있으며, 메인 메모리에 대용량 데이터를 저장해 처리함으로써 처리 속도도 그만큼 빨라지는 것이다.
IMC는 2000년대 초반 기업에 도입되기 시작하였 으나 비싼 메모리 가격과 모든 데이터를 메모리에 올려서 처리해야 할 정도로 빠른 처리가 필요한 비 즈니스 어플리케이션 수요가 많지 않아 큰 관심을 받지 못했다. 그러나 최근 빅 데이터가 이슈화되면 서 하드디스크 기반 DBMS에서 데이터 처리를 위 해 메모리로 이동시키는 양이 많아지고, 주기 또한 빨라짐에 따라 기존 DBMS로는 적시에 빅 데이터 를 처리하는데 한계를 드러냈다. 그리고 가장 큰 이 유는 하드웨어의 가격이 이전보다 저렴해졌기 때문 이다. 이전 컴퓨터에서 사용되는 하드웨어 장비들 의 가격은 고가였지만 요즘은 저렴한 가격에 훌륭 한 성능을 가진 하드웨어를 쉽게 구입할 수 있어 인-메모리가 많은 관심을 받고 있는 것이다. 또한 부가적으로 실시간 데이터를 처리하는 서비스와 기 술들이 늘어난 이유도 있다[5].
IMC 주요 하드웨어 기술은 D램, 플래시 메모리, SSD(solid state drive) 등이 있으며, 소프트웨어 기술 은 In Memory DBMS, In Memory Data Grid 와 같이 직접 메모리에 있는 데이터를 관리하여 부담을 덜 어주는 In Memory 데이터 관리기술 또는 어플리케 이션에서 직접 메모리 통신을 통해 메시지를 교환 할 수 있는 메커니즘을 제공하는 In Memory Messaging 영역, In Memory 분석, 이벤트 처리와 같 은 어플리케이션 플랫폼, In Memory 데이터 관리 기술 또는 In Memory Messaging을 이용해 구축하 는 어플리케이션 영역 등이 있다[8].
III.반도체 공정에의 어플리케이션 리소스 한계
반도체 제조 공정에서는 장비의 공정 상태를 실 시간으로 확인하기 위해 트레이스 데이터라고 하는 장비 파라메타 데이터를 주기적으로 수집한다[7]. 이에 대한 주기는 주로 1초에서 0.1초로 정의하게 되고, 장비의 Chamber 당 약 50 ~ 100여개의 파라 메타를 설정하여 데이터를 수신한다. 이렇게 수신 된 트레이스 데이터를 이용하여 제조 과정이 정상 적으로 수행되고 있는지를 모니터링하고, 이상 발 생 시 인터락을 발생시킨다. 반도체 제조 공정에서 발생되는 데이터의 양을 일반적인 관점에서 예측한 양은 <Table 1>부터 <Table 3>과 같다.
<Table 1> ~ <Table 3>은 반도체 제조 공정의 1 Fab에 1000대의 생산 장비가 있고, 각 장비 당 4개 의 프로세스 Chamber가 있다는 가정 하에 어느 정 도의 데이터가 발생되는지를 임의로 계산한 것이 다. 즉 <Table 1>은 50개의 파라메타를 매 1초마다 수신할 경우, 1시간동안 수신되는 데이터의 총 량 은 약 3T Byte가 된다. <Table 2>는 파라메타 100개 를 <Table 1>과 같은 조건으로 1시간 수신하면 134T Byte가 된다. <Table 3>은 <Table 2>와 같은 조건에서 0.1초 간격으로 수신하면 1,341T Byte라는 빅데이터가 발생된다는 것이다. 여기서 중요한 것 은 이와 같이 발생되는 다량의 고속 데이터를 수신 해서 다양한 비지니스 로직을 처리해야 하는 어플 리케이션에서는 지속적으로 유입되는 파라메타 값 을 비롯하여, 어플리케이션 내부적으로 저장 관리 해야 하는 정보가 존재하기 때문에 어플리케이션 내부적인 메모리 사용량이 상당히 높아지게 된다. 이러한 메모리의 사용은 과도한 GC를 초래하게 되 고 Full GC가 발생될 경우, Stop-World가 발생하게 되다. Stop-World의 발생은 어플리케이션의 성능 저 하를 초래하게 되고, Out Of Memory(OOM) 발생 가 능성 또한 높아지게 된다. 여기서, Stop -World라 함 은 JVM(Java Virtual Machine, JVM)이 Heap의 Old 영역에 존재하는 가비지 데이터를 정리하기 위해 JVM상의 모든 스레드를 정지시키는 상태를 말하 며, 이 상태에서 어플리케이션은 아무 동작을 하지 않고 멈춰있게 된다.
<Fig. 1>에 사각형으로 표시한 부분은 Full GC 발생 되는 시점으로 Y축은 GC로 인한 지연 시간을 나타내고 있다. 해당 시간동안에는 프로세스 자체 가 정지하게 되어 어플리케이션 프로세스 성능 자 체를 저하 시킨다. 이와 같은 한계는 반도체 제조 공정에서 발생되는 정밀 데이터 수집 및 분석의 장 애가 되고 있으며 이에 대한 해결 방안에 대한 연 구도 지속적으로 진행되고 있다.
IV.IMDG를 이용해 구현한 시스템
본 장에서는 고속, 대용량의 데이터에서 데이터의 손실 없는 데이터 무손실 기법과 구현한 고속의 빅데 이터 처리시스템 구조에 대해서 소개하고자 한다.
1.IMDG를 이용한 무 손실 기법 제안
본 논문을 통해 제시한 무 손실 어플리케이션 시 스템은 크게 데이터 수신 및 고속 데이터 처리 영 역, IMDG 영역, 비즈니스 로직 처리 영역으로 구성 되며, 각 영역은 별도의 프로세스로 구동되는 형태 이다. 각 영역의 주요 특징은 아래와 같다.
1)데이터 수신 및 고속 데이터 처리 영역
-
고속 데이터 수신 후 실시간 통계 처리 (Min/Max, Avg, STD, Median etc)
-
다형의 데이터에 대한 Parsing
-
DB접속 안함(정보는 IMDG를 통해 얻음)
-
일정량의 데이터 수신 후, 수신 데이터를 IMDG에 저장
2)IMDG 영역(데이터 임의 저장 관리 영역)
3)비즈니스 로직 처리 영역
실시간의 고속 데이터를 처리하는 영역(데이터 수신 및 고속 데이터 처리 영역)에서는 DB접속과 같이 많은 리소스를 사용하는 과정을 제거하고, 실 시간 데이터의 처리에만 집중한다. 비지니스 로직 영역은 IMDG 영역에 저장된 데이터를 확인하여 메 시지를 처리하게 된다. <Fig. 2>는 본 논문에서 제 시하는 무 손실 어플리케이션 시스템 구조를 보여 주고 있다.
위의 구조에서 비즈니스 로직 처리 영역의 데이 터 수신 영역에서는 특정 키(장비 ID)에 해당하는 메시지의 존재 유무만을 판단하고, 특정 장비로부 터 수신된 장비 관련 메시지를 특정키 값을 이용하 여 압축하고, 만일 특정 장비의 메시지가 있을 경 우, 해당 장비의 비지니스 로직을 처리하기 위한 스 레드로 이를 알리는 역할만을 담당 한다. 실제 비즈 니스 로직을 처리하는 영역은 특정 키 별로 멀티 스레드로 구현되며, 이 기능은 동시에 여러 메시지 를 압축 해제 및 처리할 수도 있고, 만일 해당 애플 리케이션이 장애로 종료되더라도, 처리 안 된 키값 에 해당하는 메시지는 IMDG에 존재하게 된다. 이 에 따라, DB는 애플리케이션 서버가 다운되더라도 중요한 메시지는 유실되지 않게 할 수 있게 되며, IMDG를 이용함으로써 처리 속도도 향상시킬 수 있 게 된다. 이와 같은 구조를 통해 얻을 수 있는 장점 을 정리하면 아래와 같다.
-
고속 데이터의 실시간 처리 가능
-
IMDG에 기준성 정보 및 장비 파라메타 정보 를 저장 관리함으로써, 어플리케이션의 메모리 리소스 사용량 감소
-
Full GC 횟수 및 Duration 감소(Stop-World)
-
어플리케이션 성능 향상(GC 감소)
-
IMDG의 사용을 통해 메시지 유실 최소화
2.IMDG를 이용한 고속의 빅데이터 처리시스템 구조
반도체 제조 공정에서는 SECS(Semiconductor Equ -ipment Communications Standard)나 EDA(Equipment Data Acquisition) 인터페이스를 통해 1 초 ~ 0.1 초 단위의 반도체 장비 센서 데이터를 수집하여 제조 공정의 문제점, Spec In/Out을 check 및 분석하고 있 다. 그러나 반도체 기술의 발달로 제조 공정이 고도 화, 정밀화됨에 따라 0.1 초 이하의 장비 센서 데이 터에 대한 실시간 분석이 필요하게 되었다.
생산중인 wafer에 결함이 발생하였을 때, 그 결함 의 정확한 원인 분석을 위해 0.1초 이하 단위의 데 이터를 수집 및 분석해야 하는 경우, 현재 적용되어 있는 시스템의 구조 및 데이터 처리 방식으로는 반 도체의 요구사항을 충족시키지 못하고 있으며, 이 에 대한 개선 요구 또한 지속적으로 발생되고 있다.
<Fig. 3>은 현재 문제점과 고속 데이터를 적용하 여 개선할 수 있는 방안에 대해 설명한 것이다. 또 한 반도체 생산 과정에서 발생되는 대용량의 데이 터를 실시간으로 분석하여 장비의 상태를 파악하 고, 공정 결과를 바탕으로 품질이 우수한 장비로 작 업을 우선 할당하도록 하며, 유지보수가 필요한 생 산 장비를 조기에 진단하여 장비의 Down Time을 최소화하기 위해서는 이러한 데이터를 더욱 세밀하 게 고속으로 수집, 처리하는 방안이 요구되고 있다.
<Fig. 4>은 기존에 있던 반도체 생산 공정에서의 고속의 빅 데이터 처리시스템 구조를 보여주고 있다.
<Fig. 5>는 제안한 IMDG를 이용한 고속의 빅 데 이터 처리시스템 구조를 나타내고 있다. <Fig. 6>는 IMDG를 이용한 블록 다이어그램을 보여주고 있고, 간략한 추가 설명은 아래와 같다.
EAP는 장비를 자동화하기 위한 프로그램으로, 장비에서 발생된 메시지를 자동으로 전송하게 해주 는 기능을 수행하며, 메시지 디스패치부의 기능은 수신된 메시지를 일정 순서에 따라 차례대로 디스 패치(dispatch)한다. 디스패치 의미는 메시지의 순차 적인 처리를 위해 작업 또는 태스크에 수신된 순서 에 따라 메시지를 전달해 주는 것을 의미한다. 좀 더 정확하게 설명하면 메시지와 관련된 장비 정보 및 영역 정보를 기준으로 임의의 키 값을 생성하며, 이 키 값은 장비별, 메시지 별로 영역, 장비 명을 기준으로 생성되는 장비별 컨텍스트(context) 항목 별로 유일한 값이 되도록 하였다.
인-메모리 데이터 그리드는 데이터가 분산되어 여러 서버에 저장되고, 각 서버는 활성화된 상태로 운영되며, 데이터 모델은 주로 직렬화(serialized)된 객체지향이면서 필요여부에 따라 서버를 증감할 수 있으며, 테이블과 같은 전통적인 데이터베이스와는 다른 형태를 가진다는 특징이 있다. 즉, 인-메모리 데이터 그리드는 분산 된 다수의 메인 메모리에 데 이터를 저장하기 위해 고안되었으며 확장성을 보장 하며 객체를 바로 저장할 수 있게 구현하였다.
애플리케이션 서버는 액티브 모드로 동작하고, 애플리케이션 서버를 감시 할 수 있는 감시 프로세 스를 이용하여 상호간의 동작 상태를 모니터링 하 도록 한다. 이는 어느 한 서버에 장애가 발생하더라 도 다른 서버가 커버해줄 수 있고, 애플리케이션 서 버에 장애가 발생되더라도 관련 메시지는 인 메모 리부에 그대로 저장되어 있기 때문에 메시지의 유 실이 발생하지 않게 된다. 즉, 장비에서 발생한 메 시지를 키 값과 압축된 형태의 메시지로 인 메모리 부에 저장하고, 애플리케이션 서버로는 키 값만을 전송한 후, 키 값에 대한 로직 처리가 필요할 경우, 키 값을 기준으로 인 메모리로부터 압축된 메시지 를 가져오게 하는 것이다.
V.시험 결과
시험결과 기술은 데이터 무 손실 기법 시험결과 와 무 손실 기법을 이용해 구현한 고속의 빅데이터 처리시스템 구조 시험 결과 순으로 기술한다.
1.데이터 무 손실 기법 시험 결과
시험 조건은 Desktop 1대 안에 Framework을 Act -ive와 Standby 2개로 구동하고, 가상 EQP 메세지를 전송, 구동중인 Active Framework를 강제 종료하고, Standby Framework Active로 자동 전환되어 유실되는 데이터들이 있는지를 살펴보았다. 또한, 장비조건은 10대의장비와 장비 별 Parameter 100개, 전송 간격은 10ms로 수행하였다. 메시지 시험 전송 시 1개의 메시 지 크기는 938 bytes이고, 초당 10개의 장비이므로 크 기는 0.894 Mbytes로 1시간이면 3.14 Gbytes 로 고속 의 대용량 자료가 전송되도록 하였다. <Fig. 7>은 데 이터 무 손실 기능 시험결과를 보여주고 있다. 결과 는 Framework 강제 종료 시 전송 자료의 유실이 없으 며, 또한 Parameter 별 DB에 저장된 정보 확인 결과도 자료의 유실이 없음을 알 수 있었다.
2.고속의 빅데이터 처리 시스템 시험 결과
시험 조건은 Desktop 1대는 가상머신(vmware)으 로 사용하고, OS는 windows 10 64bit, CPU i5(4 Core), Memory 16G 사용하였다. OS 2는 Linux Cent -OS 64bit, CUP i5(2 Core), Memory 8G롤 구성하였 다. 메시지 전송은 무 손실 기법 시험 조건과 같게 하였다. 다음 장에 있는 그림을 참조하면, <Fig. 8> 은 고속의 빅데이터 처리 시스템 기능 검증시험 구 성도를 보여주고 있고, <Fig. 9>에서 나타난 결과처 럼 data cache와 transaction 시간은 초기부터 안정적 으로 유지되었고, DB도 초기 이후 점차 안정됨을 알 수 있다. 또한, 수신 자료도 순차 처리와 자료 유실 없이 DB에 저장되는 것을 알 수 있었다.
<Table 4>는 EES(Equipment Engineering Solution) 어플리케이션의 일반적인 구조로 기존시스템과 제 안시스템의 성능 향상을 비교한 결과이다. 약 30% 의 성능 향상을 예상할 수 있었다.
V.결 론
논문에서 첫 번째 시험한 데이터 무 손실 기법 시험 결과에서 고속의 빅데이터를 유실 없이 효과 적으로 처리하는 것을 시험으로 제시하였다. 또한 고속의 빅 데이터로 인해 발생할 수 있는 서버 애 플리케이션의 OOM의 발생 가능성을 줄이고, 애플 리케이션 서버에 장애가 발생되더라도 데이터 유실 을 최소화할 수 있다. 두 번째로 시험한 고속 빅데 이터 처리 시스템 시험 결과에서는 반도체 제조 공 정에서 발생되는 고속의 다양한 형태의 빅데이터를 유실 없이 처리하기 위한 방안으로 IMDG를 활용한 시스템 구조 및 데이터 처리에 대하여 기존 시스템 보다는 더 많은 자료를 유실 없이 약 30% 향상된 성능을 보였다. 두 가지 시험으로 향상된 효과를 간 단하게 기술하면 아래와 같다.
본 논문을 통한 시험으로 검증은 완료되었다고 생각되며, 이러한 기술은 반도체 제조 공정뿐 만 아 니라, 고속의 다양한 형태의 데이터를 손실 없이 처 리하기 원하는 모든 빅데이터 산업 군에 적용 가능 할 것이라 예상한다. 또한 추가적으로 극복해야 제 약사항은 IMDG와의 Interface 속도, IMDG Transaction 처리를 위한 지연 발생, IMDG를 이용함으로써 발생되는 어플리케이션 성능 영향 최소화 방안과 설비(sensor) 데이터를 수신하는 로직의 안정화이다. 이러한 제약은 추가적인 연구와 실험을 통하여 해 결 할 수 있을 것으로 생각된다.