티스토리 뷰

프로그래밍 계획 수립하기

프로그래밍 계획

작성된 시스템 설계서를 통해 제작된 UI/UX 디자인을 이용하여 프로그래밍 계획을 수립할 수 있다.

앱 개발 프로젝트 프로세스

앱(app)이란 ‘애플리케이션(application)’의 줄임말로 우리가 일상생활에서 필요한 특정한 업무를 해결하기 위해 사용하는 소프트웨어, 흔히 프로그램이라고 불리는 응용 소프트웨 어를 의미한다. 특정 업무란 문서편집, 정보검색, 사진편집 등과 같이 일상생활에서 흔히 처리하는 업무를 가리킨다.

앱 개발의 프로세스는 기획과 개발의 두 가지로 나눌 수 있다. 여기에 추가적으로 개발 이후에는 운영 업무라는 프로세스까지 포함하기도 한다. 보편적으로 단일 개발에서는 운 영은 제외하며 기획과 개발 중심으로 설명하고 개발 후에 개발된 앱의 배포에 대해서만 다룬다. 기획과정은 요구사항 분석, 스토리보드, 설계로 분류하고, 개발과정은 UI/UX 디자인, 기능 구현, 테스트로 분류한다.

기획과정
  • 요구사항 분석
    • 요구사항은 개발과정에서 가장 중요한 단계이며 실제 구현하고자 하는 앱의 목적과 방향을 올바로 인식해야만 올바른 구현이 가능하게 하는 중요한 요소이다. 따라서 요 구사항은 추상적인 아이디어와 기획안을 도출하여 이를 구체화 시키는 단계이며 만들 고자 하는 앱의 모든 기능들이 명확히 기술되어야 한다. 어떤 앱을 구현할 것인지에 대한 목표와 방향이 확실해야 하며, 목표에 맞는 정확한 기능들이 구체화 되어야 한다. 요구 분석은 만들고자 하는 앱의 메뉴와 기능들이 기록된 문서다. 기획서를 기반으로 어떤 메뉴가 구성되고, 그 구성된 메뉴에 어떤 기능을 구현했는지 와 각 페이지에서 작동하는 기능들이 구체적으로 기술되어 있어야 한다. 따라서 요구 분석 단계가 명확 하지 않으면 개발 후의 앱이 처음에 원했던 결과가 나오기 어렵고, 개발진행 자체가 매끄럽지 않게 된다. 개발과정 중에 요구사항이 바뀌게 되면 그 만큼의 시간적, 금전 적 손실을 감수해야 한다. 또한, 앱의 요구 분석과 함께 서비스에 대한 정책이 만들어져야 한다. 예를 들어, ‘로 그인 3회 실패 시 로그인이 거절된다’거나, ‘어느 특정 페이지에서 뒤로 가기 버튼 을 누르면 메인페이지로 이동한다’ 등의 서비스 정책을 결정하여 기술해야 개발에서 기능설계를 하면서 그 정책이 실제 반영이 될 것이고 향후 앱을 통한 서비스를 제공 하는데 문제가 없게 된다. 요구사항을 분석 하는데 정해진 양식은 없으며, 대부분 엑 셀 또는 한글 및 워드 프로그램 등을 사용한다.
  • 스토리보드 제작
    • 요구사항 분석서가 메뉴와 기능들에 대한 기술 문서라고 한다면, 스토리보드는 시각적 인 앱의 흐름과 각 페이지에 노출되어야 할 요소들과 기능들을 상세히 기술한 것이다. 앱의 각 페이지가 정확히 기술되어야 하며, 각 화면 요소들의 크기와 이벤트(사용자가 앱을 터치했을 경우 또는 페이지가 로딩될 때 수행되어야 하는 기능들), 디자인적인 위치와 앱 화면의 흐름이 기술되어야 한다. 스토리보드에 맞추어 디자인이 작성되고, 각 페이지에서 필요한 기능 설계가 이루어진 다. 스토리보드는 앱이 개발되기 이전의 문서화된 프로토타입(prototype)이다. 스토리보 드를 작성할 때는 UX(User Experience) 기획이 중요하며, 한 화면에 많은 기능과 많은 이미지를 한꺼번에 다 보여주면 무엇을 하는 앱 인지 모호해 질 수 있다. 따라서 각 페이지마다 핵심이 되는 기능 한 두 개 정도만 보여주는 것이 사용성에 있어서 효율 적일 수 있다. 스토리보드 작성은 파워포인트 프로그램 등을 활용하여 작성할 수 있다.
  • 설계
    • 요구사항과 스토리보드로 앱이 구체화되었다면 이를 기반으로 디자인 설계와 기능 설 계를 진행할 수 있다. 디자인은 스토리보드에서 제시된 화면 설계를 기준으로 화면 레 이아웃과 색상, 폰트 등의 UI(User Interface) 설계를 할 수 있다. 개발 기능은 요구사항을 기준으로 DB(Data Base) 설계와 시스템에 대한 설계를 하게 되고, 스토리보드(storyboard)를 기준으로 화면상에 노출되어야 하는 기능요소를 설계 할 수 있다.퍼블리싱(publishing)은 각 화면의 흐름과 페이지에서 이루어지는 모션 기능을 설계한 다. 또한 개발기능의 요소가 디자인요소에 매칭이 되는지 여부도 체크 해야 한다. 실질적인 개발에 대한 구현작업이 진행되는 경우에 디자인과 개발 기능이 다르면, 디자인 또는 기능설계를 다시 진행 해야하는 불상사가 발생할 수 도있다. 요구사항과 스토리보드를 기준으로 한다고 하지만 디자인에서 이해하는 기능과 개발에서 이해하는 기능이 다를 수 있으므로 퍼블리셔가 이러한 사항을 고려하여 적절하게 조율해야 한 다. 디자인 측면에서는 디자인 시안이 확정되어야 하고, 개발 측면에서는 서버 API(Application Programming Interface) 정의서와 DB 스키마가 산출되어야 한다.
