2016년 11월 4일 금요일

IoT 사례 연구 - LG CNS의 IoT 플랫폼

AWS 플랫폼 

AWS IoT 플랫폼은 디바이스에 SDK(Software Development Kit)을 제공하고, 게이트웨이를 통해 애플리케이션과 디바이스 간의 통신을 제공해주고 있다(그림8). 플랫폼 밖인 디바이스에서 정보를 쉽게 전달 받고 플랫폼의 인증과 다양한 개발 라이브러리 등도 활용할 수 있도록 SDK를 제공하고 있다. 


<그림8> AWS IoT 플랫폼 
 

출처: Amazon 


규칙 엔진(Rule Engine)을 사용하면 인프라를 관리할 필요 없이 디바이스에서 수집된 데이터를 처리, 분석할 수 있고, 비즈니스 규칙에 따라 다른 디바이스나 클라우드 서비스로 이를 변환하거나 전송할 수 있다. 그림에서 보는 것처럼 IoT 서비스에 따라 달라질 수 있는 디바이스나 애플리케이션을 제외한 부분을 플랫폼으로 구성하면서 아키텍처의 강건성이 매우 높아질 수 있고 개발 기간이나 복잡도를 낮출 수 있다. 


<참고사이트>

AWS IoT 플랫폼 https://aws.amazon.com/ko/iot/how-it-works/  


LG CNS의 IoT 플랫폼 

LG에서는 나날이 발전하고 있는 IoT 시장을 위해 6가지 기술을 정의하여 발전 전략을 수립했다. 아래를 살펴보면, 디바이스 관련 기술(⑤), 네트워크와 인터페이스 관련 기술(①②), 빅데이터 관련 기술(③)과 이를 통합 지원하는 기술(④⑥)로 구분된 것을 확인할 수 있다. 이를 통해, LG가 지향하는 바는 “다양한 디바이스로부터 수집된 대량의 센서 데이터들을 안정적으로 송/수신하고, 클라우드 환경에 저장된 데이터의 처리 및 분석을 통해 지능형 서비스까지 제공하는 플랫폼”이다. 

① Gateway와 Edge Device 관련 기술  
② 대량의 데이터를 안정적으로 전달할 수 있는 통신 기술 
③ 이벤트 처리와 데이터 분석 및 추천을 위한 빅데이터(Big Data) 관련 기술 
④ 위의 언급한 기술들의 Base 제공 및 융합을 지원할 플랫폼과 Enabler 관련 기술 
⑤ 인증/권한을 통한 데이터 보안뿐만 아니라 디바이스와 칩(Chip) 레벨의 보안 기술 
⑥ 사용자와 상호 작용할 수 있는 UI/UX 기술 


LG에서는 디바이스의 쉼 없는 발전과 폭발적으로 증가하는 데이터를 활용한 새로운 비즈니스가 IoT를 통해 나타난다고 하고 있다. 이 때, 특정되지 않은 디바이스나 서비스를 쉽게 받아들이고 표준화된 서비스를 통해 쉽게 IoT 서비스에 접근할 수 있도록 가이드 하고 있다. 그림9는 LG에서 제시하는 IoT 플랫폼인데, 다른 곳에서 제시하는 IoT 플랫폼과 레이아웃이 거의 유사하다. 디바이스→네트워크→서비스로 이어지는 흐름을 기본으로 하고 있고, 다수의 디바이스와 사용자에 대한 인증, 보안이 추가되어 있기 때문이다. 


<그림9> LG CNS의 IoT 플랫폼 
 

출처: LG CNS 


기대 효과와 결론 

지금까지 IoT에 대해 아키텍처, 보안, 빅데이터 연계, 개발에 대해 살펴보았다. IoT는 소프트웨어보다는 많은 부분이 하드웨어 중심으로 서비스되어 왔던 것이 사실이다. 하지만, 기하급수적으로 늘어나는 IoT 관련 디바이스와 서비스로 인해 개별적으로 개발이 이루어지는 것은 매우 소모적이고 많은 손실을 가져온다. 체계적이고 표준화된 플랫폼 사용으로 IoT를 활용한 신규 서비스가 더 많이 늘어나기를 기대한다. 



22nd SW Quality Insight Conference안내 -11/29(화)





