brunch

You can make anything
by writing

C.S.Lewis

by 갱그리 Aug 29. 2016

3. 플랫폼

보통 기획 단계에서 이 서비스를 앱으로 개발할 지, 아니면 웹으로 할 지에 대해서는 윤곽을 잡아놓는다. 앱과 웹, 둘 다 있으면 물론 좋겠지만 서비스를 시작하는 단계에선 뭐든 하나에 집중해야 한다. 



아이폰과 안드로이드는 개발 언어가 다르다. 그리고 아이폰은 기본적으로 기능들이 많이 제한되어 있고, 앱 심사도 까다로운 편이다. 예컨대 휴대폰 잠금 화면을 활용하고 있는 <캐시슬라이드>나 <오늘하루도>와 같은 앱은 아이폰에 출시될 수 없다. 아이폰의 잠금화면은 안드로이드처럼 활용하지 못하도록 기능을 제한시켜두었기 때문이다. 


네이티브앱


앱에도 여러가지 형태가 있는데 네이티브앱, 웹앱, 하이브리드앱으로 나뉜다. 네이티브앱은 위에 이야기한 것처럼 OS 본연의 기능을 활용하여 만드는 앱이다. 핸드폰 주소록이나 앨범, 잠금화면 기능을 활용하는 것처럼 스마트폰의 기능에 직접 접근해야 한다면 '네이티브앱'으로 개발해야 한다. 네이티브앱의 단점은, 수정 후 바로 반영되는게 아니라 재배포해야된다는 것이다. 스마트폰을 열어 플레이 스토어에 접속해보면, '업데이트를 기다리고 있는 앱' 리스트가 있는 게 바로 그런 역할이다. 네이티브앱으로 구현할 경우에는 개발 언어가 한정되어 있다. 아이폰은 Objective-C 로, 안드로이드는 Java 를 베이스로 해야 한다. 또한, 아이폰과 안드로이드를 각각 별개로 개발해야 한다.


웹앱


웹앱은 기본적으로 모바일웹을 개발하는 형태다. 모바일 기기를 사용하여 특정 사이트에 접속하면 url 앞혹은 뒤에 m 이 붙은 모바일웹으로 안내되는 경우가 있다.(http://m.naver.com) 개발 단에서 현재 사이트에 접속한 사용자가 어떤 기기를 사용했는 지 알 수 있는데 그 정보를 토대로 Url을 바꾸는 것이다. 모바일웹의 장점은 어차피 사용자가 웹에 접속하므로 수정된 사항을 실시간으로 반영할 수 있다는 것이다. 그런데다가 개발 언어의 제약도 없다. php, Ruby, Java 등등.. 개발자 마음대로 쓸 수 있다. 그런데다가 어차피 브라우저를 통해 인터넷으로 접속하는 형태라, 안드로이드든 아이폰이든 하나의 소스로만 개발하면 된다. 단, 웹앱은 휴대폰의 기능이나 데이터에 접근할 수 없고, '앱'의 형태로 설치될 수도 없다.


하이브리드앱


네이트브앱과 웹앱을 섞은 것이 '하이브리드앱'이다. 어려울 건 없다. 일단 웹으로 만들고, 껍데기를 앱으로 씌웠다고 보면 된다. 앱으로 접속했으나 속알맹이는 웹인 상태다. 이렇게 개발하면 기능의 제약도 줄어들고, 양방의 단점도 보완할 수 있다. 그러나 앱+웹의 개발 코드/언어가 혼재되어 있어 유지보수 측면에서 다소 효율성이 떨어진다. (다음에 온 개발자가 최초에 개발된 코드를 이해하기 어려울 수 있다) 많은 앱들이 하이브리드앱으로 개발되는데, 하이브리드앱의 경우 프레임웍을 도입하여 개발하는 편이 효과적이다. 최근에는 ionic 프레임웍이 널리 쓰이는 추세다.



웹 개발을 아주 자의적으로 구분하자면, "맨땅에 헤딩"과 "CMS 기반 개발"로 나눌 수 있다. "맨땅에 헤딩" 방식은 말 그대로 아무것도 없는 백지에서 A-Z까지 모조리 개발하는 것이다. 물론 프레임웍의 도움을 받을 수는 있다. 프레임웍은 개발에 필요한 기본적인 기능들을 지원함으로써 개발 공수를 단축시켜주는 역할을 하지만, 그것은 말 그대로 기본적인 기능일 뿐이다. 이 서비스가 하고자 하는 것들ㅡ 예컨대 캘린더 앱이라고 하면, 달력을 만들어서 보여주고 일정을 등록할 수 있게 하는 기능들ㅡ 은 아무것도 제공되지 않으니, 개발자가 개발해야 한다. 


[맨땅에 헤딩]하는 것의 장점은, 백지 상태부터 시작하니 개발 언어부터 프레임웍 선택, 스타일까지- 구애받는 것 없어 기획과 개발의 자유도가 매우 높다는 데에 있다. 단점은, 알다시피.. 시간이 많이 소요된다.


그럼 이제 [CMS기반 개발]이 뭔지를 봐야할텐데, CMS 의 개념은 건너뛰고 종류부터 기술해보자면 티스토리나 워드프레스, XE(제로보드) 등이 있다. "읭? 블로그 만드는거 아닌가?" 라고 생각할 수 있는데, 일단 그 개념 그대로 이해하면 된다. 개개인들이 컨텐츠를 쉽게 관리할 수 있게 만들어진 플랫폼이 블로그인데, CMS란 블로그를 통틀어 "컨텐츠 관리 시스템"을 구축하는 플랫폼이기 때문이다. "나는 IT서비스를 만들려고 하는데, 왠 CMS..? 블로그??" 라고 생각한다면, 일단 아래 링크에 한번 들어가보자.



여기에서 아무거나 골라 클릭하고,  Live Preview 버튼을 눌러보면 그냥 블로그라고만은 볼 수 없는 사이트들이 등장한다. 여기 있는 것들은 워드프레스를 기반으로 만든 테마들로 유료로 판매된다. 이중에는 워드프레스에서 지원하는 쇼핑몰 기능들(찜하기, 장바구니, 결제, 주문조회 등)을 모두 탑재한 테마들도 존재한다. 혹은 출판사나 저널에 맞게끔 구현되어 있는 테마들도 있다. 여기에서 테마를 잘 골라서 구매하면 개발 품을 크게 들이지 않고도 근사한 웹 사이트를 하나 만들 수 있다.


그러나 여기에도 단점이 있다. 기능을 커스터마이징하여 넣고 싶은 경우가 있을 수 있는데, 아무리 소소한 기능이라하더라도 개발이 복잡해질 수 있다. 다른 기능을 추가하려면, 워드프레스가 기반하고 있는 php 언어 뿐 아니라 워드프레스 자체의 구동 방식에 대해 이해하고 있어야 하기 때문이다. 그래서 적정한 테마를 구입하더라도, 커스터마이징이 필요하다면 해당 CMS 플랫폼을 명확히 이해하고 있는 개발자를 소싱해야 한다. 그리고 사실 테마를 구매한다고 해도, Live Preview처럼 똑같이 셋팅하는게 그리 만만한 작업은 아니다. 맨땅에 헤딩보다야 낫겠지만, 추가해야 하는 기능 규모가 매우 큰 경우엔 그냥 맨땅에 헤딩이 훨씬 나을 수도 있다.

매거진의 이전글 2. DB
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari