2017년 2월 24일 금요일

인터넷 은행이 소프트웨어 산업에 미치는 영향


전통적으로 가장 보수적인 분야로 알려진 은행도 IT 기술이 적용된 인터넷 은행이 16년말 출범해 운영을 준비중에 있다. 점포 없이 인터넷이나 콜센터에서 예금이나 대출 업무를 보는 은행으로 대규모 지점망 없이 운영되기 때문에 기존 은행에 비해 수수료나 마진율이 좋을 것으로 예측되고 있다. 인터넷 은행은 거의 모든 업무가 인터넷으로 이루어지기 때문에 기존의 인터넷 뱅킹과는 다른 기술적 요소가 필요할 것으로 보인다. 이번 회에서는 I은행 모바일 뱅킹 프로젝트에 참여한 팀원과 S은행의 스타트업 지원 프로젝트 팀원을 만나 이야기를 들어본다.

Q: 안녕하세요. 인터넷 은행이 발표되면서 기존의 인터넷 뱅킹과 무엇이 다른지 궁금증이 생기는데요. 차이점 중심으로 인터넷 은행에 대한 설명을 부탁드립니다.

은행과 뱅킹이 같은 말이라 혼란이 있으실 겁니다. 가장 큰 차이로 보면 인터넷 뱅킹은 오프라인인 은행 지점에서 통장을 만들어 인터넷 뱅킹을 신청해야 합니다. 오프라인 은행 업무를 보기 위한 방법의 하나로 인터넷 뱅킹을 하는 것이죠. 그런데 인터넷 은행은 자체가 인터넷으로 만들어져 있기 때문에 통장 만드는 것부터 예금이나 대출과 같은 업무를 인터넷으로 하게 됩니다.
은행 업무는 전통적으로 계좌개설, 이체, 결재, 여신, 수수료 등이 있는데 그림1과 같은 차이점을 나타냅니다. 업무 측면에서 본다면 거의 똑같고 비즈니스 측면에서는 이용자에게 좀 더 편리한 서비스를 제공하게 됩니다.

<그림1> 기존 은행과 인터넷 은행의 차이점 비교
출처: Brain & Company, 교보증권 리서치센터



애자일에서의 개발 문화와 재사용 연결

애자일 기반으로 개발을 할 때는 사용자 스토리(Story)를 정의하고 개발 단위인 일(Task)을 만든 후 개발(In Process)을 한다. 개발이 완료되면 테스트(Testing)을 거쳐 사용자와 개발자가 완료가 되었다고 인정하면 완료(Done)을 하게 된다(그림3).

<그림3> 애자일 기반의 개발 프로세스
출처: Technology Unplugged

재사용 관점에서 주목해야 할 부분이 바로 완료(Done)이다. 완료는 단순히 개발을 완료했다는 의미가 아니라 하나의 사용자 스토리나 태스크가 완료되어 더 이상 작업할 필요가 없다는 것을 의미한다. 다시 말해 프로젝트가 종료할 때까지 수정하거나 건드리면 안되는 것을 나타낸다.
이전의 SI(System Integration)에서는 개발이 완료되어도 통합 테스트나 프로덕트 테스트 이후에 수정하는 경우가 많았다. 다시 말해 ‘완료(Done)’이 아니라 ‘거의 완료(Almost Done)’로 봐야한다.
재사용을 위해서라면 객체화, 모듈화, 컴포넌트화가 되어야 하는데 단 한번이라도 수정할 여지가 있다면 재사용 객체라고 할 수 없다. 애자일에서 개발이 완료된 이상적인 태스크는 더 이상 수정이 필요 없고 언제 어디서든 재사용할 수 있어야 한다. 그림4와 같이 애자일 기반으로 스크럼이 수행되면서 좌측 상단에 ‘Done’이 계속 쌓이게 되고 최종 목표로 하는 소프트웨어가 모두 완성이 된다.

더보기


게임 소프트웨어 동향


디바이스 발전에 따른 게임 소프트웨어의 변화

