태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

엑기스 | InterMax 모바일 APM

기술이야기/엑.기.스 2019.09.06 13:09


 

 


 

엑셈의 InterMax(인터맥스)는 End-to-End APM(Application Performance Monitoring) 솔루션입니다.

다양한 분야에서 제 몫을 톡톡히 해내고 있는 인터맥스. 모바일 버전도 있다는 거 아시나요?

모바일 앱도 모니터링한다! 이번에는 엑셈의 모바일 APM에 대해서 살펴보겠습니다.

 

 

 

 

 

 

Mobile APM이란, 모바일 앱 품질을 파악하고 문제를 해결하기 위해 SDK연동을 통한 다양한 모니터링 데이터를 실시간 수집하여 분석을 제공하는 것입니다. 

- 앱의 사용 비즈니스 흐름을 파악하여 최적의 UI/UX 제공

- 신규 방문자, 방문자 성별, 나이 or 기타 사용자 데이터 수집 가공을 통해 분석 기능 제공

- HTTP, HTTPS 호출 페이지의 처리 속도 측정

- Crash, Error, Exception, Trace 데이터 수집을 통한 앱 오류 발생 확인

- 앱의 최신 버전 사용량(비율) 확인

- 주요 이벤트에 대한 호출 빈도 확인

 

 

 

 

인터맥스 mAPM은 기본적인 고객 단말부터 서비스 레벨 성능 및 오류에 대한 전반적인 성능 모니터링을 제공합니다. 앱 성능 모니터링, 앱 품질 검증, 고객 패턴 분석, 서비스 활용 분석 등 운영자, 기획/분석가, 마케터, 개발자 측면으로 다양하게 활용할 수 있습니다.

 

 

 

 

또한, InterMax mAPM은 다양한 모바일 성능 관리 기능을 통해 모바일 유저의 실시간 Real User Monitoring 및 이슈 발생 시 즉각적인 대응 및 원인 분석으로 고객 서비스 만족도 향상을 기대할 수 있습니다. 

 

  

 

 

본격적으로 mAPM의 주요 기능을 살펴보겠습니다. 인터맥스 mAPM은 하나의 앱 뿐만 아니라 여러 개의 앱을 한 화면에서 동시에 모니터링이 가능한 멀티 앱 실시간 모니터링 기능을 제공합니다. 또한, 크래시 및 예외 발생 시 상세 분석 trace 제공 등 앱 품질 향상을 위한 다양한 분석 데이터를 제공합니다.

 

 

 

 

[실시간 모니터링 기능]

하나의 앱 뿐만 아니라 여러 개의 앱을 한 화면에서 동시에 모니터링이 가능한 멀티 앱 실시간 모니터링 기능을 제공하며, 멀티 앱 모니터링 중 상세 모니터링을 위해 Single 앱 모니터링 화면으로 연계가 가능합니다. 또한 앱의 전반적인 상태를 알 수 있는 주요 지표 표현 및 임계치 설정에 따른 알람 발생을 확인 가능하며, 누적 지표에 대한 전일 비교 증감 표현, 에러와 Trace 데이터 연계 분석도 가능합니다.

 

 

 

 

[사용자 트랜잭션 분석 기능]

사용자 트랜잭션이란?

애플리케이션 개발자가 특정 상황에 대한 모니터링을 위해 의도적으로 단계 별 스텝을 부여할 수 있으며 이런 일련의 한 업무 플로우를 사용자 트랜잭션이라고 합니다. 

 

 

 

 

[오류 분석 기능]

크래시 발생 추이 및 발생기기와 OS, 앱 버전을 기준으로 크래시 발생 비율을 분석하고, 예외 스택 내용 확인을 통해 애플리케이션 오류의 원인을 분석합니다.

 

 

 
 

[다양한 분석 기능]

이 외에도 인터맥스 mAPM이 제공하는 다양한 분석 기능을 보실까요?

- 이벤트 분석 : 애플리케이션 개발자가 지정한 이벤트의 추이와 통계 분석을 통해 모니터링 하고자 하는 독립적인 사건의 빈도 파악이 가능합니다.

- 네트워크 트래픽 분석 : 애플리케이션 외부의 데이터를 네트워크를 통해 호출한 횟수의 추이와 통계 분석이 가능합니다.

- 네비게이션 분석 : 사용자가 페이지를 이동한 동선을 Sankey Chart를 통해 직관적으로 확인이 가능하며, 사용 빈도가 높은 화면이 어떤 화면이고 앱 개발 시 화면 이동 flow설계가 잘 되었는지 확인이 가능합니다.

- 사용자 분석 : 앱이 사용하는 이벤트를 잡아 이를 카운팅하여 실제 앱을 사용하는 사용자 현황 파악이 가능하고, 사용자(성별, 연령)/신규/재방문 통계 지표를 제공합니다.

 

 

 

 

- 앱 단말 사용 현황 : 단말의 앱 버전에 대한 사용률 분석이 가능하며, 최신 앱 버전이 잘 배포되어 사용하고 있는지 확인이 가능합니다.

- 페이지 사용 분석 : 화면(activity) 기준의 페이지 사용 시간을 분석하는 기능인데요, 앱의 어떤 화면에 머무는 시간이 많은지 분석해줍니다.

 

 

 

 

인터맥스 mAPM만의 특장점은 다음과 같습니다.


[네트워크 트래픽 InterMax 연계 분석]

Mobile WebView에서 수행된 네트워크 트래픽에 대한 APM 연계 모니터링을 제공하며, 비즈니스 처리 흐름 및 상세 trace 분석을 위한 연계 분석도 제공합니다.

 

 

 

 

[하이브리드 앱 모니터링]

최근 Native App과 WebApp 이외 하이브리드 App을 선호하는 기업들이 많습니다. 인터맥스 mAPM은 Native용 SDK와 script용 SDK가 서로 통신하여 두 개의 레이어에서 실행되는 모듈을 통합하여 모니터링이 가능합니다.

 

 

 

 

[브레드크럼]

브레드크럼(BreadCrumbs)이란?

쉽게 말하면, 사용자가 어떤 경로를 거쳐왔는지 알려주는 서비스입니다. 인터맥스 mAPM에서는 장애가 발생한 시점까지 사용자의 사용 패턴을 확인할 수 있도록 하여 장애 원인 분석을 정확하게 할 수 있도록 지원합니다.

 

 

 

 

[사용자 데이터 수집]

기본적으로 수집하는 항목 외에 추가적으로 필요한 항목(user_data)을 추가 수집하여 Mobile APM 엔진에서 통계하여 Customizing된 통계 데이터 표현이 가능합니다.

 

 

 

 

[다양한 성능 지표에 따른 알람 발생 및 SMS 연계]