머신러닝을 알린 알파고의 알고리즘 분석- 알파고 승리의 원동력

Q: 그럼 다시 알파고 얘기로 돌아가 보겠습니다. 알파고 승리의 원동력은 무엇입니까? 
알파고는 1202개의 CPU와 176개의 GPU가 사용되었다고 합니다. 어마어마한 수치이죠. 아마도 구글이 아니면 해내기 어려울 정도의 하드웨어가 사용되면서 처리 속도를 높였죠. 이러한 처리 속도는 학습 속도와 이세돌 9단과 바둑을 두는 속도에도 엄청난 영향을 주게 됩니다.
자 그럼, 이제 알파고의 트레이닝 과정을 살펴보겠습니다. 단순합니다. 알파고 한테 바둑 기사들이 두었던 이전의 기보를 계속 학습시키는 것입니다(그림7). 알파고는 학습한 기보의 내용을 모두 기억하는 것이 아니라 패턴으로 기억하는 것이라고 생각하는 것이 이해하기가 쉽습니다. 


<그림7> 알파고가 학습한 경우의 수 

 
출처: Google  


이렇게 기억한 것을 기초로, 실제 바둑 기사와 바둑을 두게 됩니다. 바둑 기사가 착수하는 점을 입력 받아 많은 패턴 중에서 최적의 대응을 하게 되는 것이지요. 기억하실 것은 알파고니까 가능한 겁니다. 


Q: 알파고 말고는 불가능 하다는 말씀인가요? 
무슨 얘기냐 하면, 아까 얘기한 것처럼 1202개의 CPU와 176개의 GPU이기 때문에 이세돌 9단과 대적을 했다는 것입니다. 이 정도의 하드웨어가 아니었다면 한정된 시간에서 많은 오류를 범했을 겁니다. 고성능의 처리 속도로 많은 경우의 수를 예측했기 때문에 이길 수 있었다는 얘기지요. 그만큼, 기계학습의 가장 중요한 성공 포인트는 많은 학습 데이터와 빠른 처리 속도입니다. 물론, 이 외에도 예측을 위해서 더 세밀한 부분들이 있지만 이번 시간에는 기본적인 부분만 다뤄야 할 것 같습니다. 


Q: 왜 구글이나 IBM이 인공지능의 선두 주자인지 알 것 같습니다. 알파고가 이세돌 9단을 이기고 세계랭킹 4위에 올랐습니다. 향후 알파고의 랭킹을 예측해 보신다면요? 
재미있는 질문입니다. 제가 확실하게 얘기하고 싶은 것은 알파고는 시간이 갈수록 기하급수적으로 더 강해진다는 것입니다. 왜냐하면, 계속 기존의 바둑 기보를 학습할 것이기 때문입니다. 


<그림8> 알파고의 세계랭킹 

 

출처: 인사이트  


알파고가 이세돌 9단과의 대전을 준비할 때는 이세돌 9단의 이전 공식 기보는 통째로 학습 했을 것이고, 세계적인 기사들의 기보도 학습했을 겁니다. 새로운 도전자가 나타난다면, 순식간에 도전자의 바둑 방식을 파악해서 패턴화할 것입니다. 이세돌 9단과의 대전에서 나타난 수준을 생각하면서 도전했다가는 아마 큰 낭패를 볼 수 있을 겁니다. 


Q: 스타크레프트와 같은 진짜 게임에 도전하겠다는 의사도 밝혔는데 어떤 결과가 올지 기대가 됩니다. 오늘 말씀을 정리해 주시죠. 
IoT가 발전하면서 빅데이터의 활용도와 중요성이 점점 커지고 있고, 빅데이터로 인해 기계학습의 활용도도 더 확대될 것으로 예상됩니다. 많은 산업들이 사람들에 의해 의사결정이나 관리가 이루어졌던 것이 현실이었습니다. 하지만, 기계학습을 활용한다면 사람보다 더 세밀하고 정확한 예측과 대응책을 제시해 줄 것으로 기대됩니다. 앞으로 많은 분야에서 기계학습에 대한 관심이 필요한 시점인 것 같습니다.  



2016년 11월 3일 목요일

가상현실과 인지과학

가상현실(VR: Virtual Reality)

