2016년 6월 7일 화요일

클라우드로 인한 ICT 인프라 환경의 변화

KT, SKT 와 같은 통신회사는 통신 인프라, 삼성 SDS, LG CNS, 네이버와 같은 서버 운영회사는 하드웨어 인프라를 말하는 것처럼 ICT 인프라는 비즈니스에 따라 다양하게 해석된다. ICT 를 비즈니스로 하는 기업에서는 인프라 구축이 매우 중요하고 초기 투자비용에서도 많은 부분을 차지한다. 또한, 빅데이터와 같이 많은 데이터를 활용하는 최근에는 ICT 인프라 자원 사용량의 변화가 매우 크기 때문에 정확한 ICT 인프라 자원 산정에는 한계가 있었다. 그러나, 클라우드 컴퓨팅 환경으로 점차 전환되면서 고민이 해결되고 있고, 최근 떠오르는 클라우드 생태계 활성화를 위한 공공 부문의 움직임이 분주하다.

클라우드 확산의 중심, 클라우드 우선 정책 (Cloud First Policy)
주요 리서치 기관에서는 클라우드의 공공 부문 도입이 클라우드 컴퓨팅 서비스 확산에 촉매가 될 것이라고 예측하고 있다. 공공 부문의 확대로 클라우드 확산에 가장 큰 걸림돌이라고 지목한 보안 문제나 정책 문제가 빠르게 해소될 것으로 보이기 때문이다.
해외에서는 이미 공공 부문에서 클라우드를 우선 도입해 민간부문으로 점차 확대되고 있는 추세다. 미국과 영국은 2010년과 2011년 클라우드 우선 정책 공표를 통해 공공 부문 클라우드 시장의 활성화를 이끌었고, 5 년 만에 기업과 기관의 클라우드 활용률은 40%를 넘어섰다. 미국이나 EU 국가들은 우리나라나 일본에 비해 ICT 산업의 산업 경쟁력 강화를 시장 원리에 맡기고 국가 개입을 최소화하는 경향이 있었지만 클라우드 분야에서는 다소 다른 행보를 보이고 있다.
우리나라는 정부 주도의 ICT 정책의 영향이 매우 큰 나라로 볼 수 있지만 최근 ICBM (IoT, Cloud, Big Data, Mobile 을 의미)등 신성장 산업에서는 대/중소기업 동반 성장을 위해 대기업 참여 제한을 완화하는 정책을 시행하고 있다. 지난해 9 월부터 시행된 ‘클라우드컴퓨팅 발전법’에 따라 공공 부문의 클라우드 도입이 발표되었고, ‘K-ICT 클라우드컴퓨팅 활성화 계획’에 따라 2018년까지 공공기관의 40%가 민간 클라우드를 이용하도록 하고 정보 자원의 중요도가 낮은 단계부터 민간 클라우드를 적용하면서 2021년 클라우드 선도 국가로 도약한다는 목표 하에 공공 부문이 마중물 역할을 한다는 계획이다.
세부적으로는 공공 부문의 선제적인 클라우드 도입, 안전한 이용환경 조성 및 규제개선을 포함한 민간부문의 클라우드 이용 확산, 국내 클라우드 산업 성장생태계 구축 등을 진행할 예정이다.
클라우드는 ICT 인프라를 소유에서 공유 개념으로 전환시키고 있다. 클라우드 우선 정책은 ICT 인프라 산업의 새로운 판이 만들어지는 것으로 볼 수 있다. 그 동안 우리나라는 ICT 를 소비하는 강국이었지만 ICT를 생산하는 강국이 되기 위해 클라우드를 통한 ICT 시장의 강국으로 거듭나야 한다. 정부는 산업 진흥을 위한 독소조항은 끊임없이 찾아 해소할 수 있도록 노력해야 되며, 대기업은 정부 정책의 전환을 화답하기 위해 중소기업과의 동반 성장 방법을 찾고 시장을 선도할 수 있도록 변화해야 한다.