SMS 스케쥴 기능을 통해 특정 기간의 시간대에 발생하는 알람에 대해서만 SMS 연계가 가능합니다.

 

 

 

 

 모바일 앱 성능 현황을 살펴 볼 수 있게 하여 이를 통해 최종 사용자 경험 관련 문제를 찾아 해결하는데 도움을 주는 모바일 APM. 엑셈 뿐만 아니라 해외 많은 기업들이 서비스를 제공하고 있는데요. 늦기 전에 도입하여 고객들에게 안정적인 서비스를 제공해야 합니다.

 IT 센트럴 스테이션 사용자 커뮤니티에 따르면 모바일 APM 제품을 선택할 때 고려할 가장 중요한 기준으로는 면밀한 데이터 가시성, 강력한 모니터링 역량, 고급 트렌드 분석이 손꼽혔습니다. 인터맥스 mAPM의 주요 기능이기도 하지요. 모바일 APM도 모니터링의 강자 엑셈에게 맡겨주세요!






기획 및 글 | 사업기획팀 박예영






[Semtong 140회] 벌써 10월? 아..시월

다른 이야기도 궁금하시다면?

 

 

 🏃🏻 엑셈 뉴스룸 | 엑셈 기술력 뿜뿜 in 나주

 👍🏻 엑셈 브랜드스토리 Brand X l Visual Motif 2. #Play with exem

 👨🏻‍💻 엑기스 | InterMax mAPM


엑기스 | 양자역학과 양자컴퓨터 이야기

기술이야기/엑.기.스 2019.04.10 14:54


 

 

들어가기에 앞서...

 이 글은 상당 부분을 책 <케네스 포드의 양자물리학 강의>의 내용을 참고 및 재구성했습니다. 양자역학과 양자컴퓨터에 대한 이해에 조금은 보탬이 되었으면 하는 바람으로 작성했으니 재미있게 읽어주시고, 양자역학에 대해 더 자세하게 알고 싶으시다면 책을 읽어보시길 추천드립니다. 

 

 

서론

알베르트 아인슈타인 “신은 주사위 놀이를 하지 않는다.”

닐스 보어 “양자 이론을 생각할 때 머리가 아프지 않은 사람이 있다면, 그 사람은 제대로 이해하지 못한 것이다.”

리처드 파인만 “세상에 양자 이론을 이해하는 사람은 없다고 해도 과언이 아니다.”

에르빈 슈뢰딩거 “나는 그것(양자역학)을 좋아하지 않는다. 내가 그 발전에 기여했다는 것이 유감이다.”

막스 폰 라우에 “그것(드 브로이 물질파 이론)이 사실이라면 나는 물리를 그만두겠다.”

 

 우리는 수 많은 과학자들의 인용구에서부터, 우리가 알던 위대한 과학자들조차 고개를 젓게 만드는 양자이론을 이해하려고 달려들면 분명 골머리를 썩히는 정도로 끝나지 않을 것이라고 예상할 수 있다. 하지만 세상은 이미 현실로 다가오고 있는 양자컴퓨터, 양자통신 등을 맞이할 준비로 분주하며, 양자 물리학의 오묘한 이론들은 이미 주사 터널링 현미경, 마이크로 회로, 레이저 등 현실에서 활용되고 있다. 멀지 않은 미래에 양자 이론이 점철된 세상에 대뜸 직면하기 전에, 머리가 지끈거릴지언정 양자 이론이 건네는 이야기를 귀담아 들어볼 가치는 충분할 것이다.

 

 

가깝고도 먼 상식의 바깥, 아원자 세계

 양자 이론이 초대하는 양자 세계에 발을 들이기 전에, 우리의 드레스 코드를 점검할 필요가 있다. 양자 이론에서 다루는 세상은 우리가 일상에서 보고 듣는 세상의 모습인 거시 세계와는 상당히 다르며, 거시 세계의 관점으로 바로 접근하려고 하면 퇴짜를 맞게 될 것이다. 양자 이론의 연구 영역은 원자조차도 거대해 보이는 아원자 세계를 들여다봐야 하며, 매우 작고(양자 이론), 매우 빠른(상대성 이론) 입자들의 세상이라고 말할 수 있다. 덧붙여 ‘양자’란 어떤 특정한 입자를 가리키는 것이 아니라, 이러한 원자 또는 원자보다도 작은 세상에서 양자 이론의 규칙을 따르는 모든 입자를 지칭한다.

 

 그렇다면 원자보다 작은 세상이란 얼마나 작은 세상인지 상상해보자. 우주의 반지름은 10의 26승 미터쯤 되고, 입자 실험의 최소 탐사 거리는 10의 -18승 미터쯤 된다. 둘 사이의 중간 평균은 10의 4승 미터 즉 10km가 되는데, 누군가의 통근 거리 되는 우리가 사는 세상의 길이라고 볼 수 있다. 따라서 우리가 아원자 세계를 들여다보려는 시도는 우주 바깥에서 우리가 출퇴근을 하는 모습을 관찰하려는 시도 만큼이나 황당한 시도라고 볼 수도 있겠다.

 

 단순히 무지막지하게 작다는 사실만이 우리가 양자 이론의 법칙들을 이해하기 힘들게 하는 게 아니다. 아원자 세계에서는 우리가 알던 직관과 상식이 통하지 않는다. 파동-입자 이중성, 중첩과 얽힘, 배타 원리, 그 밖의 수 많은 아원자 세계의 규칙이 되는 물리학 법칙들이 있다. 우리가 이러한 아원자 세계의 상식으로 움직인다면 차를 타고 다닐 필요 없이 순간 이동을 할 수 있게 되며, 서울에서 아침밥을 먹는 동시에 뉴욕에서도 저녁 식사를 할 수도 있다.

 

 이제 앞서 이야기한 물리학자들이 양자 역학을 대하는 심정이 조금은 이해가 간다. 이렇게 귀신 같은 현상들(물질의 파동성, 확실성이 아닌 확률성을 근간으로 하는 양자)을 기초로 하는 양자 이론은 사실 오랜 역사 동안 실험적 검증에서 실패한 예가 하나도 없다. 즉, 물리학자들이 양자 역학을 힘들어하는 데는 이런 귀신 같은 현상들이 그 근간이 되는 원리가 밝혀진 바가 없는 반면, 아원자 세계의 현상을 설명하는데 있어 단 하나의 흠도 없이 굴러간 성공적인 이론이기 때문이다. 어느 날 외계인이 찾아와 건넨 출처를 알 수 없는 말도 안되는 예언들이 막상 현실에서는 모두 들어맞는 것과 같은 상황에서, 양자물리학자들조차 자연의 이치를 깨우친다기보다 반쯤 해탈한 상태로 그저 받아들일 뿐이다...

 

