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


더보기