SI 프로젝트 품질점검 활동 및 프로세스 수립 사례

프로젝트에서 품질 보증 및 점검 활동은 중요한 요소입니다. 고객에게 인도되는 고품질 제품을 제공하기 위해서는 회사 내부에 품질 조직 구성 또한 중요한 역할을 합니다. 이에 대해 심선보 차장(kt ds 소속)을 만나 현장 이야기를 들어보겠습니다.


SI/SM 관점에서 품질 활동 수행은 접근 방법에 차이가 있으며, 여기서는 SI 프로젝트 수행시 품질 확보를 위하여 전사 QA 활동인 프로젝트 상시 품질점검 Health Check, 단계말 품질 점검, Code Inspection, 종료 품질 점검 및 SI 종료 산출물 등록 점검에 대한 프로세스를 이야기 하도록 하겠습니다. 또한 전사 QA와 프로젝트 수행에 참여하는 PM/프로젝트 QA 업무 활동 및 착수 지원 체계에 대해 전해드리겠습니다.

1. 프로젝트 착수단계 방법론 Tailoring 지원
2. 상시 품질점검(Health Check)및 단계말 프로세스 및 산출물 사전 품질점검
3. Code Inspection 점검 및 SVN 구성 정보 지원
4. 종료 산출물 등록 및 산출물 관리 프로세스 가이드


Q: 방법론 Tailoring이란 무엇인가요?
개발 방법론을 프로젝트에 적용함에 있어서 프로젝트의 상황에 따라 방법론의 적용 수준 및 방식은 변하게 됩니다. 프로젝트의 상황에 따라 각기 다른 형태의 적용 절차 및 산출물을 정의하는 절차가 방법론 기반 Tailoring(프로젝트 산출물 정의)라고 할 수 있습니다.

Q: 프로젝트 착수 단계에서 방법론 Tailoring을 수행하는 방법을 소개해주세요?
SI 프로젝트 산출물 테일러링은 착수 단계에서 프로젝트 등급 및 성격에 따라 개발 방법론, 관리방법론에 대한 산출물 테일러링을 진행합니다. 전사 QA 선정 대상 기준은 프로젝트 등급을 산정하여 특정 등급 이상을 기준으로 하나, 전략적 중요 프로젝트는 금액에 상관없이 진행합니다. 등급 선정의 기준은 프로젝트 규모, 수행기간, 월별투입공수 (M/M), 사업유형 등을 구분하여 비중 적용 산식을 마련하여 적용합니다. 프로젝트 유형은 다양하겠지만 아래는 3가지 유형의 프로젝트인 경우에 한정한 개발 방법론이며, 관리 방법론 공통으로 적용한 경우 입니다.

<그림 1> 개발 방법론 및 관리 방법론 적용


핀테크 사례 연구 - 아키텍처 편


핀테크는 최신 기술로 분류되지만 기존 금융 서비스에 ICT 기술 접목을 통해 새로운 서비스를 제공한다. 기존 금융 서비스에 영향을 미치지 않고 핀테크 서비스를 제공하기 위해서는 아키텍처의 구성이 매우 중요하다. 이번 호에서는 핀테크 아키텍처 설계의 방향에 대해 살펴보고, 설계 방향에 따라 필요한 아키텍처 구성에 대해 S사의 실제 사례를 소개하여 이해를 돕고자 한다.