닐스 보어 “아인슈타인, 신에게 참견하지 말게나.”

-1927년 솔베이 회의 중, 알베르트 아인슈타인이 남긴 말 “신은 주사위 놀이를 하지 않는다.”에 답하며.-

 
 
중첩(Superposition)과 얽힘(Entanglement)

 양자 이론이 이야기하는 세계는 정말 기괴한 현상들 뿐이지만, 조금 더 나아가 보자. 중첩과 얽힘은 양자 이론에서 가장 중요한 개념 중 하나에 속하기도 하지만 역시 가장 이해하거나 받아들이기 어려운 부분이기도 하다. 중첩에 대해 얘기하기에 앞서, 드 브로이의 방정식을 먼저 살펴보자.

왼쪽은 파장(람다), 오른쪽은 플랑크 상수 h와 운동량 p이다. 고전 역학에서는 엮일 일이 없었던 두 개념인 파장()과 운동량(p)이 양자적 연결 고리(플랑크 상수 h)로 이어졌다(=). 따라서 드 브로이 방정식은 파장이 운동량과 연결되어 있음을 시사하는 양자계의 혁명적인 발견이었다. 여기에서 더 나아가면 특정 파장은 특정 운동량을 갖는다는 의미를 찾을 수 있다.

 

 양자 역학에서 파장은 여러 파동들의 중첩으로 생긴 수학적인 확률 함수인 ‘파동함수’로 나타낼 수 있는데, 이 함수의 절대값의 제곱(정확히는 진폭의 복소제곱)은 입자가 특정 위치에서 존재할 확률을 나타낸다.

 

 이제 위의 혼란스러운 수학적인 문구들을 종합해 수소 원자 주위를 도는 전자에게 적용해보자. 전자는 파장을 가지며(사실 모든 물질은 파장을 지닌다) 이는 여러 파동들의 중첩으로 이루어져 있다. 그리고 각각의 파동들마다 특정 운동량을 지니며, 이는 곧 수소 원자핵 주변을 도는 전자가 동시에 두 가지 이상의 운동량을 가진다는 의미가 된다. 이를 중첩이라고 하며, 우리가 확인(관측)하는 순간에는 파동함수의 확률을 통해 이러한 수 많은 운동량 중 어떤 운동량을 가질지 결정이 된다. 한 문장으로 설명하자면 양자의 상태는 우리가 눈으로 확인(관측)하기 전까지 알 수 없으며, 그만큼 하나의 양자는 여러 상태를 동시에 가질 수 있다는 것이 중첩이다.

<중첩을 묘사하는 대표적인 예, 슈뢰딩거의 고양이 역설>

 슈뢰딩거는 양자역학의 비상식적인 면을 비판하기 위해 역설적인 사고 실험을 내놓았지만 아이러니하게도 양자역학을 묘사하는 가장 대표적인 실험이 되었다 - 출처 : IBS(기초과학연구원)

 

 아마 제일 이해할 수 없는 부분은 ‘여러 상태를 동시에 가진다’와 ‘관측하는 순간에 확률에 의해 상태가 결정된다'는 부분일 것이다. 하지만 머릿속으로 중첩된 상태의 전자가 상상되지 않는다고 낙담할 필요는 없다. 당연하게도 우리의 관점으로는 투수가 던진 야구공이 직구와 커브 두 가지 경로로 동시에 다가오고 있는 상황이나, 슈뢰딩거의 고양이의 운명이 상자를 여는 우리의 손에 달려있다는 것을 이해할 수가 없다. 사실 중첩을 완벽히 묘사하는 삽화를 찾을 수 없는 이유도 양자 물리학자들 또한 마찬가지로 중첩 상태를 머릿속에 그릴 수는 없기 때문이다.

 

 양자 얽힘은 중첩과 크게 다르지 않다. 중첩이 공간 상으로 떨어져 있는 둘 이상의 계(system)에 일어난 경우를 얽힘이라 한다. 광자(빛 알갱이)를 쪼개어보자. 쪼개진 광자들은 스핀 up, 스핀 down 두 가지 양자 상태를 가지는 중첩된 상태가 되었으며, 한 쪽이 up이라면 다른 한 쪽은 down을 갖는다. 그리고 광자 한 쪽은 아주 멀리, 다른 은하 건너편까지 보내놓는다. 이때 지구에 남은 광자 한 쪽을 확인(관측)하는 순간 파동 함수는 붕괴되고 확률에 의해 지구에 남은 광자의 양자 상태가 결정되는데, 특이하게도 그 순간 은하 건너편의 광자 한 쪽의 양자 상태도 결정된다. 지구에 남은 광자가 up이라고 확인하는 순간 은하 건너편의 광자는 down이 되고, 그 반대도 마찬가지이다. 

  

 얽힘을 이해하려면 아무리 멀리 있어도 두 입자는 사실 쪼개지기 전이나 쪼개진 후나 ‘하나의 계’를 이룬다는 해석이 필요하다. 사실 시공간의 제한에 항상 갖혀 살던 우리의 관점에서는, 은하 건너편까지 옮겨간 광자와 지구의 광자가 둘이 꼭 붙어있는 것처럼 행동한다는 걸 이해하기란 전혀 모르는 외국어를 듣는 느낌보다도 더 할 것이다. 아인슈타인 또한 양자 얽힘을 “귀신 같은 원격 현상”이라고 표현하며 그의 생애 동안 끝까지 인정하지 않았다. 앞서 언급했듯이, 중첩이나 얽힘 역시 어째서 일어나는 현상인지 까지는 현재 규명해내지 못했으며, 과학계 또한 ‘가정’과 ‘측정 결과’가 잘 맞아 떨어지니 그저 받아들일 수 밖에 없다는 입장이 대부분이다.

 
 
큐비트(Qubit)와 양자컴퓨터(Quantum Computer)
 전자의 중첩을 이해했다면(또는 어쨌든 그렇다 치자고 받아들였다면..) 이제 큐비트라는 것을 설명할 수 있다. 올해 초 CES 2019에서 선보인 IBM의 ‘최초의 상용 양자 컴퓨터’가 화제였다. 아직 갈 길은 멀어 보이지만, 양자 컴퓨터가 드디어 연구실 밖으로 발을 내딛었다는데 의의가 있어 보인다. 왜 사람들은 양자 컴퓨터의 출현을 기다리고 있을까? 양자 컴퓨터라고 해도 현존하는 슈퍼컴퓨터보다 연산이 좀 더 빠른 정도가 아닐까? 양자 컴퓨터의 잠재력을 가늠하려면 우선 양자 컴퓨터가 어떤 것인지 알아봐야 할 것이며, 양자 컴퓨터가 그리는 혁신적인 미래는 큐비트로 실현된다.
 

<세계 최초 상용 양자컴퓨터”라는 타이틀을 걸고 등장한 IBM Q System One - 출처 : IBM>

 

 큐비트란 ‘동시에 두 방향의 스핀을 갖는 전자’다. 또는 연산의 기본 개념인 비트(bit)와 양자(quantum)가 합쳐진 양자 비트(quantum bit)의 줄임말이다. 두 방향의 스핀을 0, 1이라고 본다면 고전적인 비트와 차이점은 무엇일까? 앞서 이야기한 중첩이 다시 등장할 때이다. 비트는 0 또는 1 둘 중 하나일 뿐이지만, 큐비트는 중첩된 두 방향의 스핀을 가지므로 동시에 0과 1 두가지일 수 있다. 그래서 큐비트를 표현할 때는 그림과 같은 구체로 많이 표현되며, 구체 표면을 향하는 벡터 0일 확률과 1일 확률의 혼합으로 나타낸다. 덧붙이자면 꼭 0과 1이 동등한 확률일 필요는 없다. 큐비트는 87%는 0이면서 13%는 1일 수도 있다. 물론 큐비트도 중첩 상태이므로 관찰하는 순간, 0 또는 1로 결정된다.

<큐비트를 표현한 ‘블라흐 구체’ - 출처 : IBM>

 

 이렇게 두 가지 상태가 중첩된 큐비트는 연산에 적용할 때 이론 상 방대한 연산 능력을 보여준다. 고전적인 비트가 논리 게이트를 한 번에 하나씩 통과할 때, 큐비트는 동시에 두 가지 상태가 통과한다. 큐비트 하나는 0과 1 두 가지 상태 뿐이지만, 큐비트를 하나씩 늘려보면 이야기가 달라진다. 두 개의 큐비트를 시뮬레이션 한다면 00, 01, 10, 11 네 가지의 상태를 얻을 수 있으며, 이 네 가지 결과의 가능성들이 두 개의 큐비트에 한데 묶여서 표현된 것이다. 이어서 세 개의 큐비트는 23개, ... N 개의 큐비트는 2N개의 방식으로 혼합될 수 있다. 이론 상의 양자 논리 게이트라면 이 어마어마한 가능성들을 한 번에 읽어낼 것이다. 그러나 엄청난 수의 큐비트를 탑재한 양자 컴퓨터가 실현되기 어려운 이유는 이 논리 게이트가 계를 방해하지 않아야 한다는 조건이 붙기 때문인데, 조금이라도 상호 작용이 발생하는 순간 큐비트의 수 많은 가능성들은 단 하나의 가능성으로 붕괴할 것이다. (관측에 의해 중첩이 사라지고 결과만이 남는 것이다. 상자를 열어 슈뢰딩거의 불쌍한 고양이의 운명을 결정지어버린 것.) 현재도 양자 컴퓨팅 분야의 많은 연구진은 극저온의 매우 민감한 프로세서로 큐비트를 제어하느라 애를 먹고 있다.

 

 다시 큐비트의 이야기로 돌아가서, 이제 이상적인 양자 논리 게이트를 거친 큐비트에서 정보를 추출해보자. 무수한 가능성들은 붕괴되고 평범한 비트와 같은 단 하나의 정보가 추출되어 나온다. 말단에서는 결국 정보를 추출해서 고전적인 비트 형태의 결과물을 얻어야 한다면 양자 컴퓨팅의 이점은 없는 것일까? 아니다. 큐비트는 무수한 가능성들을 거쳐서 하나의 결과를 보여준 것이다. 즉, 중첩되어 있던 방대한 양의 정보가 단 하나의 해답으로 쏟아져 들어간 것이다. 

 

 이러한 특징은 우리가 양자 컴퓨터를 어떻게 활용할 것인가에 대한 통찰력을 선사한다. 예를 들면 도로 교통 상황을 분석하는 문제에서 차량 하나하나의 움직임을 분석하면 교통 상황을 예측할 수 있겠지만, 현재는 알고리즘의 복잡도와 연산 속도라는 한계로 인해 현실적으로 이런 분석은 불가능하다. 하지만 양자 컴퓨터는 수 많은 차량의 가능성(방대한 양의 정보)을 계산해 도로 상황을 예측(단 하나의 해답)을 내 놓을 것이다. 이 외에도 양자 컴퓨터는 날씨 예보, 암호 해독, 신약 개발, 시장 분석, 자연어 분석 등등 수 많은 분야에 활용 될 수 있으며 현재 풀리지 않은 미스터리 같은 문제인 아원자 입자들의 미시적 운동을 분석하는 학문 분야까지 해답을 찾아내 줄 것으로 기대되고 있다.

 
 

마무리

 지금까지 양자 역학 세계의 일부분을 살펴보면서 양자 컴퓨터란 어떤 것인지 까지 간단하게 알아보았다. 양자 이론은 알면 알수록 이해할 수 없지만, 오히려 그렇기 때문에 더욱 더 의문점을 남기며 파고들게 하는 것 같다. 양자 컴퓨터가 아직 얼마 나아가지 못한 듯 보여도, 양자 컴퓨터가 세상을 바꾸는 미래는 반드시 올 것이며, 어쩌면 우리가 생각하는 것보다 빠를 수 있다. 머리가 아파오는 이론이지만 미래에 대비하기 위해서라도 양자 세상을 들여다보면, 생각했던 것보다는 제법 흥미롭다는 것을 발견할 수 있을 것이다.

 

존 휠러 “살날이 얼마 남지 않은 것 같으니, 남은 시간은 양자에 대해 생각하는 게 좋겠다.”

 

 

감사합니다.

 

 

EXEM의 콘텐츠에 대하여 궁금하다면? 여기를 눌러 문의해보세요!


 

 


기고 | AI사업본부 이동하

편집 | 사업기획팀 박예영

엑기스 | OpenJDK 동향

기술이야기/엑.기.스 2019.01.04 10:42




1. OpenJDK란?

OpenJDK는 Java SE(Standard Edition)의 오픈소스 구현체로, Java가 지금의 오라클에 속하기 전인 2006년 썬 마이크로시스템즈 시절에 시작한 프로젝트입니다. 최초 배포 버전은 JDK 6입니다. 2018년 6월 21일 오라클에서 Java SE에 대한 유료 구독 모델을 발표했고, 대안으로 OpenJDK가 급부상하게 되었습니다. 이에 따라 최근 활발하게 연구가 진행되고 있으며, 다양한 버전의 OpenJDK 구현체들이 나오고 있습니다.

 

2. OpenJDK와 OracleJDK의 차이 

