Q. 앱 컨버팅? 그냥 알아서 바꿔주실래요?

2014.05.16

|

5502

[위시켓 / 그린 클라이언트 #2]

002.gc_blog


파트너스 said,

클라이언트와 미팅을 하다 보면 매번 의사소통에 실패하는 부분이 앱 컨버팅이예요. 물론 정확히 이해하는 클라이언트도 있지만 무작정 iOS에서도, 안드로이드에서도 작동하게 해주세요! 하는 클라이언트도 허다하지요. 개발 언어 및 플랫폼이 다른데 이런 걸 설명하기엔 서로 알고 있는 배경지식이 너무 차이가 나는거죠. 앱 컨버팅을 그냥 버튼하나 누르면 해결하는 줄 아는 클라이어트에게 어떻게 쉽게 설명할 수 있을까요?


 

 

안녕하세요, 위시켓입니다.

클라이언트와 파트너스가 가진 배경지식의 비대칭은 어쩌면 당연할 수 있습니다. 파트너스만큼 개발 지식을 갖춘 클라이언트라면 커뮤니케이션에 전혀 장애가 없겠지요. 앱 컨버팅, 파트너스가 클라이언트에게 설명하기 까다롭다고 느끼는 그 주제를 오늘 다뤄보도록 하겠습니다. 

앱 컨버팅을 이해하기에 앞서 “컨버팅”에 익숙해져봅시다.
스마트폰에 영화를 다운 받았는데 파일 형식이 안 맞아서 못 보신 경우가 있나요? 그럴 때는 바닥 인코더, 다음 팟인코더 등과 같은 동영상 컨버팅 프로그램을 쓰면 됩니다.

이와 마찬가지로 스마트 폰에서 사용하는 앱도 iOS, 안드로이드 등과 같은 운영체제에 따라 개발 언어가 다르기 때문에 서로 다른 운영체제에서 이용하려면 ‘컨버팅’이 필요합니다. 서로 다른 플랫폼에서 사용할 수 있도록 앱을 변환하는 작업이 바로 “앱 컨버팅”이라 할 수 있겠군요.

 

컨버팅 과정을 더 자세히 알아보기 위해 동영상 컨버팅에 대해 알아 보도록 할게요.
동영상 컨버팅의 과정을 크게 보면 다음과 같습니다.

동영상 → 디먹싱 → 비디오/오디오 코덱/비트 스트림 → 디코딩 → 비디오/오디오 픽셀 데이터

위와 같이 동영상 컨버팅은 동영상의 비디오/오디오 픽셀 데이터로 변환하여 다시 사용자가 원하는 플랫폼으로 컨버팅을 하는 방식입니다.

  • 디코딩 : 영상을 보거나 소리 등을 재생할 때, 코덱이 압축된 데이터를 해석해서 보여주는 것.
  • 디먹싱 : 동영상 파일로부터 비트 스트림 데이터를 추출하는 것.
  • 비트 스트림 : 바이트가 나열된 것.
  • 픽셀 데이터 : 화면을 구성하는 가장 기본이 되는 단위.

 

아직도 잘 모르시겠다구요? 동영상 컨버팅보다 앱 컨버팅 과정은 훨씬 더 복잡합니다.
대표적인 모바일 OS인 안드로이드와 iOS를 예로 들어보겠습니다. 안드로이드 앱의 경우 개발언어가 Java이고, iOS의 경우 Objective-C입니다. 간단히 각 개발 언어를 1대1 대응으로 번역하면 되지 않을까 생각할 수도 있는데, 구글 번역기를 생각해 보시면 왜 앱 컨버팅이 어려운지 이해가 쉽습니다.

구글 번역기로 영어를 한글로 번역하면 이상한 말이 나오는 것과 비슷한 원리입니다. 좀 더 자세히 설명드리면, 하드웨어에 맞는 운영체제와 개발 툴이 다르고, 그 위에 올라가는 미들, 소프트웨어가 다르기 때문입니다. 하지만, 이런 어려움에도 불구하고 최근에 앱 컨버팅에 대한 필요성 때문에 몇 가지 프로그램이 나오고 있는데, 한 번 살펴보겠습니다.

 


  • 구글의 “J2ObjC”

구글은 안드로이드의 영역 확장을 위해 J2ObjC라는 툴을 내놓았습니다. 이 툴은 자바용 코드를 Objective C코드로 변환시켜주는 툴입니다. 이 툴은 단순한 자바 에뮬레이터가 아니라, 자바 클래스를 iOS 기반 프레임워크에서 바로 이용할 수 있는 Objective – C 클래스로 바꿔준다고 합니다. 하지만, 이 툴에도 한계가 있습니다. 예외처리 코드, 제네릭 타입, 리플렉션, 자바 형식 메모리 관리 기능까지 Objective – C로 구현해 개발자의 불편을 어느 정도까지는 해소할 수 있지만, J2ObjC는 주로 백엔드 부분을 다루기 때문에 프론트 엔드 쪽의 부분은 해결하지 못했습니다. 앞으로는 프론트 엔드 부분을 웹 기반으로 변환되는 방향성을 제시하기는 했지만, Java 와 Objective – C의 구조적 차이로 어플리케이션의 완벽한 컨버팅은 앞으로도 쉽지 않을 거라 예상됩니다.

예외처리 코드 : 시스템을 실행하는 중에 오류가 발생했을 때 멈추지 않고 적절한 조치 후에 계속 실행하게 만드는 문법.

 

  • 인텔 타이젠 OS의 “PAG”

구글과 마찬가지로 타이젠 OS도 시장 확장을 위해 관련 기업들이 앱 컨버팅 기술을 연구하고 있습니다. 타이젠 OS앱은 C++와 HTML5로 개발이 되는데, 인텔에서 iOS를 HTML5로 컨버팅하는 툴을 개발하여 제공하고 있고, 안드로이드 또한 HTML5컨버팅 툴을 제공할 것으로 보입니다. 또한, 지난 2013년 말, 인프라웨어테크놀러지에서 안드로이드 앱을 타이젠 앱으로 변환해 주는 PAG(폴라리스 앱제네레이터)를 공개했습니다. 하지만, 서로 다른 OS간의 완벽한 앱 컨버팅은 아직 많이 힘들 것으로 보이네요.


 

 
동영상 컨버팅과는 달리 앱 컨버팅은 개발자의 많은 노력을 필요로 합니다. 위와 같이 구글, 인텔과 같은 기업에서도 앱 컨버팅의 자동화를 위해 많이 노력하고 있지만, 완벽한 컨버팅은 아직까지 큰 과제로 남아 있습니다. 이런 문제로, 완벽한 앱 컨버팅을 위해서는 개발자가 각기 다른 개발언어에 대한 이해도가 높거나, 각기 다른 언어를 잘 쓰는 2명 이상의 개발자가 필요합니다.
다시 처음으로 돌아가서 얘기해볼게요.
각종 드라마, 예능, 미드를 스마트폰에서 혹은 태블릿에서 자유롭게 볼 수 있도록 도와준 것은 인코딩 프로그램이었습니다. 인코딩하는데 시간은 많이 걸릴지언정 인코딩 자체에 많은 어려움이 있지는 않으니까요. 하지만 앱을 컨버팅한다? 이야기가 달라집니다.


클라이언트 여러분! 잘 만들어진 안드로이드 기반 어플을 iOS 버전으로 만든다고 할 때, 필요한 것은 단 하나. 안드로이드 개발과 iOS 개발을 모두 완벽하게 잘하는 유능한 개발자를 만나는 것이 아닐까요?

 

 

그린 클라이언트 그 두 번째 이야기는 “좋은 기획서는 어떻게 작성하나요?” 입니다.

150120_wishket_blog_under

앱 개발 비용 궁금하세요?
위시켓이 바로 알려드릴게요!

J2ObjCpagwishketwishket.com개발 기초 상식개발 상식개발 외주그린클라이언트동영상컨버팅아웃소싱앱 개발 의뢰앱 종류앱컨버팅어플 제작 의뢰외주 업체외주 제작위시켓컨버팅클라이언트파트너스
다음 글

위시켓 블로그의 새로운 소식 받기