사례 연구 전 확인 사항
핀테크 아키텍처는 기존 아키텍처의 특성과 크게 차이가 없다.
보통의 아키텍처는 모델에 여러 가지 변화를 가해도 비슷한 결과를 산출하는지를 나타내는 강건성이 강조된다. 강건성 높은 아키텍처는 구성이 완성된 후에 다른 서비스를 추가해도 기본적인 구성은 흔들리지 않는다.
금융 아키텍처는 다른 산업의 아키텍처에 비해 강건성이 높은 편으로 알려져 있지만, 금융의 특성상 기존 아키텍처를 건드리지 않으려는 노력이 더 강하다고 봐야 할 것이다. 이러한 점 때문에 금융 서비스는 사용자의 편의성이 좋지 못한 것이 사실이다.
핀테크는 금융 서비스에서 사용자의 편의성을 반영한 금융 서비스를 이용하기 위한 방법의 일종이라고 할 수 있다. 편리한 결제, 송금, 개인 대출 등 다양한 서비스를 제공하고 있지만 최근의 핀테크는 페이먼트(Payment)에 집중되어 있다.
최근의 핀테크는 페이먼트에 집중되어 있다.
최근의 핀테크가 페이먼트에 집중되어 있는 이유는 모바일의 확대로 온/오프라인이 통합 되었고 사용자가 가장 많이 사용하는 페이먼트의 모바일 편의성이 많이 요구되었기 때문이다. 또한, 웹에서 사용하는 ActiveX, 공인인증서 등의 불편함도 이유라고 볼 수 있다 (그림 1).

<그림 1> 페이먼트의 역할


출처 : ㈜에버스핀 ’s 핀테크 산업의 소프트웨어공학 요소

핀테크는 사용자의 편의성과 안전성이 요구된다.
핀테크는 사용자 편의성을 높이는 것이 주된 목표이기 때문에 기존 금융 서비스에서 제공하던 안전 장치를 사용하지 않는 경우가 많다. 금융 특성상 안전성도 핀테크의 중요한 요소라고 할 수 있다.
핀테크는 간편한 결제만을 위한 것은 아니다. 안전한 사용자 환경을 보장한 간편함을 제공하는 것이 핀테크이다. 네트워크를 사용하면서 발생하는 안전 문제는 기존 금융 서비스와 유사하지만, 핀테크의 경우 앱 기반 사용자 편의성에서 많은 안전 문제를 가지고 있다(그림 2).

<그림 2> 앱 기반 안전 문제


출처 : ㈜에버스핀 ’s 핀테크 산업의 소프트웨어공학 요소

이와 같은 이유로, 최근까지 페이먼트 사업에 많은 서비스를 제공하고 있는 S사의 페이먼트 사업의 아키텍처를 사례 연구해 보고자 한다. 사례 연구에서는 편의성과 안전성 관점으로 아키텍처를 살펴보고자 한다.


2016년 6월 3일 금요일

자동차 분야 기능안전성(Functional Safety)표준과 소프트웨어 테스팅 표준

더보기

소규모 개발업체의 협업 프로젝트 관리상의 문제점과 극복 사례

  시간, 비용, 품질. 이 세가지는 소프트웨어 개발 프로젝트에서 가장 중요한 요소이다. 특히 소규모 IT 업체의 경우 주로 소규모 프로젝트를 수행하게 되는데, 소규모 프로젝트에서의 시간적인 요소는 투입되는 비용과 산출물 품질에 큰 영향력을 미친다. 비용은 일정과 투입 인원에 종속되어 있기 때문에 일정에 따라 비용이 변경되고, 품질은 투입 인원의 노력 및 투입된 시간에 따라 달라질 수 있다. 즉, 일정에 따라 추가적인 비용 발생, 그리고 개발자들의 심리적 납기 압박으로 인한 품질 저하를 가져 올 수 있다는 이야기가 된다. 따라서, 소규모 IT 업체가 수행하는 프로젝트의 성공 여부는 일정 관리의 성패와 매우 밀접하게 연관되어 있다고 할 수 있다.
창업 7 년 차, 4 명의 인원으로, 네트워크를 통한 효율적인 컴퓨팅 환경을 제공하기 위하여 고군분투하고 있는 (주)아인스웨어의 한창호 대표를 만나 그동안의 어려움과 극복사례를 들을 수 있었다.

 
1. 소규모 개발 업체들이 겪는 어려움과 손실
2. 문제점을 해결하기 위해 시도해 본 노력
3. 레드마인과 같은 협업툴을 이용하여 얻은 효과
4. 소규모 개발 업체를 위한 제언