그림3에서 보는 것처럼 모바일 게임으로 시장 중심 이동이 가속화되고 있어 스마트폰 보급 활성화에 따라 게임 시장의 중심축이 온라인 게임에서 모바일 게임으로 변화하고 있다.
모바일 게임은 간단하게 즐길 수 있는 캐주얼 게임들이 주류를 이루면서 이동 중에 할 수 있는 게임들 위주로 인기를 끌었으나 최근에는 RPG(Role Playing Games)장르에서 대작 게임이 잇따라 출시되면서 PC 온라인 게임 수준의 다양한 아이템과 콘텐츠, 고품질의 그래픽과 사운드, 시나리오, 대규모 멀티플레이 등으로 무장한 레이븐, 이데아, HIT 등의 게임들이 출시되었고 이용자의 접근성이 온라인 게임보다 편리하기 때문에 이용자들의 계속 이동하는 추세다.
모바일 게임은 경쟁에서 온라인 게임에서 유리하기 때문에 앞으로도 이동이 가속화될 것으로 보이는데 시간 및 장소에 대한 제한이 없기 때문에 수시로 다양한 모바일 게임이 출시되고 있고, 계절적 요인도 PC나 온라인 게임에 비해 자유롭다는 장점도 있다.

<그림4> 모바일 게임 장르 분포
출처: 티버즈, 2016

자율 규제에 의한 소프트웨어의 변화

확률형 아이템을 둘러싼 논쟁과 자율 규제가 도입되면서 2015년 3월 확률형 아이템을 판매할 때 획득 가능한 아이템의 종류와 구성 비율, 획득 확률 등을 공시토록 하는 ‘게임산업진흥에 관한 법률’ 개정안이 발의되면서 확률형 아이템이 논란이 되었다.
확률형 아이템은 게임에서 임무를 완수하면 얻거나 돈을 주고 구입해야 하지만 열어보기 전까지 내용물을 알지 못하는 아이템이다. 개정안 배경에는 확률형 아이템을 획득하기 위해 베팅과 획득한 아이템을 거래하여 현금화시키는 등의 사행성 문제가 대두되었기 때문이다.
확률형 아이템이 모바일 게임의 매출에 상당 부분을 차지하고 있는 현 상황에서 해외 게임과의 역차별과 확률 기준에 대한 개선 요구가 높아지면서 논란이 발생되고 있다. 2015년 7월 한국인터넷디지털엔터테인먼트협회에서 확률형 아이템 자율규제를 도입하면서 논란이 다소 진정된 상태다. 구매 상품에 대한 알 권리를 충족시키고 이용자의 신뢰를 확보할 수 있는 최적의 방안 마련이 필요한 상황이다. 그렇지 않다면 수익 구조가 취약한 국내 모바일 업체 규모가 줄어들 수 있기 때문이다.

더보기


2017년 2월 23일 목요일

SI 프로젝트의 애자일 적용 사례 연구 - 재사용

재사용을 하려는 이유

개발팀의 가장 큰 바램은 이전에 개발했던 것을 다음 프로젝트에서 재활용하는 것이다. 개발 시간과 비용도 낮아지지만 이미 검증이 되어 개발팀의 품질 부담을 줄이는 것이 가장 큰 이유이다. 재사용을 위해 객체(Object)와 컴포넌트(Component) 개념을 기반으로 한 OO(Object Oriented), CBD(Component Based Development) 방법론 등이 많이 활용되었고, 최근에는 아키텍처와 어플리케이션까지 재사용이 확대되는 추세다.

재사용을 망설이는 이유

재사용의 장점은 매우 높지만, 최근까지도 잘 활성화 되지 않고 있다. 처음부터 재사용을 위한 개발을 해야 하기 때문에 추가적인 비용과 시간이 많이 들고 재사용 전문가가 반드시 개발에 참여해야 하기 때문이다. 재사용 소프트웨어를 만들어도 유지 보수하는데 어려움이 매우 크고 들어간 노력 대비 재사용되는 횟수가 적은 것도 재사용을 망설이는 요인 중 하나다. 그 중에서도 가장 큰 요인은 다른 사람이 개발한 것을 믿지 못하는 개발 문화에 있다.

