2016년 8월 23일 화요일

3D 프린팅에서 요구하는 소프트웨어의 지원 범위

최근 3D 프린터의 보급으로 기술이 향상되면서 일반 사람들의 관심을 끌고 있다. 3D 프린팅은 하드웨어 중심으로 발전해 왔으나 소프트웨어 기술도 관련 학계와 기업들의 관심을 받고 있다. 하드웨어 중심의 발전은 특허 만료와 오픈소스 프린터의 등장으로 차별화가 어려워 지고 있고, 최근의 하드웨어 성능은 일정 수준 이상을 유지하고 있기 때문이다. 그리고, 3D 프린팅은 다양한 산업에서 기술 향상과 비용 절감의 효과를 눈에 띄게 향상시키고 있기 때문에 각 산업의 다양한 요구를 충족시키기 위해서는 하드웨어보다는 접근이 쉬운 소프트웨어에 더 관심도가 높아지는 추세다. 이번 회에서는 3D 프린팅의 활용도를 높이기 위해 소프트웨어가 지원해야 하는 범위에 대해 살펴보기로 한다.


3D 프린팅의 산업 현황

글로벌 기업은 3D프린팅을 자신들의 산업에 적극 활용하고 있다. 보잉사는 항공기 부품과 전투기 부품의 일부를 3D프린터로 만들고, 포드나 페라리 등의 자동차 업체도 특수 차량의 복잡한 부품을 생산하면서 30 ~ 40%의 비용을 줄였다. 구글이 인수한 모토로라는 소비자가 원하는 대로 조립하는 스마트폰을 50달러에 만들어주는 아라(Ara) 프로젝트에 3D 프린팅을 활용하고 있고, 애플은 액체 금속을 이용한 3D프린팅 기술에 대한 특허를 출원했다.
글로벌 기업들이 앞다퉈 3D 프린팅을 도입하면서 글로벌 시장조사기관 홀러스어소시에이츠에 따르면 3D프린팅 시장은, 상용화가 시작된 1987년부터 연 평균 25.4%의 가파른 성장세를 보이고 있고 2021년에는 108억 달러(약 11조원)규모로 커질 전망이다(그림1).

<그림1> 3D 프린팅 시장 현황



3D 프린팅은 제조업의 개발, 생산을 시작으로 타 산업 단계에 변화를 가져와 Market, Economics, Performance, Process 측면에서 산업별 재도약의 기회를 제공할 것으로 예측되고, 새로운 시장을 창출하고 ICT와 접목되어 산업의 속성을 변화시킬 것이다(그림2).


<그림2> 3D 프린팅 적용으로 인한 제조업 변화
출처: Wohlers Associates

더보기         

서버리스(Serverless) 애플리케이션을 위한 코드 관리


최근 들어, 아마존웹서비스(Amazon Web Service), 마이크로소프트 애저(Microsoft Azure) 등의 글로벌 업체는 서버리스 아키텍처를 지원하고 있다 국내에서는 아직 적용 사례를 찾아보기 어렵지만 해외에서는 다양한 적용 사례가 나타나고 있다. 서버가 없는 것처럼 기능에 직접 접근할 수 있기 때문에 서버를 경유하는 방식보다 효율적으로 알려져 있다. 이번 회에서는 글로벌 기업에서 아키텍트로 활동 중인 Kloud Solutions(호주 소재) 유정협 아키텍트를 만나 자세한 사항을 들어본다.

Q: 본격적인 이야기 전에 서버리스에 대한 설명을 부탁 드립니다.