가상현실(VR: Virtual Reality)
• 컴퓨터안에서 생성되는 가상세계
• 자신과 환경이 모두 현실이 아닌 가상의 이미지를 사용하며, 증강현실에 비해 현실감이 떨어짐.


• 3차원 그래픽 속에서 사용자가 직접 그 상황 속에 물리적으로 빠져 들어가는 듯한 시각적인 감각을 제공함
• 사용자는 실제로 경험하기 어려운 환경을 컴퓨터 그래픽을 통해 경험하게 됨


인지과학(인공신경)

인공신경 시스템
- 인공신경(Neural Prosthesis) 시스템이란 반도체 및 전자기술을 이용 하여 손상된 신경을 회복시킴으로써 잃어버린 기능성을 되 살려주는 생체 전자공학 기술





증강현실의 개념과 기술 활용


* 증강현실 (Augmented Reality)

현실에 기반한 가상화 / VR 의 확장된 개념
사용자가 눈으로 보는 현실 화면이나 실제 영상에다 컴퓨터가 재현하는 문자나 그래픽 같은 가상 정보를 합성하여 함께 체험할 수 있도록 하는 기술임.
증강현실은 컴퓨터 그래픽스, 인간과 컴퓨터 간의 상호작용, 영상 및
상황 인식, 위치 기반 서비스 등의 기술과 깊은 관련성을 가짐.

사용자가 보는 현실세계에 컴퓨터가 만들어 낸 가상세계 정보를 합성 해서 보여줌 → 현 위치나 상황을 인식할 수 있는 센싱장치 필요
실세계 이미지나 정보의 수준을 증강시키는 역할



증강현실 기술의 활용

증강현실(AR) 기법을 이용하여 실세계에 부가적 정보를 추가

    제조분야, 의료분야

관광정보, 박물관이나 도서관에서 휴대단말기,
교육, 훈련, 시뮬레이션, 협업 등
웨어러블 시스템(Wearable System)
 - 군사영역에서 전장 주변 정보
 - 소방대원이나 응급구조사에게 정보 제공





4차 산업혁명 시대, 소프트웨어 프로세스의 요건 - 가치 창출

소프트웨어의 역할 변화






소프트웨어 조직의 체질 개선
• Be responsible for Business performance
• Be Proactive.
     – “No one specifies requirements for you.”
• Disrupt yourself.
     – Open-minded, Collaborative innovation




2016년 11월 2일 수요일

[SW공학 동영상 30화] 테스트 유형의 분류

이번 팟캐스트는 돈이 만든 테스트 종류의 분류에 대해 이야기 합니다. 

현재 테스트를 위한 활동을 보면, 테스트 전략에 따라 많이 다르지 않는 단위 테스트, 통합 테스트, 시스템 테스트 등을 계획합니다. 이 것은 전통적으로 잘 정리되어 알려져 있습니다. 프로젝트는 테스트 계획을 통해 어떤 테스트를 해야하는지 거의 결정합니다. 프로젝트나 개발자들은 계획되지 않은 테스트는 계획되지 않았다는 이유로 테스트를 하지 않을 것이라고 말합니다. 

테스트 종류를 결정하기 위해 정보를 수집하는데는 많은 경험과 다양한 정보들이 있어 큰 어려움이 없었습니다. 분류 체계의 종류, 계층 구조의 종류, 구성 및 이와 유사한 시험 유형 등을 참고하여 정리할 수 있었습니다. 그리고, 다양한 프로젝트에서도 많은 테스트 종류를 찾기는 어려웠습니다. 이 중에서 필요한 테스트를 선정해 계획을 수립하게 됩니다. 

하지만, 프로젝트에 따라 필요한 테스트가 이루어져야 하지만 전문가가 아닌 경우 필요한 테스트가 제외될 수도 있습니다. 이런 이유로, 테스트 종류를 정리하여 도움을 주려 합니다. 그림1에는 검증(verification)과 확인(validation)을 위한 여러 가지 방법이 표시되어 있습니다. 여기에는 테스트도 있고 평가 방법도 함께 있습니다. 돈이 명확하게 얘기하고 싶은 것은 그림1에 나타난 분류로는 모든 것을 커버하지 않는다는 겁니다. 좌측 상단의 일부만 포함합니다.