OpenJDK가 처음 나왔을 당시에는 OpenJDK가 OracleJDK보다 성능이나 안정성이 크게 떨어졌지만, 최근에 와서는 일부 OracleJDK에만 들어가는 JRockit 관련 코드, JavaFX, 글꼴관련 렌더링 코드, Applet, Java WebStart구현, Java Plugin 등 몇몇 유틸 기능을 제외하면 큰 차이는 없으며, Java 11부터 공개되는 OpenJDK는 Timezone Updater나 Usage Logger 같은 일부 기능을 제외하면 OracleJDK와 동일한 코드로 빌드됩니다.

 

3. OpenJDK 구현체들

아래는 OpenJDK프로젝트의 몇 가지 구현체들입니다. 대부분 LTS에 초점이 맞춰져 있으며 구현체 별로 주로 자주 사용하는 기능이나 GC(Garbage Collection)에 대한 성능을 개선하고 있습니다. 

LTS : Long Term Support, 장기 지원 버전

 

Zulu

Azul Systems에서 빌드하고 있는 OpenJDK LTS를 지원합니다. 추가로 글꼴 렌더링을 위한 Monotype ™ 글꼴이 포함된 Zulu Commercial Compatibility Kit (CCK)와 확장 암호 길이 정책 파일을 포함하는 Zulu Cryptography Extension Kit를 포함한 추가 패키지를 제공합니다. Windows, MacOS, Linux용 빌드를 제공하고 있습니다.

▶ Amazon Corretto

Java의 아버지 제임스 고슬링이 현재 재직하고 있는 Amazon에서 빌드한 OpenJDK 구현체로 LTS를 지원하며, 무료입니다. Java8 버전은 2023년 6월, Java11 버전은 2024년 6월까지 보안업데이트를 제공할 예정이라고 합니다. Amazon Linux 2, Windows, macOS에서 사용 가능합니다.

▶ RedHat OpenJDK

RedHat Enterprise Linux 사용 고객에게 제공하는 OpenJDK로 LTS를 지원합니다. RedHat OpenJDK 11에는 OpenJDK12에 들어갈 예정인 Shenandoah Garbage Collector가 포함되어 있습니다. 이 Garbage Collector는 Full GC가 일어날 경우 발생하는 Stop the world 시간이 매우 적게 발생하도록 개선한 특징이 있습니다. RHEL과 Windows에서 사용이 가능합니다.

※ Full GC(Garbage Collection) : JVM의 메모리가 더 이상 Stop the world를 발생시키지 않는 Young GC로 해결이 안될 때 전체 메모리를 정리하기 위해 발생하는 GC.

※ Stop the world : 전체 메모리를 정리하기 위해 JVM이 모든 동작을 멈추는 상태

▶ AdoptOpenJDK

대부분의 구현체들이 기업에 의해 빌드되는 반면 AdoptOpenJDK는 커뮤니티에 의해 빌드되고 있는 구현체 입니다. 모든 플랫폼에서 신뢰하며 사용할 수 있는 OpenJDK를 목표로 하고 있으며, Azul Systems, IBM, Microsoft 등에서 후원하고 있습니다. 아직 오라클과 TCK 인증을 받기 위한 계약을 맺지 못했지만, 품질에는 문제가 없으며, 오라클과 이 문제에 대해 지속적인 협력을 할 것이라고 합니다.  최소한 Java8 버전은 2023년 9월, Java11 버전은 2022년 9월까지 LTS를 제공할 예정이고, 모든 플랫폼에서의 동작을 지향하는 만큼 OpenJDK 구현체 중 가장 많은 OS를 지원하고 있습니다. Linux, Windows, macOS, Solaris, AIX에서 사용 가능합니다.

※ TCK인증 : Java 기술을 구현한 VM이 규격에 맞게 구현되었는지 검증하는 테스트 프로그램과 도구인 TCK(Technology Compatibility Kit)를 이용해 검증되었다는 표시

▶ GraalVM

대부분의 구현체들이 LTS에 초점이 맞춰져 있는데 반해 GraalVM은 새로운 시도를 하고 있습니다. 고성능 Polyglot VM으로 Java, Scala, Kotlin, Clojure, C, C++, JavaScript, Python, Ruby, R 등의 언어를 지원하며, Native 컴파일을 통한 성능향상 및 메모리효율을 높일 수 있어, 클라우드 및 컨테이너 환경에서의 유용성으로 주목 받고 있습니다. Linux와 macOS에서 사용 가능합니다.  

※ Polyglot : 여러 언어를 사용하는 것

 
4. GraalVM의 특징

2018년 11월 12일부터 16일까지 벨기에에서 열린 Devoxx 2018 행사에서 GraalVM에 Kotlin coroutine을 이용한 SpringBoot 어플리케이션을 Native로 컴파일해서 6ms만에 부팅한 시연이 있었습니다. 이처럼 놀라운 성능을 보여준 GraalVM에는 어떤 특징이 있는지 몇 가지 살펴보겠습니다.

coroutine : non-blocking 작업을 위한 동시성 기법

 

▶ Polyglot

GraalVM은 많은 프로그래밍 언어를 해석할 수 있는 PolyglotVM 입니다. 그렇기 때문에 자체 제공 API를 통해 Java에서 Python 함수를 호출하거나, C에서 Java코드를 호출 하는 등 다양한 언어를 조합해 오버헤드 없이 사용할 수 있어, 기존에 다른 언어를 사용하기 위해 인터페이스나 API 등을 만들어야하는 제약에서 벗어 날 수 있습니다. 지원하는 언어는 Java, Scala, Kotlin, Clojure, C, C++, JavaScript, Python, Ruby, R 등입니다. 

▶ JVM 기반 언어의 Native 컴파일

Java, Scala, Clojure, Kotlin과 같은 JVM 기반 언어를 VM 위에서 동작하지 않고 실제 장비에서 동작할 수 있도록 기계어로 작성된 Native 실행 파일로 미리 컴파일 할 수 있습니다. 생성된 프로그램은 Java VM에서 동작하는 기존 프로그램에 비해 시작 시간이 빨라지고 실행 중에 사용하는 메모리가 줄어듭니다.

▶ 더 빠른 Java 실행

OracleJDK에 포함된 표준 JIT 컴파일러에서는 할 수 없는 부분 탈출 분석과 같은 강력한 최적화 기능을 제공하는 JIT 컴파일러가 포함되어 있습니다. 이 기술로 Java 어플리케이션을 더 빠르게 실행 할 수 있습니다.

JIT 컴파일러 : Just In Time 컴파일러의 약자로, 바이트코드로 컴파일된 Java 클래스 파일을 실행 시점에 기계어로 번역해 주는 컴파일러

▶ Java Code의 Native 라이브러리화