재사용의 단위

재사용은 검증된 소프트웨어를 사용하여 프로젝트 실패 위험을 감소시키고 개발 시간을 단축하는데 목적이 있기 때문에 다른 프로젝트에 잘 적용되도록 범용성이 높아야 하고 재사용을 위해 별도의 수정작업을 거치지 않도록 모듈화가 되어야 한다(표1). 하나의 퍼즐을 완성하기 위해서는 전체 그림을 보면서 조각을 맞추듯이 전체 아키텍처를 그려놓고 처음부터 재사용을 위한 모듈화를 시작해야 한다.

<표1> 재사용을 위한 모듈화의 조건

모듈(Module), 객체(Object), 컴포넌트(Component)는 엄밀히 말하자면 차이가 있는 개념이지만 소프트웨어를 구성하는 단위이고 재사용이 가능하다는 점에서는 같은 개념이라고 볼 수 있다.
하나의 객체는 기능을 나타내는 오퍼레이션(Operation)과 오퍼레이션이 동작되도록 하는 로직(Logic)으로 구분되어 코딩 되는데 많은 테스트를 거쳐 검증이 완료된 객체의 사용은 시간과 비용이 낮아질 뿐만 아니라 오류를 줄이고 신뢰도를 높이는 효과를 얻을 수 있다.
이렇게 만들어진 객체는 재사용을 하는 부분에 따라 3가지로 구분을 하는데 오퍼레이션을 재사용하는 라이브러리(Library)와 로직을 재사용하는 프레임워크(Framework), 자주 사용되는 개발 형태를 패턴으로 정의한 디자인 패턴(Design pattern)이 있다(그림1).


게임 산업 동향과 적용 기술 분석


온라인 게임이 주류를 이루고 있는 지금 다양한 IT 신기술이 나타나면서 게임 산업 전반적인 변화가 감지되고 있다. PC나 모바일 디바이스를 손으로 제어하면서 즐기던 게임에서 VR이나 인공지능이 가미된 직접 참여적이고 지능형 게임이 소개되고 있다. 이번 회에서는 게임 산업의 동향과 그에 따른 신기술에 대해 살펴보기로 한다.
게임 산업 동향

국내외 게임 산업 동향

세계 게임 시장은 평균 5% 대의 안정적 성장세가 지속되고 있다. 2016년 세계 게임 시장 규모는 2015년 대비 4.6% 성장한 1,359억 달러 규모로 나타났으며 2017년에는 3.8% 성장한 1,411억 달러 규모로 추산하고 있다(그림1).

<그림1> 세계 게임 시장 규모
출처: PWC(2015), Enterbrain(2015), JOGA(2015), 한국콘텐츠진흥원(2015), 문화관광체육부(2015), 대한민국 게임백서(2015)

국내 게임 시장은 모바일 게임이 본격적으로 시작된 2014년과 2015년에 10% 가까운 성장을 보였으나 게임 산업 규제로 인해 성장세가 크게 꺾이면서 2016년에는 전년도 대비 5.6% 성장에 그칠 것으로 보인다. 2017년에도 성장률 둔화가 지속될 것으로 전망되고 있다(그림2).

<그림2> 국내 게임 시장 규모
출처: PWC(2015), Enterbrain(2015), JOGA(2015), 한국콘텐츠진흥원(2015), 문화관광체육부(2015), 대한민국 게임백서(2015)



SK C&C Agile 방법론(SKPE-Agile)

출처: http://skccblog.tistory.com/299
해당 사례에서는 SK C&C Agile 방법론으로 SI에 애자일을 적용하고 있다. 해당 사례에서 애자일 프로세스를 적용하는 방법은 아래 사이트를 참고 바란다.
해당 사례에서 애자일을 적용하는 주요 목표는 짧은 개발 주기를 반복하여 서비스를 조기에 출시한다는 것이다. 이 목표를 달성하기 위해 반복 점진적 개발을 통해 제품의 완성도를 향상하고자 하였고, 매 이터레이션마다 고객의 참여 시연을 유도해 요구사항과 제품의 구현 검증, 평가를 하고자 하였다. 이터레이션의 기본 프레임은 이터레이션 계획, 수행, 검토로 구성되고, 반복 주기는 2~N회, 주기당 기간은 2~4주, 스크럼 별 데일리 스크럼 회의를 실시하였다(그림7).