서버리스는 요즘 소프트웨어 아키텍처 세상에서는 아주 핫한 토픽입니다. 책들도 많이 나왔고, 오픈소스 프레임워크도 있고, 수많은 벤더들이 프레임워크를 내놨죠. 게다가 아예 서버리스만을 주제로 하는 컨퍼런스까지 생겼습니다. 서버리스는 서버 단에서 로직이나 상태를 관리하지 않고 특정 이벤트에 반응하는 함수가 실행되는 구조입니다. 이 때, 특정 이벤트는 써드 파티 애플리케이션이나 클라우드 등에서 요청합니다. 서버리스는 서버리스는 서버 단 로직을 주로 개발자가 코딩 하는 전통적인 방법과는 다르게 서버에 상태를 저장하지 않고 돌리는 애플리케이션을 의미하기도 합니다. 이런 애플리케이션은 보통 이벤트 기반으로 작동하고, 써드 파티에 의해 관리됩니다. 이런 방식을 적용하기 위해 FaaS(Functions as a Service)가 있고, AWS 람다(Lamda)가 FaaS계의 가장 인기 있는 구현체지요(그림1). 물론, 다른 것들도 많이 있습니다. 이번에 얘기하는 것에서는 FaaS를 서버리스의 의미로 이해하시면서 들으시면 될 것 같습니다.


<그림1> 서버리스 AWS
출처: Amazon

더보기          

빅데이터 사례 연구 - 개발 기법

빅데이터를 빠르고 정확히 분석하기 위해서는 다양한 빅데이터 분석 도구가 필요하다. 빅데이터 분석 도구는 복잡한 대용량 데이터를 구조화해서 분석한다. 데이터의 카테고리를 분리하고 필요한 데이터를 찾아 연결하면서 데이터 속에 숨어있는 인사이트를 찾아낸다. 하지만, 빅데이터 분석 도구도 모든 요소를 자동으로 찾아내지는 못한다. 빅데이터를 효율적으로 분석하기 위해서는 데이터의 특성에 맞는 분석 도구와 프로세스가 필요하고, 최초로 제어해야 하는 데이터 구성이 있다. 이번 회에서는 빅데이터 기반 프로젝트에서 필요한 분석과 개발 기술을 알아보기로 한다.

빅데이터 기반 프로젝트를 수행하기 위해서는 기본적으로 프로그래밍 기술, 통계, 그리고 데이터 분석에 대한 전문적 지식을 가지고 있어야 한다. 또한, 데이터에 대한 새로운 가설을 만들거나 검증할 수 있어야 한다. 이를 위해서는 스토리텔링과 패턴 및 알고리즘, 시각화 기술도 필요하다. 비즈니스에 대한 전문적 지식도 당연히 필요하다. 빅데이터 분석을 위한 개발 실무로 가장 많이 사용되는 것이 R이다. R을 사용한 빅데이터 관련 예제를 살펴보도록 한다.


R을 이용한 텍스트 감정분석 (출처: 퀸트랩)

사람들은 생각과 감정을 말로 표현한다. 상품평이나 인터넷 댓글, SNS 등에 남기는 텍스트를 모아서 분석하면 평소에는 알지 못하는 다양한 정보를 얻을 수 있다. 이 것이 텍스트 분석의 목적이다. 이렇게 분석된 결과를 바탕으로 감정을 수치화하여 감정의 정도를 예측할 수 있다. 감정의 좋고 나쁨, 흥분과 지루함과 같은 감정 요소 별로 정도를 파악할 수 있고 그 이유를 분석하여 개선 방안을 수립할 수 있다. 감정분석의 자료가 모이게 되면 통계화 하고 미래를 예측할 수 있는 통계 모형을 만든다.

(1) 텍스트에서 감정 구분

아래 예제는 영화 어벤져스를 개봉하면서 수집된 관람객들의 입력 데이터들이다(그림1). 감정과 관련된 구분자를 정의하고 수집된 데이터들을 확인하여 구분자 별로 입력값들을 분리한다. 그림1에서는 구분자를 비호감단어와 호감단어로 정의하였고, 구분자 별로 단어를 분리하였다. 영화를 감상한 사람이 입력한 값이 빨간색으로 표시된 ‘실망’, ‘산만’, ‘지루’, ‘별로’라는 단어로 구분된다면 비호감이었고, 반대로 ‘기대’, ‘재미’, ‘볼만’이라는 단어로 구분된다면 호감이었다고 해석한다. 나머지 구분 단어는 보통으로 해석한다.

<그림1> 영화 어벤져스의 감정 구분 예

더보기