Java 실행 파일을 Native 실행파일로 컴파일 할 수 있기 때문에 C로 개발된 프로그램에서 호출할 수 있는 Native 라이브러리 형태로도 빌드가 가능합니다. 이를 통해 C에서 Java에서 제공하는 수많은 라이브러리들을 사용하게 할 수 있습니다.

 

5. 마치며

오라클의 Java 구독 모델의 변화로 촉발된 OpenJDK 붐으로 기업과 커뮤니티들이 다양하고 많은 시도를 하고 있습니다. 이 현상이 언제까지 지속될지 모르겠지만, 조금은 정체되어 있던 Java 언어 발전에 긍정적인 영향을 미쳐 급변해가는 기술흐름에 빠르게 따라가는 언어가 될 수 있지 않을까 생각합니다.





OpenJDK에 대하여 더 알고싶으신가요? 여기를 눌러 문의해보세요!




기고 | MFJ-Daemon팀 장
편집 | 사업기획팀 박예영


이벤트 | OX퀴즈 이벤트

이벤트/이벤트 2018.11.05 17:47



당첨자를 발표합니다!

오보람/전융/문상훈/임일준/박우일/이규승/소재웅/지현준/김지혁/구민진

모두 축하드리며, 행복한 연말 보내세요^^~



기획 및 글 | 사업기획팀 박예영

이미지 디자인 | 디자인기획팀 김보명

  • 이전 댓글 더보기
  • 2018.11.28 10:24 ADDR 수정/삭제 답글

    비밀댓글입니다

    • Favicon of https://blog.ex-em.com EXEM 2018.11.28 13:09 신고 수정/삭제

      비밀댓글로 참여해주세요~

  • 2018.11.28 10:24 ADDR 수정/삭제 답글

    비밀댓글입니다

    • Favicon of https://blog.ex-em.com EXEM 2018.11.28 13:09 신고 수정/삭제

      비밀댓글로 참여해주세요~

  • 조철희 2018.11.28 11:25 ADDR 수정/삭제 답글

    1.O
    2. X
    3. O
    조철희 / 010-6795-7704

    • Favicon of https://blog.ex-em.com EXEM 2018.11.28 13:09 신고 수정/삭제

      비밀댓글로 참여해주세요~

  • 문성덕 2018.11.28 11:26 ADDR 수정/삭제 답글

    문성덕/010-8766-3277
    1. O 2.X 3.O

    • Favicon of https://blog.ex-em.com EXEM 2018.11.28 13:09 신고 수정/삭제

      비밀댓글로 참여해주세요~

  • 이도원 2018.11.28 11:27 ADDR 수정/삭제 답글

    정답은 1.O / 2.X / 3.O
    이도원 / 010.6847.0054

    • Favicon of https://blog.ex-em.com EXEM 2018.11.28 13:09 신고 수정/삭제

      비밀댓글로 참여해주세요~

  • 2018.11.28 11:42 ADDR 수정/삭제 답글

    비밀댓글입니다

  • 김경숙 2018.11.28 12:15 ADDR 수정/삭제 답글

    1. O
    2. X
    3. O
    김경숙 / 010-5390-1736

    • Favicon of https://blog.ex-em.com EXEM 2018.11.28 13:10 신고 수정/삭제

      비밀댓글로 참여해주세요~

  • 2018.11.28 12:34 ADDR 수정/삭제 답글

    비밀댓글입니다

  • 2018.11.28 13:26 ADDR 수정/삭제 답글

    비밀댓글입니다

  • 장승원 2018.11.28 14:02 ADDR 수정/삭제 답글

    1. O
    2. X
    3. O
    장승원 / 010 6335 5351

    • Favicon of https://blog.ex-em.com EXEM 2018.11.28 15:09 신고 수정/삭제

      비밀댓글로 참여해주세요~

  • 2018.11.28 16:29 ADDR 수정/삭제 답글

    비밀댓글입니다

  • 2018.11.29 08:13 ADDR 수정/삭제 답글

    비밀댓글입니다

  • 2018.11.29 14:49 ADDR 수정/삭제 답글

    비밀댓글입니다

    • 이규승 2018.11.29 15:48 수정/삭제

      비밀글 등록에 버그가 있네요.
      처음에 등록할때 비밀글 체크하고 confirm을 해도 화면에 나타남.
      Edit에 들어가서 다시 수정으로 비밀글 체크하면 그때는 비밀글 등록됨.
      체크바랍니다.

    • Favicon of https://blog.ex-em.com EXEM 2018.11.29 17:17 신고 수정/삭제

      티스토리 측에 확인해봐야겠네요. 알려주셔서 감사합니다.^^

  • 2018.11.29 21:49 ADDR 수정/삭제 답글

    비밀댓글입니다

  • 2018.11.30 09:13 ADDR 수정/삭제 답글

    비밀댓글입니다

  • 2018.12.03 13:22 ADDR 수정/삭제 답글

    비밀댓글입니다

  • 2018.12.03 13:23 ADDR 수정/삭제 답글

    비밀댓글입니다

  • 2018.12.03 17:42 ADDR 수정/삭제 답글

    비밀댓글입니다

  • 2018.12.03 17:42 ADDR 수정/삭제 답글

    비밀댓글입니다

  • 2018.12.03 17:44 ADDR 수정/삭제 답글

    비밀댓글입니다

엑기스| 개발자가 바라본 대시보드

기술이야기/엑.기.스 2018.11.05 17:46

 

고객사 전산실을 방문해 보면, 정말 많은 관제용 모니터들이 각각 다른 영역을 최대한 직관적으로 표현하고 있는 대시보드들을 볼 수 있다.


<그림1 맥스게이지 3D 대시보드 화면, 내용과 무관>


 대시보드를 어떤 용도로 사용할까


대시보드 업무를 약 7여년 정도 개발 및 지원을 하면서 개발자 입장에서 느낀 점은 크게 두 가지이다.


1. 장애의 사전징조를 미리 파악하여 장애 방지 목적

2. 장애 발생 후, 원인규명을 위한 사후분석 목적


 위 두 가지 중요한 포인트에 대하여 각 기업의 입장에서 수많은 질문과 구현 가능 여부 등이 대시보드를 만드는 입장에서 상당히 고민스러운 일이 아닐 수가 없다. 

 그렇다면 해당 기업이 대시보드를 장애 관점에서만 활용하는가?에 대한 의문이 생긴다. 최근 2~3년 정도의 대시보드 개발 요건은 발생한 장애를 쉽게 인지할 수 있도록 데이터를 시각화 하는데 초점을 맞추었다면, 최근의 대시보드 기능상의 개발 요건은 아래와 같다.


1. 무수히 많은 모니터링 대상들의 통합관제 및 통합인증