<그림7> 애자일 기반 개발의 스크럼
출처: http://skccblog.tistory.com/299

그리고 해당 사례에서는 반복과 점진(증분)을 위해 그림8과 같은 활동을 하였는데 이 활동은 고객의 참여로 인해 스토리 단위로 구현에 필요한 아키텍처, 설계, 코딩 및 테스트 등의 필요한 모든 작업들을 유기적으로 수행한 것으로 확인되고 있다.
본 사례의 성공 요인은 스토리 단위로 모든 개발 프로세스가 진행되었고 반복과 점진적으로 빠르게 개발하면서 완성도를 높인 점이다. 이러한 점은 고객의 이해도를 높여줬고 완성된 서비스 또한 만족도가 높을 수 있게 했다.


더보기


2017년 2월 22일 수요일

봇넷과 IoT로 인한 보안 문제

Q: IoT 장비에 PC처럼 공격 명령을 내릴 수 있다는 것인가요? 카메라 같은 장비를 통해 가능하다는 것이 놀랍네요.

네 그렇습니다. IoT 장비 뿐만 아니라 IP 주소가 배정되는 모든 디바이스에는 가능한 얘기입니다. IoT 장비를 통한 봇넷이 왜 더 위험하냐 하면 PC나 모바일 디바이스의 경우는 경험에 의해 자체적인 보안 설정을 만들 수 있지만 IoT 장비들은 아직 시작 단계일 뿐만 아니라 IoT 장비를 움직이는 최소한의 설정만 되어 있는 경우가 많아 보안 자체가 없는 경우도 있습니다. 봇 마스터가 이를 이용하기는 더 쉬운 것이지요. 카메라 뿐만 아니라 집에 있는 냉장고나 자동차가 DDoS 공격을 하는 사례가 나올 수도 있는 상황입니다.

Q: 영화에서나 보던 보안 사고가 날 수도 있는 여지가 생겼다는 것에 대해 매우 심각해 보이는데요. IoT로 인한 보안 문제에 대해 조금 더 자세히 설명 부탁합니다.

불과 얼마 전에 미라이(Mirai) 봇넷이 이슈가 되었습니다. 원래 봇을 만들기 위해서는 이메일을 수도없이 보내고 그 중에서 악성 코드를 실행한 PC만 가능했는데 미라이 봇넷의 경우는 62개의 아이디와 패스워드만으로 거대한 봇넷을 구축했다는데 주목해야 합니다. PC의 경우는 손댈 것이 너무 많은데 IoT는 아이디와 패스워드만 알아도 봇으로 만들 수 있다는 것과 IoT 장비의 아이디와 패스워드는 사용자가 관심있게 관리하지 않는 단점도 있어 미라이 봇넷이 확산 여지가 충분하다는 것입니다.
미라이 봇넷은 일반적으로 쉘을 제공하는 22번이나 23번 포트를 통해 침입하는데 접속하기 위해 자주 사용하는 아이디와 패스워드 테이블을 미리 만들어 랜덤하게 대입합니다. 이 때 만든 아이디와 패스워드 셋이 62개 정도였습니다(그림4).

<그림4> 미라이 봇넷에서 사용된 아이디와 패스워드
출처: IT World

침입 방식을 정리해 말씀드리면 접속된 IP를 스캔하면서 IoT 장비를 찾고 랜덤하게 대입한 아이디와 패스워드로 접속이 되면 텔넷 포트를 닫아 다른 공격자나 관리자 접속을 차단합니다. 봇 마스터는 감염시킨 봇을 찾지 못하도록 무작위로 IP 주소를 변경하는 경우도 있어 감염 여부를 확인하거나 공격자를 찾기가 쉽지 않은 경우도 있습니다.

더보기