Q: 소규모 개발 업체들이 가장 어려움을 겪는 부분은 어떤 것인가요?
저희 같은 소규모 개발 업체들이 안고 있는 문제점 중에서 가장 큰 부분 중의 하나가 ‘개발인력의 부족’과 ‘개발시간의 부족’일 것이라고 생각합니다.
작은 회사들은 외주용역을 통해 수익을 발생시키는 구조로 되어있는 곳이 많기 때문에 대부분이 협업으로 진행됩니다. 모든 회사들이 아이디어 및 개발 시 발생하는 다양한 문제점들에 대해서 미팅을 진행하지만 사내 미팅이 아닌, 고객사와의 협업, 게다가 디자인 담당회사 등 다른 업체들까지 함께 협업을 해야 하는 상황이 되면 문제는 훨씬 더 복잡해집니다.
‘미팅’이라는 것이 생각보다 비효율적으로 진행되는 부분이 많은데요. 저희도 창업 초기에는 이 부분에 너무 많은 시간이 할애되어 낭비되는 시간이 많았습니다.
특히, 소규모 IT 업체들은 저희처럼 대표자도 개발에 직접 참여해야 하는 경우가 많은데요. 공동 개발하는 업체로 미팅을 하러 나간다면, 1 시간의 미팅을 위해서 교통 시간과 자료 준비 시간 등을 감안, 최소 2 시간 정도의 시간을 추가로 소비하게 됩니다.

중요한 점은, 미팅을 진행한 이후에 바로 프로그래밍에 집중을 할 수 있는 개발자는 많지 않다는 것인데요. 개발자들의 경우, 프로그래밍 중간에 그 맥을 끊고 다시 프로그래밍을 시작하게 되면 예열이 되는 시간이 필요하게 됩니다. 그러다 보면 정작 개발에 필요한 시간은 점차 줄어들어 시간에 쫓기게 되고, 한정된 시간동안 납기일에 맞춰 개발을 진행하다 보니 인력들은 지치고, 품질도 떨어질 수 있는 어려움이 반복될 수 있는 것이죠. 사실 큰 규모의 회사들처럼 시간과 비용이 넉넉하다면 크게 문제되지 않을 부분일 수 있지만 그렇기에, 소규모 개발 회사일수록 가능한 많은 시간을 개발에 투자할 수 있도록 환경을 구축하는 것이 그 무엇보다도 중요하다는 것을 뼈저리게 느꼈습니다.


인공지능 - 머신 러닝 편

지난 공학트렌드에서는 인 공지능의 한 분야 인 딥 러닝 에 대해 살펴보았다 . 딥 러닝의 정 의와 학습 방법 의 유형 에 대해 알아 보고 적용 사례를 살펴보면서 활 용 방법을 고민해보았다 . 이번 공학트렌드에서는 머신 러닝에 대해 알아본다 . 머신 러닝에는 다양한 개념과 방법이 존재하기 때문 에 주요 한 개념과 자 주 사용되는 알고리즘 중심으로 알아본다 . 지난 공학트렌드의 딥 러닝도 머신러닝의 한 부 분이다 .

머신 러닝의 정의
사전적인 정의를 살펴보면, 백과사전에서는 머신 러닝을 “인공지능의 연구 분야 중 하나로, 인간의 학습 능력과 같은 기능을 컴퓨터에서 실현하고자 하는 기술 및 기법이다” 라고 정의한다. 조금 좁혀서 정의하면 “엄청난 양의 데이터를 스스로 학습하고 정리하여 문제에 대한 해답을 찾아내는 기법이다” 라고 할 수 있다. 최근에는 “학습된 내용을 기반으로 미래를 예측” 하는 것까지 범위에 포함시키고 있다.
사람은 고양이가 어떤 생김새인지 알고 있으면, 처음 본 고양이라도 고양이로 인식한다(그림 1 참조). 하지만, 기계의 경우 고양이마다 고양이라는 인식표를 붙여서 데이터베이스에 저장해야 한다(그림 2 참조).