2. 문제 발생시 one-click으로 대시보드에서 각 모니터링 제품으로 바로 접속

3.해당 기업만의 전용 대시보드 화면 필요


 이제는 대시보드가 단순히 수많은 모니터링 타겟을 화면에 보여주는 단순 기능에서 벗어나서, 연결된 제품과 통합 로그인을 구현해야 하고, 쉬운 진입이 가능해야만 한다. 그리고 각 기업의 업무 환경이 서로 다르기 때문에 보는 관점도 다른 만큼 해당 기업만의 전용 대시보드 화면 개발이라는 새로운 숙제가 나타나기 시작했고, 그 빈도는 과거 2~3년 전보다 강하다.



 어떤 대시보드를 만들어야 할까? 


 Touch Switch가 발명된 이유가 우주탐사를 위해서 로켓을 발사하는 경우 수많은 접점형 스위치를 하나하나 켜 가면서 발사 하는 것이 사실상 불가능해서 만들어졌다고 하는데, 동시 다발적으로 기업 시스템에 문제가 발생한다면, 이것 또한 하나하나 해결하는 것이 사실상 불가능할 수 있을 것이다.

 대시보드가 진화하여 현재 상황만을 보여주는 것만이 아니라, 쉽게 터치만으로 장애 상황에 대해 적절한 조치까지 가능해지는 것이 대시보드의 다음 모습이 될 것이라고 생각된다. 이것이 가능해지려면 상황별로 해결할 수 있는 시나리오가 필요할 것이고, 이것이 모이면 대시보드는 위에서 열거한 대시보드의 활용 영역에 상당한 영향력이 될 수 있을 것이다.



 대시보드를 만드는 개발자의 고민 


 대시보드는 각각의 기업환경에 최적화되기 시작하고 있다. 공장에서 찍어내는 제품에 기능을 부여하여 나만의 특화된 제품을 만들어 사용하듯, 점점 대시보드는 기업의 요구에 부합하기 위하여 쉽게 확장 가능하고, 기업 시스템과 연계 시 제약이 없으며, 빠른 시일 내에 소스코드 수정이 가능하도록 개발이 이루어져야 하고, 그렇게 되도록 고민하여 제품이 진화화고 있다.






기고 | 대시보드팀 박정영

편집 | 사업기획팀 박예영

엑기스 | 쉽게 이해하는 시계열데이터 비정상탐지

기술이야기/엑.기.스 2018.09.05 13:29


"엑기스"라는 단어, 어떤 느낌이신가요?

무언가 알차게 꽉- 농축되어 있는 그 느낌!

지금부터 엑셈의 기술 스토리, 엑기스를 알차게 전해드립니다!

엑기스 첫 번째 스토리, 지금 시작합니다.


불과 1개월 전만해도 111년만에 한국 사상 최고의 더위가 찾아왔었다.

Figure 1. 정말 너무 더웠다...

