2016년 8월 31일 수요일
SW테스팅프론티어 서비스 신청
서비스 대상
- 지방 소재 중소 SW개발 기업
- SW 테스팅에 대한 교육이 필요한 기업
- SW 테스팅에 대한 역랑평가 후 개선을 하려는 기업
서비스 신청 및 절차
지역 진흥원과 연계한 서비스 신청
지역 진흥원이 파악하고 있는 지역 SW중소기업에게서 신청을 받고, 이를 소프트웨어공학센터에서 일정 협의 후 서비스 수행
소프트웨어공학센터 포털사이트에서 서비스 신청
2010년 오픈한 소프트웨어공학센터 포털사이트의 서비스 신청을 통해 지역 SW중소기업이 신청하고, 담당자가 신청기업과 일정 협의 후 서비스 수행
- 지방 소재 중소 SW개발 기업
- SW 테스팅에 대한 교육이 필요한 기업
- SW 테스팅에 대한 역랑평가 후 개선을 하려는 기업
서비스 신청 및 절차
지역 진흥원과 연계한 서비스 신청
지역 진흥원이 파악하고 있는 지역 SW중소기업에게서 신청을 받고, 이를 소프트웨어공학센터에서 일정 협의 후 서비스 수행
소프트웨어공학센터 포털사이트에서 서비스 신청
2010년 오픈한 소프트웨어공학센터 포털사이트의 서비스 신청을 통해 지역 SW중소기업이 신청하고, 담당자가 신청기업과 일정 협의 후 서비스 수행
공공QMO 서비스 신청
서비스 대상
공공QMO컨설팅 서비스는 국가기관, 지방자치단체, 정부투자기관, 기타 공공기관 등 공공부문과 민간부분에서 발주하는 모든 SW사업에 적용될 수 있습니다.
서비스 신청 및 절차
공공QMO컨설팅 서비스는 국가기관, 지방자치단체, 정부투자기관, 기타 공공기관 등 공공부문과 민간부분에서 발주하는 모든 SW사업에 적용될 수 있습니다.
서비스 신청 및 절차
2016년 8월 30일 화요일
위협 모델링(Threat Modeling)과 사물인터넷
영상 보러가기
위협 모델링(Threat Modeling)은 마이크로소프트사에서 대중화한 개념으로, 어떤 시스템의 보안이 우려될 때 그 시스템을 더 잘 이해할 수 있게 도와주는 프로세스입니다.
● 발생 가능한 위협을 모델링하는 것이 아니라 시스템의 특성을 이해하고 시스템이 위협에 대응하는 방식을 모델링하는 것
● 공격 당할 가능성이 있는 시스템 상의 공격 측면(Attack Surfaces)을 찾아 내고 해당 측면의 취약점을 해결
● 보호해야 하는 자산이 무엇이고, 그 자산이 어디에 있는지 파악하고, 이를 보호할 수 있는 방법에는 어떤 것이 있는지 이해함
이들은 현재 아키텍처 분석 및 설계 언어(Architecture Analysis and Design Language, AADL) 위협 모델링 프로젝트를 진행하고 있는데 주로 취약점 발견(Vulnerability Discovery)에 집중하고 있습니다. 물론 사물 인터넷 장치에서도 취약점 발견 위협 모델링을 적용하고 있습니다.
위협 모델링에서는 사물 인터넷 장치에 대해 직접 분석하는 것이 아니라 해당 장치의 취약한 부분을 화이트보드에 정리하고, 정리하는 과정 내내 대화를 나누면서 취약점을 찾아내고 있습니다. 그런데 이렇게 해서 발견한 취약점들을 살펴보면 대부분 올해 보안 회의에서 발표한 연구서에서 이미 소개된 것들 입니다. 이렇게 다른 연구를 활용하는 방법이 편리한 이유는 각 장치를 완벽하게 이해할 필요가 없다는 점입니다. 문제점을 깊이 관찰하고 논리적인 취약점을 스스로 찾아내는 사고 실험(Thought experiments) 방식을 적용하는 것만으로 발견한 취약점과 해결책을 테스트 절차나 공급 업체 선택 등에 적용할 수 있기 때문입니다.
또한 위협 모델링은 매우 운영이 편리하다는 점도 강조하고 싶습니다. 보안 버그나 취약점에 대한 보고서를 받으면 협조 공개 프로세스(Coordinated Disclosure Process)를 통해 이를 관찰한 다음, 치료 소프트웨어를 사용하고 취약점을 공개하여 관련 피해를 최소화합니다.
사물 인터넷 시대에는 더 많은 사물들이 서로 연결됩니다. 수십 년 간 훌륭한 제품을 생산해 온 제조사들도 수많은 네트워크가 연결된 작은 내장 컴퓨터에 앞에서는 당황하기 마련입니다. 네트워크가 연결되고 나면, 업데이트가 필요하고 최신 소프트웨어가 필요하게 되는데, 여기서 취약점이 발생하는 것입니다. 대부분의 제조사는 제품에 네트워크를 연결해 놓고는 기본적인 위협 모델링을 수행하지 않습니다. 하지만, 매우 간단한 위협 모델링 만으로도 디버깅 포트가 켜져 있다 거나, 패스워드를 변경하지 않는다 거나 하는 아주 기본적인 취약점을 찾아낼 수 있습니다.
위협 모델링을 적용할 수 있는 새로운 영역으로는 운송 수단, 항공 전자 공학과 같이 이미 정부의 규제를 받는 산업이 있습니다. 이 산업에는 이미 안전 규칙이 수립되어 있습니다만, 앞으로는 코어 네트워크와 컴퓨터 보안도 안전 규칙의 일부로 생각해야 합니다. 따라서 표준화나 도구에 관한 보안 규칙에 위협 모델링을 적용하는 작업을 정부 규제 기관과 함께 진행해야 합니다.
깃(Git) 사용으로 인한 소프트웨어 개발 효율화
소프트웨어 개발에서는 소스코드의 관리가 매우 중요하다. 완성된 소스코드는 물론이고 완성되기 전까지 만들어졌던 다양한 버전과 변경 사항, 그리고 협업을 위한 저장이나 공유 방법도 소프트웨어 개발에서는 매우 필요한 요소 중 하나다. 2명 이상의 개발자가 참여하여 프로젝트를 진행할 경우, 소스코드 관리의 중요성은 더 강조되고 있다. 이번 회에서는 깃(Git)을 이용하여 팀 프로젝트를 관리하는 방법에 대해 CJ O쇼핑 해외사업부 개발팀 곽대기 팀장을 만나 자세한 사항을 들어본다.
Q: 본격적인 이야기 전에 형상관리를 해야 하는 이유에 대해 설명을 부탁 드립니다.
일반적으로 형상 관리에서 관리되는 것은 (1)형상에 대한 변경과 버전 관리를 수행하고, (2)배포 도구를 통해 변경 사항을 배포, (3)만들어지는 형상을 버전 별로 저장소에 저장을 합니다(그림1). 형상 관리는 소프트웨어의 생명 주기에 필요한 소스코드나 산출물 등을 체계적으로 통제한다는 장점이 있지만, 프로젝트의 규모나 목적에 따라 불필요한 업무가 될 수도 있습니다. 프로젝트 시작 시점에 적절한 형상 관리 방법을 찾는 것이 필요합니다.
일반적으로 형상 관리에서 관리되는 것은 (1)형상에 대한 변경과 버전 관리를 수행하고, (2)배포 도구를 통해 변경 사항을 배포, (3)만들어지는 형상을 버전 별로 저장소에 저장을 합니다(그림1). 형상 관리는 소프트웨어의 생명 주기에 필요한 소스코드나 산출물 등을 체계적으로 통제한다는 장점이 있지만, 프로젝트의 규모나 목적에 따라 불필요한 업무가 될 수도 있습니다. 프로젝트 시작 시점에 적절한 형상 관리 방법을 찾는 것이 필요합니다.
<그림1> 형상 관리의 역할
빅데이터 사례 연구 - 시각화
거의 모든 산업에서 빅데이터를 분석하는 것은 이제 흔한 일이 되었다. 그만큼, 빅데이터의 중요도와 활용도가 인정 받았다는 뜻이기는 하지만, 빅데이터 분석 결과를 해석하거나 표현하는 방법은 크게 고민하지 않고 있는 것이 사실이다. 이번 회에서는 분석된 빅데이터를 정보화하고 누구나 직관적으로 이해할 수 있도록 표현하는 빅데이터 시각화에 대해 살펴본다. 효율적인 시각화 방법을 통해 빅데이터의 활용도가 높아지길 기대한다.
시각화의 정의
데이터 시각화(Data Visualization)
데이터 시각화는 빅데이터 분석 결과를 쉽게 이해할 수 있도록 시각적 수단을 활용하여 나타내는 것을 말한다. 도표, 이미지, 통계 그래프 등을 통해 빅데이터 안에 있는 정보를 전달한다. 수많은 데이터를 한두 장의 그림으로 표현해야 하기 때문에 해당 비즈니스를 잘 아는 전문가가 만들어야 한다고 생각하지만, 비즈니스 전문가들은 원하는 결과를 미리 유추하면서 만드는 경향이 있을 수 있어 객관적인 결과를 만들지 못하는 경우도 종종 나타날 수 있기 때문에 가급적이면 객관화된 시각화 도구를 활용하는 것이 좋다. 그림1은 “한눈에 보는 2012년 서울시 예산”을 나타내고 있다. 일반적으로, 이러한 데이터를 보여줄 때는 그림1 좌측의 엑셀과 같이 나열식으로 보여주는 경우가 많았지만 이것을 그림1의 우측과 같이 데이터 시각화로 변형할 경우 한눈에 알아보기 쉽게 표현된다.
시각화의 정의
데이터 시각화(Data Visualization)
데이터 시각화는 빅데이터 분석 결과를 쉽게 이해할 수 있도록 시각적 수단을 활용하여 나타내는 것을 말한다. 도표, 이미지, 통계 그래프 등을 통해 빅데이터 안에 있는 정보를 전달한다. 수많은 데이터를 한두 장의 그림으로 표현해야 하기 때문에 해당 비즈니스를 잘 아는 전문가가 만들어야 한다고 생각하지만, 비즈니스 전문가들은 원하는 결과를 미리 유추하면서 만드는 경향이 있을 수 있어 객관적인 결과를 만들지 못하는 경우도 종종 나타날 수 있기 때문에 가급적이면 객관화된 시각화 도구를 활용하는 것이 좋다. 그림1은 “한눈에 보는 2012년 서울시 예산”을 나타내고 있다. 일반적으로, 이러한 데이터를 보여줄 때는 그림1 좌측의 엑셀과 같이 나열식으로 보여주는 경우가 많았지만 이것을 그림1의 우측과 같이 데이터 시각화로 변형할 경우 한눈에 알아보기 쉽게 표현된다.
<그림1> 빅데이터 시각화의 예
2016년 8월 29일 월요일
R을 활용한 기상 데이터 시각화 및 활용 - 사례연구
출처: 국립기상연구소
기상 데이터는 대기의 상태를 포함한 기상현상을 과학적 방법으로 관찰하거나 측정해서 지역별로 일기나 날씨를 예측하여 국민들에게 제공되고 있다(그림6). 국립기상연구소는 종합기상정보시스템을 통해 유관기관과 국민에게 직관적인 정보를 제공하고자 R을 활용하여 기상 데이터를 시각화하여 제공하고 있다.
<그림6> 기상 데이터 흐름도
국내 자동 기상 관측망인 AWS/ASOS를 통해 전국 573개 지점, 수평 해상도 13km, 1분 단위의 데이터 수집을 통해 기상 데이터를 수집하여 분석되며, 홈페이지를 통해 실황 자료, 초단기 예보, 단기 예보가 제공되고 있다. 그림7은 풍속, 풍향에 대한 예제를 보여주고 있으며, R의 coord_polar() 함수를 통해 시각화하고 있다.
<그림7> 풍속, 풍향 데이터 시각화 예제
인포그래픽(Infographic)
정보 그래픽이라고도 하는 인포그래픽은 정보와 데이터, 지식을 시각적으로 표현하는데 복잡한 정보를 빠르고 명확하게 전달하는 것이 핵심이다. 교통 표지판이나 복잡한 지하철 노선도 등이 대표적이다. 하나의 도표나 이미지에 수많은 정보를 요약해서 전달하기 때문에 신문이나 방송 같은 미디어나 교육 분야에서 활용이 많이 되고 있다. 그림3은 그림1의 “한눈에 보는 2012년 서울시 예산”을 인포그래픽으로 표현한 것이다. 그림1도 직관적으로 해석을 할 수 있지만 그림3은 분야별 예산 비교가 좀더 명확하게 표현되어 있다.
<그림3> 인포그래픽의 예
출처: 연합뉴스 데이터
빅데이터 시각화
앞에서 언급된 데이터 시각화, 정보 시각화, 인포그래픽은 빅데이터를 시각화하는 방법이라고 할 수 있다. 빅데이터 시각화는 보는 사람의 흥미를 유발 시키고, 정보를 습득하는 시간을 단축 시켜 빠른 상황 판단을 할 수 있다. 그리고, 정보를 빠르게 확산할 수 있고, 한번 보고도 자료를 오래 기억할 수도 있다. 무엇보다 정보에 대해 효과적으로 커뮤니케이션 할 수 있다. 빅데이터 시각화는 크게 2 가지로 분류된다. 하나는 객관적인 정보를 전달하는 “정보형”, 또 다른 하나는 주장하는 것을 알리는 “설득형” 이다. 빅데이터 시각화는 설득형보다는 정보형에 약간 더 가깝기 때문에 객관적인 데이터에 기반한 정보를 제공한다(그림4).
<그림4> 정보 디자인에서 빅데이터 시각화의 영역
출처: 숙명여자대학교의 빅데이터 분석
정보 시각화(Information Visualization)
데이터 시각화를 위해서는 수집된 정보를 분류하고 배열하여 조직화한 후, 효율적인 정보 전달을 위해 시각, 청각 등의 감각 기관에 최적의 자극을 제시한다. 마지막으로, 정보를 사용자가 잘 인지할 수 있도록 사용자 상호작용(User Interaction or User experience)를 제공한다(그림2).
<그림2> 정보 시각화 절차
그림2에서 나타난 절차에 대한 자세한 설명은 아래 사이트의 정보 시각화 단락을 참고한다.
2016년 8월 26일 금요일
SW프로슈머 평가지원 사업내용
1 ) 지원 대상 및 요건
- IoT, 빅데이터, 핀테크, 클라우드 서비스 등 전 분야의 SW제품
- 설립 7년 이내의 벤처·창업·중소 SW기업 및 예비창업
2 ) 주요 내용
- IoT, 빅데이터, 핀테크, 클라우드 서비스 등 전 분야의 SW제품
- 설립 7년 이내의 벤처·창업·중소 SW기업 및 예비창업
2 ) 주요 내용
SW프로슈머 평가지원
사업개요
- SW프로슈머 사업은 일반 및 전문평가단을 통해 창업·중소기업 SW제품의 결함 사전 검출 및 개선지원을 제공함으로써 제품의 품질을 향상시키고 성공적인 시장 연착륙을 지원하기 위한 사업입니다.
2016년 8월 25일 목요일
SP인증(SW프로세스품질인증) 인증기준 및 등급
소프트웨어프로세스 품질인증 기준이란?
「소프트웨어프로세스 품질인증 기준」이란 소프트웨어 기업 및 개발 조직의 소프트웨어 프로세스 품질역량 수준을 심사할 때 활용하는 기준을 의미합니다.소프트웨어프로세스 품질인증 기준은 조직의 프로젝트 수행역량 강화를 위해 필요한 핵심 활동을 제시하고 있으며. 조직은 인증기준에서 제시하고 있는 핵심 활동의 수행을 통하여 프로세스 역량수준을 효과적으로 개선할 수 있습니다.
소프트웨어프로세스 품질인증 기준은 5개 영역, 17개 평가항목, 70개 세부평가항목으로 구성되어 있습니다.
2016년 8월 24일 수요일
SP인증(SW프로세스품질인증)
제도 개요
SW프로세스 품질인증(‘SP인증’)제도는 SW산업진흥법 제23조에 근거하여 국내SW기업의 SW사업 수행능력을 강화하고 SW사업의 부실방지를 목적으로 기업의 SW개발단계별 작업절차 및 산출물 관리 역량 등을 분석하여 SW개발 프로세스 역량수준을 평가·인증하는 제도입니다.
SW프로세스 품질인증(‘SP인증’)제도는 SW산업진흥법 제23조에 근거하여 국내SW기업의 SW사업 수행능력을 강화하고 SW사업의 부실방지를 목적으로 기업의 SW개발단계별 작업절차 및 산출물 관리 역량 등을 분석하여 SW개발 프로세스 역량수준을 평가·인증하는 제도입니다.
GCS(Global Creative Software) R&D 품질관리 사업성과
사업성과
연구사업의 품질목표 달성을 위한 수행기업의 역량 개선과 제품 경쟁력 제고를 통한 비용감소와 매출측면의 정량적 성과 창출에 기여합니다.
WBS(World Best Software) R&D 사업은 176개 기업이 참여하여, 누계 매출액 3,008억원 수출 성과 달성 (2014년 6월 기준)
* 총 과제 수 27개, 투자예산 1,641억원, 사업기간 38개월(2010년10월~2013년11월)
글로벌 의료정보 프레임워크 수출성과
- WBS 프로젝트 품질관리 체계를 통해 개발된 프레임워크 기반의 분당서울대병원 차세대 의료정보시스템이 세계적 권위의 HIMMS-Elserier 디지털 헬스케어상 수상 (13년10월)
- 사우디아라비아 국가방위부 소속 6개 병원, 병원정보시스템 계약 체결, 몽골 의료정보 시스템 구축 등 수출
- 글로벌 의료정보프레임워크 R&D 결과물을 토대로 중동지역 의료사업 진출 본격화
교통카드 솔루션 수출 성과
연구사업의 품질목표 달성을 위한 수행기업의 역량 개선과 제품 경쟁력 제고를 통한 비용감소와 매출측면의 정량적 성과 창출에 기여합니다.
WBS(World Best Software) R&D 사업은 176개 기업이 참여하여, 누계 매출액 3,008억원 수출 성과 달성 (2014년 6월 기준)
* 총 과제 수 27개, 투자예산 1,641억원, 사업기간 38개월(2010년10월~2013년11월)
글로벌 의료정보 프레임워크 수출성과
- WBS 프로젝트 품질관리 체계를 통해 개발된 프레임워크 기반의 분당서울대병원 차세대 의료정보시스템이 세계적 권위의 HIMMS-Elserier 디지털 헬스케어상 수상 (13년10월)
- 사우디아라비아 국가방위부 소속 6개 병원, 병원정보시스템 계약 체결, 몽골 의료정보 시스템 구축 등 수출
- 글로벌 의료정보프레임워크 R&D 결과물을 토대로 중동지역 의료사업 진출 본격화
교통카드 솔루션 수출 성과
GCS(Global Creative Software) R&D 품질관리 사업내용
수행기업이 연구개발 사업을 성공적으로 완수하게 하고, 품질비용 감소와 제품 품질 개선을 통해 기업 수출 경쟁력을 높이기 위한 개선활동을 지원합니다.
- (과제분석) 시스템과 과제특성을 고려하여 핵심성공요소를 도출하고, 수행기업의 SW품질 역량 수준을 진단하여 중점 개선영역을 식별
- (공학교육) SW품질역량 제고를 위한 SW공학 기술 교육 수행
- (품질점검) 수행기업의 품질활동 및 산출물에 대한 점검활동 수행
- (컨설팅) 과제 품질목표 달성과 고충 해결을 위한 과제별 맞춤형 컨설팅 수행
- (성과분석) 품질활동의 정성적·정량적 성과분석 및 성공사례 발굴
- (과제분석) 시스템과 과제특성을 고려하여 핵심성공요소를 도출하고, 수행기업의 SW품질 역량 수준을 진단하여 중점 개선영역을 식별
- (공학교육) SW품질역량 제고를 위한 SW공학 기술 교육 수행
- (품질점검) 수행기업의 품질활동 및 산출물에 대한 점검활동 수행
- (컨설팅) 과제 품질목표 달성과 고충 해결을 위한 과제별 맞춤형 컨설팅 수행
- (성과분석) 품질활동의 정성적·정량적 성과분석 및 성공사례 발굴
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 프린팅 적용으로 인한 제조업 변화
서버리스(Serverless) 애플리케이션을 위한 코드 관리
최근 들어, 아마존웹서비스(Amazon Web Service), 마이크로소프트 애저(Microsoft Azure) 등의 글로벌 업체는 서버리스 아키텍처를 지원하고 있다 국내에서는 아직 적용 사례를 찾아보기 어렵지만 해외에서는 다양한 적용 사례가 나타나고 있다. 서버가 없는 것처럼 기능에 직접 접근할 수 있기 때문에 서버를 경유하는 방식보다 효율적으로 알려져 있다. 이번 회에서는 글로벌 기업에서 아키텍트로 활동 중인 Kloud Solutions(호주 소재) 유정협 아키텍트를 만나 자세한 사항을 들어본다.
Q: 본격적인 이야기 전에 서버리스에 대한 설명을 부탁 드립니다.
서버리스는 요즘 소프트웨어 아키텍처 세상에서는 아주 핫한 토픽입니다. 책들도 많이 나왔고, 오픈소스 프레임워크도 있고, 수많은 벤더들이 프레임워크를 내놨죠. 게다가 아예 서버리스만을 주제로 하는 컨퍼런스까지 생겼습니다. 서버리스는 서버 단에서 로직이나 상태를 관리하지 않고 특정 이벤트에 반응하는 함수가 실행되는 구조입니다. 이 때, 특정 이벤트는 써드 파티 애플리케이션이나 클라우드 등에서 요청합니다. 서버리스는 서버리스는 서버 단 로직을 주로 개발자가 코딩 하는 전통적인 방법과는 다르게 서버에 상태를 저장하지 않고 돌리는 애플리케이션을 의미하기도 합니다. 이런 애플리케이션은 보통 이벤트 기반으로 작동하고, 써드 파티에 의해 관리됩니다. 이런 방식을 적용하기 위해 FaaS(Functions as a Service)가 있고, AWS 람다(Lamda)가 FaaS계의 가장 인기 있는 구현체지요(그림1). 물론, 다른 것들도 많이 있습니다. 이번에 얘기하는 것에서는 FaaS를 서버리스의 의미로 이해하시면서 들으시면 될 것 같습니다.
Q: 본격적인 이야기 전에 서버리스에 대한 설명을 부탁 드립니다.
서버리스는 요즘 소프트웨어 아키텍처 세상에서는 아주 핫한 토픽입니다. 책들도 많이 나왔고, 오픈소스 프레임워크도 있고, 수많은 벤더들이 프레임워크를 내놨죠. 게다가 아예 서버리스만을 주제로 하는 컨퍼런스까지 생겼습니다. 서버리스는 서버 단에서 로직이나 상태를 관리하지 않고 특정 이벤트에 반응하는 함수가 실행되는 구조입니다. 이 때, 특정 이벤트는 써드 파티 애플리케이션이나 클라우드 등에서 요청합니다. 서버리스는 서버리스는 서버 단 로직을 주로 개발자가 코딩 하는 전통적인 방법과는 다르게 서버에 상태를 저장하지 않고 돌리는 애플리케이션을 의미하기도 합니다. 이런 애플리케이션은 보통 이벤트 기반으로 작동하고, 써드 파티에 의해 관리됩니다. 이런 방식을 적용하기 위해 FaaS(Functions as a Service)가 있고, AWS 람다(Lamda)가 FaaS계의 가장 인기 있는 구현체지요(그림1). 물론, 다른 것들도 많이 있습니다. 이번에 얘기하는 것에서는 FaaS를 서버리스의 의미로 이해하시면서 들으시면 될 것 같습니다.
<그림1> 서버리스 AWS
빅데이터 사례 연구 - 개발 기법
빅데이터를 빠르고 정확히 분석하기 위해서는 다양한 빅데이터 분석 도구가 필요하다. 빅데이터 분석 도구는 복잡한 대용량 데이터를 구조화해서 분석한다. 데이터의 카테고리를 분리하고 필요한 데이터를 찾아 연결하면서 데이터 속에 숨어있는 인사이트를 찾아낸다. 하지만, 빅데이터 분석 도구도 모든 요소를 자동으로 찾아내지는 못한다. 빅데이터를 효율적으로 분석하기 위해서는 데이터의 특성에 맞는 분석 도구와 프로세스가 필요하고, 최초로 제어해야 하는 데이터 구성이 있다. 이번 회에서는 빅데이터 기반 프로젝트에서 필요한 분석과 개발 기술을 알아보기로 한다.
빅데이터 기반 프로젝트를 수행하기 위해서는 기본적으로 프로그래밍 기술, 통계, 그리고 데이터 분석에 대한 전문적 지식을 가지고 있어야 한다. 또한, 데이터에 대한 새로운 가설을 만들거나 검증할 수 있어야 한다. 이를 위해서는 스토리텔링과 패턴 및 알고리즘, 시각화 기술도 필요하다. 비즈니스에 대한 전문적 지식도 당연히 필요하다. 빅데이터 분석을 위한 개발 실무로 가장 많이 사용되는 것이 R이다. R을 사용한 빅데이터 관련 예제를 살펴보도록 한다.
R을 이용한 텍스트 감정분석 (출처: 퀸트랩)
사람들은 생각과 감정을 말로 표현한다. 상품평이나 인터넷 댓글, SNS 등에 남기는 텍스트를 모아서 분석하면 평소에는 알지 못하는 다양한 정보를 얻을 수 있다. 이 것이 텍스트 분석의 목적이다. 이렇게 분석된 결과를 바탕으로 감정을 수치화하여 감정의 정도를 예측할 수 있다. 감정의 좋고 나쁨, 흥분과 지루함과 같은 감정 요소 별로 정도를 파악할 수 있고 그 이유를 분석하여 개선 방안을 수립할 수 있다. 감정분석의 자료가 모이게 되면 통계화 하고 미래를 예측할 수 있는 통계 모형을 만든다.
(1) 텍스트에서 감정 구분
아래 예제는 영화 어벤져스를 개봉하면서 수집된 관람객들의 입력 데이터들이다(그림1). 감정과 관련된 구분자를 정의하고 수집된 데이터들을 확인하여 구분자 별로 입력값들을 분리한다. 그림1에서는 구분자를 비호감단어와 호감단어로 정의하였고, 구분자 별로 단어를 분리하였다. 영화를 감상한 사람이 입력한 값이 빨간색으로 표시된 ‘실망’, ‘산만’, ‘지루’, ‘별로’라는 단어로 구분된다면 비호감이었고, 반대로 ‘기대’, ‘재미’, ‘볼만’이라는 단어로 구분된다면 호감이었다고 해석한다. 나머지 구분 단어는 보통으로 해석한다.
<그림1> 영화 어벤져스의 감정 구분 예
2016년 8월 22일 월요일
데이터 분석 사례 - Google flu Trends
구글의 독감 트렌드 서비스는 전 세계의 독감 관련 증세, 치료 등 독감과 관련된 입력 빈도를 파악하여 독감 유행 수준을 5개 등급으로 구분해 2008년부터 제공하고 있다. 특정 지역에서 발열이나 기침과 같은 독감 용어 검색이 늘어나면, 해당 지역을 지도에 추가해 해당 지역의 독감 유행 수준을 실시간으로 표시하고 있다(그림10).
<그림10> Google flu Trends
해당 서비스는 구글을 통해 검색되는 데이터들을 연관규칙학습과 유형학습 기법을 통해 전 세계 독감 발병률을 예측했고, 당시에는 다소 오차가 있어 “빅데이터의 오류”에 대한 의견이 많이 나타나기도 하였다. 하지만, 2008년 당시에는 기준이 될 수 있는 초기 데이터 집합이 존재하지 않아 모델에 대한 평가가 원할 하지 않았기 때문에 오차 줄이는데 어려움이 있었을 것으로 보인다. 현재는 모델 완성 후 많은 시간이 흐른 후이기 때문에 모델에 대한 평가가 더 체계적으로 이루어 지고 있다.
이 사례가 나타내는 중요한 점은, 아무리 좋은 모델이라고 하더라도 검증되거나 평가 받지 못한 모델은 결과의 신뢰성을 장담하지 못한다는 것이다. 다시 말해, 초기 구축된 모델은 분석 결과를 반복적으로 검증 받아야 하고, 검증 후에는 다시 모델의 보정 값으로 활용되는 것이 좋다. 이 것은 기계학습 기법으로, 최근 빅데이터 분석에서 기계학습이 많이 선호되는 이유이기도 하다.
데이터 분석 기법 - 유형분석
특성을 구분하여 통계적 분류를 하는 기법이다. 통계적 분류는 새로운 사건이 속하게 될 범주를 만든다. 이를 위해, 기초 데이터를 바탕으로 만들어진 테이블이 있어야 한다. 이 기법은 문서를 분류하거나 조직을 나눌 때 사용할 수 있다(그림5).
<그림5> 유형분석
출처: 정보통신산업진흥원
빅데이터 분석 기법
데이터 분석을 위해서 수집한 데이터를 가장 잘 아는 전문가의 경험에 의해 다양하게 분석될 수 있지만, 기본적으로 표2에 나타난 7가지의 기본 방법으로 분석할 수 있다.
<표2> 빅데이터 분석 기법
더보기
2016년 8월 19일 금요일
SW사업정보 저장소 기대효과
발주자와 이해관계자들의 SW사업에 대한 예산 기획 및 사업수행 관련 현안 이슈를 SW사업 저장소의 누적 Data 활용을 통해 해결될 것으로 예상됩니다.
SW사업정보 저장소 사업내용
사업추진 내용
데이터 수집 · 검증
- SW사업 계약 및 종료시점에 SW사업수행 실적정보, 기능점수 정보 및 해당 정보를 수집하는데 필요한 각종 산출물을 수집합니다
- 사업초기 및 종료시점에 기능점수 산정 전문가를 투입하여 보다 정확한 기능점수를 산정할 수 있도록 지원합니다
- 작성된 SW사업수행 실적 정보의 일관성, 정확성, 실제 SW사업 결과와의 일치성 등을 점검하고 확인하여 수집된 데이터의 신뢰도를 제고합니다
데이터 수집 · 검증
- SW사업 계약 및 종료시점에 SW사업수행 실적정보, 기능점수 정보 및 해당 정보를 수집하는데 필요한 각종 산출물을 수집합니다
- 사업초기 및 종료시점에 기능점수 산정 전문가를 투입하여 보다 정확한 기능점수를 산정할 수 있도록 지원합니다
- 작성된 SW사업수행 실적 정보의 일관성, 정확성, 실제 SW사업 결과와의 일치성 등을 점검하고 확인하여 수집된 데이터의 신뢰도를 제고합니다
2016년 8월 18일 목요일
SW발주기술지원 신청
SW발주기술지원 대상
공공SW사업중 SW개발이 포함된 사업으로 SW개발사업을 기준으로 2억이상, 20억 미만의 별도의 지원체계를 활용하기 어려운 사업이 우선 대상사업
SW발주기술지원 사전 유선상담 ☎ 02-2132-1335
공공SW사업중 SW개발이 포함된 사업으로 SW개발사업을 기준으로 2억이상, 20억 미만의 별도의 지원체계를 활용하기 어려운 사업이 우선 대상사업
SW발주기술지원 사전 유선상담 ☎ 02-2132-1335
SW발주기술지원 사업내용
- SW발주기술지원은 SW사업 발주전단계에 전문적인 기술지원을 추진합니다. 예산수립/심의단계에서 요구사항 도출과 사업규모 및 예산수립, SW영향평가를 추진하고 RFP작성 지원, 과업변경 등 발주자에게 필요한 전문발주기술을 지원.
- SW발주역량강화를 위해 발주자 맞춤형 현장 멘토링을 추진하고 발주자에게 필요한 정보화기획 및 운영, 정보화사업 수행관리, 정보화사업 운영관리 등 관련 역량 지원.
2016년 8월 17일 수요일
공학기술개발
공학기술개발사업이란?
공학기술개발 사업은 융합SW산업환경에서 필요한 SW공학요소기술을 대학과 공동으로 연구개발하고 해당 도메인 전문인력을 양성하며, 연구개발된 기술을 국내 실정에 맞게 산업현장 적용 및 확산을 통해 융합SW핵심요소기술을 확보하기 위한 사업입니다.
추진방향
공학기술개발 사업은 융합SW산업환경에서 필요한 SW공학요소기술을 대학과 공동으로 연구개발하고 해당 도메인 전문인력을 양성하며, 연구개발된 기술을 국내 실정에 맞게 산업현장 적용 및 확산을 통해 융합SW핵심요소기술을 확보하기 위한 사업입니다.
추진방향
SW공학현장멘토링
사업 내용
소프트웨어공학센터의 전문가가 직접 현장에서 지원합니다.
- 통합되어 연결성을 가지는 전체 프로세스
- 하나의 큰 특징을 가지는 과정 [Phase]
- 과정별 세부 내용을 나타내는 단계 [Step]
- 단계별 실행 지침을 포함하는 활동 [Activity]
- 활동별 특수하게 진행되는 작업 [Task]
소프트웨어공학센터의 전문가가 직접 현장에서 지원합니다.
- 통합되어 연결성을 가지는 전체 프로세스
- 하나의 큰 특징을 가지는 과정 [Phase]
- 과정별 세부 내용을 나타내는 단계 [Step]
- 단계별 실행 지침을 포함하는 활동 [Activity]
- 활동별 특수하게 진행되는 작업 [Task]
2016년 8월 16일 화요일
SW발주기술지원
- 범국가적인 SW산업 활성화(SW산업진흥, SW제값주기 등)를 위해, 공공SW분야 발주 전반 걸쳐 제도적 개선을 추진했으나, 제도개선과 모니터링만으로는 SW산업활성화 실행력 확보에 한계가 있어 직접적 지원체계 필요.
- 공공SW사업 발주관리 全과정에 걸쳐, 전문성이 요구되는 발주업무에 대해 발주관리 전문가 직접투입 지원을 추진하고, 대상 발주기관의 지원요청별 특성, 환경, 내용 등에 따른 맞춤형 최적화 지원 추진
SI 프로젝트에서 애자일 프로세스의 활용
애자일은 최근의 소프트웨어 개발에 많이 적용되고 있지만 이미 오래 전부터 많은 SI 프로젝트에 적용되어 왔다. 대기업 중심으로 자체적인 개발방법론에 애자일 기법을 일부 적용한 것부터 개발 프로세스를 애자일로 전면 적용하는 등 다양한 방법이 시도되었지만 성공에 대해서는 많은 의문을 남겨놓았고, 지금까지도 SI 프로젝트에 애자일을 적용하는 것에 대한 많은 우려가 있다. 이번 회에서는 금융시스템에 적용하는 SI와 유지보수 프로젝트에 애자일을 적용하고 있는 로만소프트의 이영환 대표를 만나 자세한 사항을 들어본다.
< 로만소프트 이영환 대표 >
Q: 본격적인 이야기 전에 소프트웨어 개발에서 애자일의 역할을 정의해 주십시오.
너무나 많은 매체를 통해 애자일이 알려져 있고 대부분의 소프트웨어 개발자들이 애자일의 필요성을 공감하고 있을 겁니다. 개발자들이 애자일을 필요로 하는 가장 큰 이유는 간단한 프로세스입니다. 하지만, 간단한 프로세스를 고객이 좋아할 리가 없지요. 대충하는 것처럼 보이는 것도 걱정이지만 자신들도 누군가에게 보고를 해야 하기 때문이지요. SI 프로젝트에서 애자일이 뒷전으로 밀리는 가장 큰 이유입니다.
빅데이터 사례 연구 - 데이터 분석 기법
거의 모든 산업 분야에서 빅데이터가 점점 늘어나고 있다. 빅데이터는 수집이 되었다고 작업이 끝나는 것은 아니다. 수집된 데이터를 원하는 형태로 정제하고 정제된 데이터를 잘 분석해야만 사용 가능한 데이터가 나타난다. 이번 회에서는 수집된 데이터를 잘 정제하고 분석하는 기법에 대해 살펴본다. 효율적인 분석 기법을 통해 빅데이터의 활용도가 높아지길 기대한다.
사례 연구 전 확인 사항
빅데이터 분석의 방법론
데이터를 수집해서 바로 활용은 어렵다. 그림1에서 보는 것처럼 데이터를 수집한 후에는 원하는 형태로 정제한 후 데이터를 분석하는 작업이 반드시 필요하다.
<그림1> 빅데이터 활용 단계
2016년 8월 12일 금요일
임베디드 시스템의 복잡성 문제를 효과적으로 해결하는 방법
<영상출처: Software Engineering Institute | Carnegie Mellon University>
Julien Delange박사는 SEI에서 시스템과 소프트웨어 아키텍처에 관한 연구를 진행하고 있으며 특히AADL(Architecture Analysis Design in Language)를 이용하여 시스템 아키텍처를 모델링하는 방법을 중점적으로 연구하고 있습니다. SEI 입사 전에는 유럽 항공 기구에서 소프트웨어 엔지니어로 근무했습니다.
2016년 8월 11일 목요일
2016년 8월 10일 수요일
SW글로벌화 지원
GQM 교육/멘토링 서비스
- GQM 교육/멘토링 서비스SW 글로벌화 교육 및 멘토링 제공
- SW 글로벌화 가이드 및 체크리스트 제공 [바로가기]
- SW 글로벌화 수준진단 및 품질점검
GQM 컨설팅 서비스
- 단일 프로젝트 선정 후 글로벌화 품질개선을 위한 컨설팅 수행
- 공학센터의 GQM 수준진단 결과에 기초한 맞춤 교육 및 멘토링 서비스 수행 (각 분야 국내외 전문가 활용)
- SW 글로벌화 컨설팅 현장적용 및 성공모델 발굴
해외 전문가 초청 엔지니어링 워크샵
- SW 재사용성 향상을 위한 이론 및 실습을 겸비한 심화 교육 (일정 별도 공지)
ㆍ 대 상 : SW 수출 기업 선임 SW엔지니어 20명 (4개조로 나누어 실습 수행)
ㆍ 기 타 : 한글요약 및 통역 / 발표자료집 / 수료증(강사와 기념촬영), 중식 및 간식제공
- GQM 교육/멘토링 서비스SW 글로벌화 교육 및 멘토링 제공
- SW 글로벌화 가이드 및 체크리스트 제공 [바로가기]
- SW 글로벌화 수준진단 및 품질점검
GQM 컨설팅 서비스
- 단일 프로젝트 선정 후 글로벌화 품질개선을 위한 컨설팅 수행
- 공학센터의 GQM 수준진단 결과에 기초한 맞춤 교육 및 멘토링 서비스 수행 (각 분야 국내외 전문가 활용)
- SW 글로벌화 컨설팅 현장적용 및 성공모델 발굴
해외 전문가 초청 엔지니어링 워크샵
- SW 재사용성 향상을 위한 이론 및 실습을 겸비한 심화 교육 (일정 별도 공지)
ㆍ 대 상 : SW 수출 기업 선임 SW엔지니어 20명 (4개조로 나누어 실습 수행)
ㆍ 기 타 : 한글요약 및 통역 / 발표자료집 / 수료증(강사와 기념촬영), 중식 및 간식제공
SW형상관리 서비스
서비스 내용
- 중소 SW 기업의 형상관리 프로세스 적용을 위한 서비스를 무료로 제공
- 중소 SW 기업을 위한 밀착형 서비스로, 서비스 신청 기업별로 일정을 확정하여 개별 방문 서비스 실시
- 중소 SW 기업의 형상관리 프로세스 적용을 위한 서비스를 무료로 제공
- 중소 SW 기업을 위한 밀착형 서비스로, 서비스 신청 기업별로 일정을 확정하여 개별 방문 서비스 실시
2016년 8월 9일 화요일
CEP 아키텍처 기반의 실시간(Real-time)처리
배치 처리가 아닌 실시간 처리가 필요할 경우, CEP(Complex Event Processing) 아키텍처를 활용한다. 데이터 수집 즉시, 전처리, 계산, 패턴 분석을 처리한다. 많이 사용되는 구성은 그림7과 같고, 각 레이어 별 대표적인 구성 요소는 표4와 같다.
<표4> CEP(Complex Event Processing)의 구성 요소
구성 요소
|
내용
|
Log Collector
| - 이벤트를 실시간으로 수집 - 예) Apache Flume |
Message Queue
| - 이벤트를 임시로 저장 - 예) Apache Kafka |
Real-time Pre-Processing
| - 실시간으로 전처리가 필요할 경우 사용 - 예) (Real-time Hadoop이라 불리는 Twitter에서 만든) Apache Storm |
Real-time Computing
| - 실시간 계산 및 실시간 패턴 분석 - 예) (대표적인 CEP 엔진인) Esper |
<그림7> CEP 아키텍처의 실시간(Real-time)처리
출처: http://hadoop.apache.org/
처리 방식에 따른 빅데이터 아키텍처의 두 가지 사례
빅데이터를 위해 배치 처리를 하는 하둡(Hadoop) 아키텍처 기반의 시스템과 실시간 처리를 하는 CEP(Complex Event Processing) 아키텍처가 존재한다. 데이터를 실시간 처리해야 하는 경우라면 CEP 아키텍처를, 그렇지 않은 경우는 하둡 아키텍처를 사용하면 되는데 워낙 많은 데이터를 처리해야 하는 빅데이터이기 때문에 하둡 아키텍처가 많이 사용된다.
(1) 하둡 아키텍처 기반의 배치(Batch)처리
배치 처리을 위한 하둡 아키텍처는 다양한 형태로 구성되는데 많이 사용되는 구성은 그림6과 같고, 각 레이어 별 대표적인 구성 요소는 표3과 같다.
<표3> 하둡 아키텍처의 구성 요소
구성 요소
|
내용
|
Log Collector
| - 로그 이벤트 수집기 레이어로 많이 사용 - 예) Apache Flume |
DB Collector
| - DB에 저장된 데이터를 수집 - 예) Apache Sqoop |
Message Queue
| - 로그,이벤트 내용을 Data Store에 넣기 전에 임시로 저장할 경우 사용 - 예) Apache Kafka |
Data Store
| - 분산 파일 시스템으로 구성 - 예) Apache Hadoop |
Data Analysis
| - 데이터 분석을 위한 - 예) Apache Pig, Hive, Map/Reduce |
Workflow
| - Job 제어를 위함 - 예) Apache Oozie, LinkedIn의 Azkaban 등 |
<그림6> 하둡 아키텍처의 배치 처리
출처: http://hadoop.apache.org/
피드 구독하기:
글
(
Atom
)