개발과정
  • UI 디자인
    • UI 설계에맞추어디자인작업을하게된다. UI 설계는일반웹페이지작업과달리각 페이지에 대한 디자인이 있어야 하며, 앱의 크기에 맞추어 디자인을 해야 한다. 또한 디자인은 픽셀에 맞추어 레이아웃과 색상을 통일시켜서 디자인해야 앱의 진행 흐름이 원활히 진행될 수 있다. UI 디자인은 전체 화면이 일관성을 유지해야 하며, 디자인이 완성되면 각 화면에 대한 디자인 가이드가 작성되어 제시되어야 한다. 디자인된 화면만 보고 퍼블리셔나 개발자가 디자인화면을 구성하기는 다소 무리가 있기 때문이다. UI 디자인할 때 사용될 수 있는 디자인 프로그램으로는 어도비의 포토샵과 일러스트 프로그램이 가장 많이 사용하고 있으며, 퍼블리셔 프로그램으로는 Notepad++, Edit Plus, Aptana, Eclipse 등이 있다.
  • 기능 구현
    • 실제적인 기능을 구현하는 단계이다. 시스템 개발은 앱의 성능과 데이터를 고려하여 개발되어야 하며, 퍼블리싱은 디자인 요소가 앱의 화면에 제대로 노출되어 기능을 올 바르게 수행할 수 있도록 정의를 한다. 구현 기간 동안에는 개발자들의 예제 소스가 제대로 관리될 수 있도록 소스 형상관리 를 해야 한다. 소스 형상관리란, 소프트웨어의 변경사항을 체계적으로 관리하는 것을 의미한다. 소스 형상관리를 위해 사용되는 툴은 CVS(Concurrent Versions System), SVN(Subversion) 또는 GIT가 보통 많이 사용한다. 형상관리 툴을 사용하지 않으면 소스에 대한 버전관리가 되지 않고, 여러 명의 개발자간 소스 공유가 되지 않아 개발이 복잡해질 수 있다. 구현도구에는 iOS용으로는 유일하게 Xcode가 있고, 안드로이드용으 로는 Eclipse, Android Studio 등이 있다.
테스트 과정

테스트는 간단히 단위 테스트와 통합테스트로 나눌 수 있다. 단위 테스트는 각 페이지의 기능이 제대로 구현되었는지 개발 측면에서 테스트하는 것을 의미한다. 이와 반대로 통합 테스트는 초기 기획서를 기반으로 각 기능들이 모두 망라되어야 하며, 각 기능들을 기준 으로 테스트가 일일이 진행되어야 한다. 또한, 추가적으로 프리 테스트는 앱 전체 디자인 과 기능이 제대로 수행되는지 대해 실제 사용자 입장에서 테스트를 진행한다. 프리테스트 일 때 기능 및 디자인에 대한 변경이 빈번히 나올 수 있으며 이러한 변경사항들은 따로 모아 놓았다가 차후의 업데이트 시에 반영되도록 해야 한다. 테스트 과정에서 나타난 변 경에 대한 사항이 바로 반영될 수 있도록 수정해야 한다면 이로 인하여 오픈 시기는 당연 히 그 만큼 늦춰질 수밖에 없다. 앱은 현재 사용되고 있는 단말기에서 모두 최적화되어 서비스가 되어야 하므로 단말기에 대한 테스트는 앱 테스트 센터를 이용하면 편리하다. 앱 테스트 센터별로 서비스 이용방 법이나 보유하고 있는 단말기에 차이가 있으니 미리 알아보고 방문하면 된다.

배포 과정

통합 테스트까지 진행이 되었다면 앱 스토어를 통해 앱을 배포할 수 있다. iOS(아이폰)는 애플의 개발자 사이트에서 배포를 하게 되며, Android는 구글 플레이 스토어 또는 네이버 앱 스토어, 삼성 앱 스토어, 이통사 앱 스토어 등 각 앱 스토어를 통해 배포할 수 있다. 배포된 앱은 불특정 다수의 사용자가 앱을 다운로드 받아 사용하면서 오류사항에 대해 배포되었던 앱스토어를 통해 오류 리포트를 확인 할 수 있다. 배포이후에 앱이 버전업이 되었다면 등록했던 앱 스토어에서 버전업된 앱을 재등록하여 배포할 수 있다.

UI/UX Design

UI/UX 환경 분석

UI/UX 계획 수립

사용자 리서치

UI/UX 요구 분석

UI/UX 콘셉트 기획

UI 아키텍쳐 설계

댓글
댓글쓰기 폼