<출처 | YTN NEWS(http://www.ytn.co.kr/)>


현재 낮기온은 1개월 전보다 섭씨 10도씨 이상 낮아지고 일교차는 크게는 15도정도 난다.

이런 비정상'스러운' 날씨를 어떻게 발견할 수 있을까? 미리 예측은 할 수 있을까?

웹 어플리케이션을 운영하는데 디도스(DDOS) 공격이 온 것을 빠르게 알아낼 수 있을까?


시계열 데이터


위에 언급한 문제들을 풀기 위한 답은 '데이터'에 있다. 날씨의 경우에는 우리나라의 역사적으로 기록된 기온과 주변 국가, 지구의 기온 변화 등이 모두 데이터로 사용될 수 있다.

또한 DDOS 공격으로부터의 빠른 탐지는 '기존 데이터'를 잘 분석한다면 비정상 움직임을 캐치할 수 있을 것이다. 이처럼 매력적인 시계열 데이터에 대해서 조금 더 알아보자.


시계열 데이터를 다루는 사람들의 관심 있는 주제는 보통 크게 2가지이다.


1.데이터 예측

2.비정상데이터 탐지


오늘 이 글에서 얘기하고자 하는 것은 1번 예측이 아닌 2번 비정상데이터 탐지이다.


비정상데이터


Figure 2 비정상회담과 비정상탐지는 아무 관련이 없고 이 글은 상사가 시킨 글쓰기가 아니다.

<출처 | JTBC 비정상회담 화면 캡쳐(http://tv.jtbc.joins.com/nonsummit)>


시계열 데이터에서 비정상이라고 하면 뭘까? 일반적인 비정상에 대해서 사전을 통해 알아보도록 하자. 

네이x 사전에 의하면 비정상의 사전적 의미는 '정상이 아님'이라고 정의한다.

그렇다면 정상 또 정상이 뭔지 찾아보도록 하자.

Figure 3 정상의 정의

<출처 | 네이버 국어사전(https://ko.dict.naver.com/search.nhn?query=%EC%A0%95%EC%83%81&kind=all)>


그렇다. 우리가 직관적으로 예상할 수 있는 대로 탈 없는 상태이다. 

결국 비정상 데이터라고 하면 '탈이 있는 데이터'이고 우리는 이를 잘 탐지하기만 하면 된다.


흔히 비정상 데이터를 다음의 3가지 경우로 분류한다.


1.평소보다 데이터가 심하게 크거나 작을 경우

2.일시적인 데이터의 패턴 변경

3.데이터의 크기 변경


대부분의 비정상 데이터들은 위의 3가지 분류에 속하게 된다.


어떤 데이터로


데이터분석은 같은 데이터의 모양이라고 하더라도 도메인에 따라서 접근법이 많이 다를 수 있다. 

결국 고객이 무엇을 원하는지 요구사항을 잘 파악하여야 문제를 잘 정의하고 이에 따른 분석방법, 해결책이 나올 수 있다.


필자의 의견인데 좋은 알고리즘과 모델을 찾는 것보다 요구사항을 분석하고 문제를 정의하는 과정이 제일 중요하다고 생각한다.

온천수가 나오는 땅을 찾기 위해 삽질을 해야하는데 이를 은삽으로 팔지, 금삽으로 팔지, 모종삽으로 팔지, 혹은 포크레인 기사를 불러서 땅을 파야할 지 고민하기 전에 우리 집 마당인지 뒷 산인지, 이 땅의 성분 요소는 무엇인지 잘 아는 것이 더 중요하다. 아무리 좋은 삽을 고르더라도 남의 땅을 파면 안되는 것 아닌가?


이 글에서는 서버 위에 가상 쇼핑몰을 만들고 부하를 만들어서 얻어낸 데이터베이스의 Active session data를 가지고 여러가지 시도를 해보도록 하겠다.


가장 쉬운 접근 방법


STL decomposition

STL Decomposition은 시계열 데이터를 Seasonal, Trend and residual로 분해하여 분석하는 알고리즘이다.

Figure 4 Y(t) = S(t) + T(t) + R(t)


STL은 트렌드를 찾아내는 곳에서도 사용될 수 있지만 Residual Graph를 잘 보면 비정상포인트를 찾을 수 있다. 

python에 STL library들이 많기 때문에 구현이 쉽고 데이터의 특성을 확인하기 편하다.


장점

장기적 데이터에서 뚜렷한 주기, 트렌드를 구분 짓고 구현이 쉽다.

단점

데이터가 많이 출렁이거나 등락이 강할 경우에 트렌드함을 가지지 못해 분석 결과를 결론 짓기 애매한 경우가 많다.


Classification and Regression Trees

필자도 학습자이기에 Anomaly detection in time series 이런 식으로 구글링을 해보면, 자주 나오는 것이 CART(Classification and Regression Trees)이다.

정상과 비정상데이터가 레이블링(Labeling)이 되어있는 데이터를 가지고 있을 때 사용할 수 있다. 

최근 캐글(Kaggle)을 통해서 핫해진 xgboost의 경우도 CART의 진보된 버전이다.

Figure 5 CART의 시작


장점

Supervised learning이므로 다른 알고리즘보다 한단계 더 직관적 결과를 얻을 수 있다.

단점

Labeling data가 없으면 분석이 불가능하다.


Moving Average

Moving Average(a.k.a 이동평균선)은 데이터의 추세를 볼 수 있는 가장 고전적이고 쉬운 방법이다. 

간단하게 앞선 특정 기간의 데이터값의 평균값을 데이터로 하여 전 구간의 평균값을 구하는 것이다.

이동평균선을 구하고 각 지점에서의 표준편차값을 이용해 신뢰구간을 그린 다음에 실제 데이터들이 이 신뢰구간을 벗어났다면 비정상이라고 판단할 수 있다.


(빨간 동그라미) 이동평균선을 통해 비정상탐지를 할 때 가장 중요한 점은 '어느 기간의 이동평균'을 잡느냐가 중요하다. 

데이터의 성격에 따라 달라지니 반복된 수행을 통해 최적의 윈도우 사이즈를 찾아야한다.

Figure 6 이동평균선을 이용한 비정상탐지 - 빨간 원


장점

계산이 빠르고 직관적이고 어느 데이터에서든 사용이 가능하다.

단점

많은 테스트가 필요하고 사용자의 경험치가 중요하다. (윈도우 사이즈 결정 시) 추가적으로 비정상 케이스 1번의 경우에만 잘 맞는 경향이 있다.


Prophet

페이스북에서 만든 비정상탐지 알고리즘이다. 이 알고리즘의 가장 큰 장점은 사용하기 쉽다는 점이다. 그 이상은 없는 것 같다.

아주 예쁜 데이터의 경우 잘 들어 맞지만 예측 커브를 아주 예쁘게 그리는 바람에 진폭이 큰 데이터의 경우 정확도가 떨어지는 경향이 많다.


아래 그림에서 보면 회색 밴드를 벗어난 붉은 원으로 표시된 곳이 비정상으로 벗어난 곳이라고 할 수 있다.

Figure 7 Prophet library를 이용한 비정상탐지

장점

구현이 쉽고 Daily, Weekly, Montly 등 장기적 데이터에 적합하다.

단점

Library에 종속되어서 데이터에 따른 디테일한 변경이 쉽지 않다.


조금 더 심도있게


Clustering

K-means Clustering을 이용하여 비정상탐지를 할 수도 있다. 

이 때 주요 개념으로 rolling(혹은 moving) window를 이용하여 클러스터링을 위한 데이터셋을 만들고 이를 K-means를 이용하여 모델을 학습한다.


그리고 새로운 데이터(혹은 기존 데이터)를 분석하여 기존에 가지고 있던 클러스터(군집)에 분류시켜 이상치를 벗어난 데이터들을 발견해낸다.

Figure 8 Clustering을 이용한 비정상탐지


장점

데이터의 크기와 패턴을 고려해 비정상탐지를 하여 비정상 포인트를 포함한 구간을 찾는데 유용하다.

단점

메모리 사용량이 꽤 많고 정확한 지점을 찾기 힘들다.


Neural Networks - LSTM

좋은 연구 과제이다. 정확도 높은 네트워크를 찾는다면 이보다 좋은 모델은 없을 것이다. 

LSTM은 특히 NN에서 time을 고려한 모델인만큼 데이터의 성격에 따라 효과가 클 것이라고 생각한다.


하지만 이 분야는 계속 연구 중이고 데이터 의존성이 크기 때문에 많은 시도와 모델 튜닝이 필요하다.

Figure 9 여러분의 과거 데이터를 봤을 때 새벽 1시에 치킨을 먹는 것은 정상입니다. ???


그래서 뭐가 좋은지?


그래서 어떤 알고리즘을 써야 하는지 알고 싶으면? 정답은 데바데(데이터 바이 데이터, Data by Data). 


그럼 어떤 데이터의 경우 가장 맞는 알고리즘인지 알려면? 

가장 쉬운 알고리즘부터 하나씩 적용해보면서 좋은 결과가 나오는 알고리즘을 택하는 것이다. 


글의 서두에 말한 데이터베이스의 active session 수를 파악하는 데에는 단기적으로는 Moving average가, 장기적으로는 Prophet이 적용가능한 범주에 있었고 결과 또한 좋았던 것 같다.

이래나 저래나 비정상이라고 탐지한 것들이 정확성을 체크하기 위해서는 그 역으로 판단을 해봐야한다. 

메모리 사용에 제한이 없는 report 하기 위한 데이터분석 과정이라면 여러 알고리즘을 사용해서 중복된 포인트들을 찾는 것도 나름의 방법이다.




(급)마무리


시계열 데이터로 미래 예측, 비정상탐지, 인과관계 분석 등을 팀에서 연구하고 있다. 비정상탐지의 경우에는 Moving average를 기반으로 단기적 변화에 대해서 탐지하고 있고 Prophet library에서 아이디어를 발전 시켜서 장기적 비정상을 탐지하고 있다.

우리가 잘 해결한 부분도 있고 부족한 부분도 있지만 문제 해결을 함께 해 나감에 있어 도메인 지식이 있는 동료들과 분석에 함께 아이디어를 내주는 동료들의 도움이 큰 것 같다.

추가로, 비정상탐지 후에 다음 단계가 인과관계 분석, 근본원인 분석인데 서비스 개발이 완료된 후에 공유하도록 하겠다.






기고 | 강남연구소 김정우

편집 | 사업기획팀 박예영