검수요청.png검수요청.png

크로스 플랫폼

위키원
Asadal (토론 | 기여)님의 2021년 7월 24일 (토) 22:07 판 (같이 보기)
이동: 둘러보기, 검색

크로스 플랫폼(cross platform)은 응용 소프트웨어하드웨어를 여러 운영 체제에서 공통적으로 사용하는 것, 또는 공통적으로 이용 가능한 운영 체제나 컴퓨터 본체의 개발 환경이다.[1]

개요

크로스 플랫폼은 소프트웨어하드웨어 등이 다른 환경의 OS에서 공통으로 사용되는 것으로, 예를 들면 1개 기종의 하드웨어가 워크스테이션 또는 PC에서 사용되거나, 유닉스 시스템이나 윈도우, 맥 OS 등의 복수 환경에서 사용되는 것을 말한다. 소프트웨어의 크로스 플랫폼의 대표적인 예로는 자바로 작성한 프로그램이 있는데, 1회 작성한 프로그램은 "바이트 코드"라는 중간 코드를 생성하고, 이 코드의 형식에 컴파일되어 다른 복수의 환경에서도 동작이 가능하게 된다.[2] 또 다른 예시로, C 언어는 소스 코드를 실행하기 위해서 운영체제마다 별도의 컴파일러로 컴파일을 해야 한다. 따라서 서로 다른 3대의 운영체제에서 C로 짜여진 코드를 수행하고 싶다면 3번의 컴파일을 별도로 해주어야 한다. 반면 자바의 경우 자바 가상머신(JVM)이라는 중개자를 두어 플랫폼 호환성을 높인다. 이 외에도 게임 개발에 사용되는 유니티, 언리얼 엔진, 게임 메이커 스튜디오 등이 크로스 플랫폼을 활용하여 다양한 플랫폼에서 제약 없이 사용할 수 있는 대표적인 예시이다. 플러터(Flutter)에서는 플러터 SDK를 자바 가상머신처럼 사용하여 크로스 플랫폼을 구현하고 있으며, 이처럼 다양한 플랫폼 지원을 위한 노력은 플러터 뿐만 아니라 모든 개발 분야에서 이루어지고 있다.[3]

장단점

유지 보수와 관리 비용 감소가 크로스 플랫폼을 사용하는 가장 큰 이유이다. 모바일 애플리케이션 서비스를 운영한다고 하면 우리는 안드로이드, iOS 두 플랫폼에 대한 개발 인력이 모두 필요하다. 코드 베이스가 달라 서로 다른 플랫폼을 동시에 소화할 수 있는 개발자는 드물며, 회사 입장에서는 인력을 채용하는 데 많은 비용이 소모된다. 그뿐만 아니라 서비스의 특정 UI에 대해서 의견 충돌이 발생할 수도 있다. 두 플랫폼의 철학이 달라 UI를 구성하는 방식까지 다르기 때문이다. 이러한 문제점들을 해소할 수 있는 키가 바로 크로스 플랫폼이다. 단일 코드로 작업하기 때문에 개발 인력을 절반으로 줄일 수 있고, 개발 초기 단계뿐만 아니라, 유지 보수를 하는 과정에서도 두 플랫폼에 대해 동일한 팀 인력으로 대응하기에 속도가 빠르며, 산출물이 동일하다. 이는 개발 비용을 줄이는 것으로 이어진다. 또한 서로 다른 플랫폼 간의 게임을 서로 즐길 수 있다는 것이다. 서로 다른 기종을 가지고 있는 친구들끼리도 인터넷 상에서 만나 게임을 즐길 수 있다. 다음으로는 유저 수의 확충이다. 특히 PC의 경우 통계로 보면 전 세계적으로 콘솔의 1/10 정도의 게임 유저를 가지고 있다. 크로스 플랫폼을 즐긴다면 좀 더 많은 유저와 오래 즐길 수 있는 발판을 마련할 수 있는 것이다. 그러나 아쉽게도 장점만 있는 것은 아니다. 특히 콘솔 유저들은 이 부분에 있어서 불만을 가지고 있는 유저들이 종종 있다. 이미 유저 수가 확충되어 있기 때문에 PC 유저들의 핵이나 치트 유저와 같은 비인간적인 행위를 상당히 싫어한다. 또 한 가지는 바로 PC 유저의 키보드 마우스 또는 키마 유저와 콘솔의 패드 유저의 실력 차이다. 아마 키마 유저들이 조금 유리하다고 하는데 FPS 같은 경우 실제로는 그렇게 실력이 크지는 않다고 한다.[3][4]

장점 및 대응 전략

iOS가 기존 맥 OS와 기술 플랫폼 관점에서 가장 큰 변화가 바로 플래시(Flash)와 자바에 대한 대응이다. 애플(Apple)은 '맥 OS에서는 플래시와 자바를 지금까지도 잘 지원하는데 왜 iOS에서는 금지시켰을까'라는 질문이다. 여기서 우리는 자바나 플래시 같은 크로스 플랫폼에 대한 장단점을 애플 입장에서 분석할 필요가 있다. 우선 소비자 입장에서 크로스 플랫폼이 주는 장점은 개인이 사용하고 있는 하드웨어나 소프트웨어 플랫폼에 상관없이 어떤 애플리케이션을 동작한다는 점이다. 예를 들어 자바로 만들어진 애플리케이션은 윈도 PC나 맥이나 하드웨어와 소프트웨어 플랫폼에 상관없이 동작한다. 만약 대부분의 애플리케이션이 자바로 개발되어 있다면 소비자는 다양한 애플리케이션을 자신이 구매한 PC 기종과 상관없이 사용할 수 있으므로 선택의 폭이 넓어지게 된다. 또한 반대로 생태계 관점에서 이는 '3rd 파티'에게도 장점이 있는데 바로 한번 개발한 애플리케이션을 소비자의 PC 기종과 무관하게 공급할 수 있다는 점이다. 예를 들어 다음(Daum)이 개발한 메신저인 “마이 피플(My people)”의 PC 버전의 경우는 크로스 플랫폼인 플래시 에어(Flash AIR)로 개발되었기 때문에 윈도 PC, 맥, 리눅스에 모두 사용이 가능하다. 한 번의 개발로 3가지 운영체제를 사용하는 모든 소비자에게 제공이 가능한 것이다. 분명 소비자와 3rd Party 입장에서 크로스 플랫폼은 장점이 많은 접근이다. 하지만 이러한 장점은 하드웨어 제품을 판매하는 제조사나 MS 같은 소프트웨어 플랫폼을 제공하는 회사 입장에서는 반갑지 않은 소식이 된다. 왜냐하면 만약 이러한 크로스 플랫폼이 점차 확산되어 대부분의 애플리케이션이 하드웨어나 운영체제에 상관없이 동작한다면 이것은 그것들의 차별화가 점차 사라진다는 의미가 된다. 차별화가 없어진다면 결국 남은 것은 가격 경쟁일 뿐이다. 사실 웹 브라우저가 단순히 문서를 교환하기 위한 앱이 아니라 또 다른 기술 플랫폼으로 사용되면서 많은 서비스나 콘텐츠가 웹 플랫폼을 통해서 제공되기 시작했다. 따라서 점차 윈도우나 맥 오에스텐(OS X) 같은 운영체제의 중요성은 줄어들고, 웹브라우저 자체가 운영체제 자리까지 넘보겠다고 하는 것이 바로 구글의 크롬 OS이다. 특히 애플같이 독자적인 운영체제와 하드웨어를 통합해서 판매하는 회사 입장에서 크로스 플랫폼은 그들의 차별성을 가려버리는 위장막과도 같다.[5]

PC 시장에서 맥은 시장 점유율이 낮기 때문에 보다 다양한 개발자를 흡수하기 위해서는 어쩔 수 없이 자바를 지원했다고 볼 수 있지만 아이폰에서는 이러한 불편함을 공개적으로 드러낸 것이다. iOS는 애플이 처음부터 거의 완벽한 통제를 전제로 설계되었기 때문에 그들의 의사와 상관없이 자바나 플래시 같은 3rd 파티의 크로스 플랫폼의 사용을 금지하는 조항이 개발자 약관 문서에 들어있다. 표면적으로 애플이 플래시를 공개적으로 반대하는 이유는 모두 소비자 지향적인 내용 들이다. 그것들은 플래시가 개방된 기술이 아니며 HTML5 같은 보다 개방적인 대안 기술이 있고 성능 상에도 문제가 있으며 아이폰 같은 기기에서 배터리를 많이 소모하고 터치 인터페이스를 제대로 지원할 수 없다는 점으로 모두 소비자나 개발자 관점에서의 지적이다. 하지만 여기서 마지막으로 지적한 문제점이 바로 애플의 입장이다. 즉 플래시 같은 크로스 플랫폼은 애플이 만드는 iOS 같은 플랫폼의 장점을 숨겨버리기 때문에 결국 그들의 차별성을 없애는 결과임을 말하고 있다. 결국 iOS는 커다란 전략적 선택과 포기의 결과이다. 핵심인 iOS 자체를 자신들만의 독점적인 플랫폼으로 제공하면서 차별화를 꾀하면서 동시에 웹 브라우저로 보다 개방적인 크로스 플랫폼을 제공하는 것이다. 하지만 웹 플랫폼 이외의 크로스 플랫폼은 모두 제거함으로써 소비자에게도 단순함이라는 가치를 만들어주었고 또한 개발자에게도 두 가지 플랫폼으로 집중하도록 기술적 비전을 제시한 것이다. 물론 이러한 애플의 선택이 그들 내부만의 결정으로 이루어진 일이기 때문에 독선적이라고 할 수는 있지만 반대로 이러한 선택과 집중은 분명 아이폰을 보다 쉽고 단순하게 만드는 데에 일조했다는 것은 부인할 수 없는 사실이다. 결국 이러한 애플의 선택은 다른 플랫폼 제공사에게 유사한 전략을 채택하도록 하게 만든다. MS가 윈도 8에서 그들의 독점 기술인 닷넷(.NET)이나 실버 라이트(Silverlight) 보다 웹 플랫폼을 강조하는 이유도 그것이고, 바다 OS가 웹 플랫폼이란 크로스 플랫폼에 의존할 수밖에 없는 상황이 그것이고, 블랙베리 OS가 웹 플랫폼을 열심히 지원했던 이유 또한 그것이다. 따라서 어떤 기술 플랫폼에서 자신 이외의 크로스 플랫폼에 대한 사전 탑재와 기술 협력 등은 매우 조심스럽게 판단할 전략적 선택이다.[5]

지원 소프트웨어

  • 자바: 자바는 크로스 플랫폼을 지원하는 언어이다. 그것은 자바 프로그램이 컴퓨터 안에서 바로 실행되지 않고, 자바 가상머신이라는 가상의 공간에서 실행되기 때문에 가능한 일이다. 자바 컴파일러는 소스 코드를 컴파일해서 "바이트 코드(Byte Code)"를 생성한다. 그리고 사람들은 그 바이트 코드를 자신의 운영체제에 맞게 설치된 자바 가상머신 위에서 실행시키기만 하면 된다. 이렇게 되면 자바 소스 코드를 한 번만 컴파일 해도 되기 때문에 C언어 컴파일 방식 보다 유지 보수 면에서, 그리고 다양한 운영체제를 지원하는 데 있어서 훨씬 편리하게 된다.[6]
  • 오페라: 오페라(Opera))는 노르웨이의 오페라 소프트웨어사가 개발한 인터넷 웹 브라우저의 하나로서, 넷스케이프나 인터넷 익스플로러에 비해 크기가 작지만 속도는 빠른 웹 브라우저이다. 윈도와 매킨토시·리눅스 등 다양한 운영체제에서 활용이 가능하다. 디렉터리북마크 파일을 동시에 제공하며, 메뉴를 타일 형태나 계단식으로 겹쳐 보여주므로 여러 개의 웹사이트를 한 화면에서 보는 데 유용하다. 노르웨이의 오페라 소프트웨어사가 1996년 개발하였다. 이전에 방문했던 사이트를 복원하도록 설정할 수 있고, 마우스와 키보드를 써서 줌과 단축키 등 다양한 기능들을 사용할 수 있다. 다른 html 헤더 및 텍스트를 위해 원하는 글꼴 및 색상을 선택할 수 있으며, 링크 표시를 완전히 제어할 수 있다. 또한 클릭과 로딩 완료, 로딩 실패 등을 소리로 알려줄 수도 있다. 리얼 오디오나 쇼크웨이브 등과 같은 플러그인도 적용될 수 있으며, 자바 애플릿 지원도 가능하다. 2003년 현재 버전7이 나와 있다.[7]
  • 파이어 폭스: 파이어 폭스(Firefox)는 비영리 재단 법인인 모질라 재단의 데이브 하이엇(Dave Hyatt), 조 휴잇(Joe Hewitt), 블레이크 에런 로스 주도로 개발된 게코(Gecko) 엔진 기반 오픈 소스 웹 브라우저이다. 초기 명칭은 '피닉스'(Phoenix)였다. 0.6, 0.6.1, 0.7, 0.7.1 버전에서는 '파이어 버드'(Firebird)라 불렸다가 0.8 버전부터 파이어 폭스로 변경되었다. 이후 '모질라'에서 파이어 폭스를 웹 브라우저에만 한정되는 명칭이 아닌 파이어 폭스 모니터, 파이어 폭스 VPN 등 모질라의 인터넷 서비스 제품을 통트는 브랜드명으로 사용하며 기존 파이어 폭스의 공식 명칭이 파이어 폭스 브라우저가 되었다. 약칭은 FF이며, 한국에서는 '불여우'라는 별명이 있다. 현재는 안정적인 점유율을 보이며, 크롬, 마이크로소프트 에지, 오페라, 사파리와 함께 유명한 5대 브라우저 중 하나이다. 여전히 웹 표준과 브라우저에서 기여하고 있다. 5대 웹 브라우저의 운영체제 지원 기간 중에서 독보적으로 구버전 윈도우에 대한 지원 기간이 매우 긴 편이다. 윈도우 XP용 파이어 폭스는 2018년까지 보안 업데이트를 지원했고, 2021년 4월 기준 아직까지도 윈도우 7 지원 종료 공지가 나오지 않고 있다.[8]
  • 도스박스, 오픈오피스, 어도비 플래시, 실버라이트, KOffice, 루비, 엠비즈메이커, 스마트메이커 등[9]

개발 도구

강력한 네이티브 앱을 개발하려면 올바른 앱 개발 도구를 선택하는 것이 매우 중요하다. 시작하려면 크로스 플랫폼 앱 개발에 사용할 수 있는 많은 상위 옵션이 있다. 기업이 모바일 앱 또는 맞춤형 모바일 애플리케이션 개발에 대해 생각할 때마다 본질적으로 혁신적인 크로스 플랫폼 앱 개발에 집중한다. 다양한 중소기업과 신생 기업은 안드로이드, 윈도우iOS와 같은 다양한 플랫폼에서 동시에 앱을 개발하기 위해 크로스 플랫폼을 매우 우수한 기술 유형으로 여긴다. 기본적으로, 기술 업그레이드는 실제로 시장을 놓고 경쟁하기 위해 개발자의 요구를 높였으며, 전문 크로스 플랫폼 애플리케이션 개발자의 해외에서 진정한 필요성으로 판명되는 풍부한 기능과 고성능 앱에 대한 요구를 높였다. 전체 앱 개발 시장에서 크로스 플랫폼에서 애플리케이션 개발이 갑자기 급증했다. 또한 최근에 전체 구글 플레이 스토어의 애플리케이션 수가 실제로 약 3백만 개에 달했을 때 기업은 스토어나 다른 플랫폼에서 실제 존재를 놓칠 위험을 감수하고 싶지 않아 하며, 예산은 항상 다양한 네이티브 앱을 개발하는 기업에게 상당한 문제가 되므로 다양한 대체 크로스 플랫폼이 실제로 개발된다.[10]

자마린

자마린(Xamarin)은 무료 스타터 옵션을 제공하는 효율적인 모바일 개발 도구이다. 마이크로소프트 소속의 소프트웨어 회사, 자마린은 2011년 C#을 기반으로 한 크로스 플랫폼 개발 도구인 자마린을 만들었다. 자마린은 2012년 '자마린 맥(Xamarin.Mac)'을 출시하고, 그 뒤로도 다양한 플랫폼으로 포팅 할 수 있는 SDK(Software Development Kit)를 만들었다. 공유된 C# 코드 베이스를 사용하여 모바일 개발자는 자마린을 효과적으로 사용하여 여러 플랫폼 용 기본 응용 프로그램을 만들 수 있다. 일반적인 신념과는 달리 자바, 스위프트 또는 Objective-C로 수행할 수 있는 모든 작업은 C#에서 자마린으로 효율적으로 복제할 수 있다. 개발자는 어디서나 동일한 API, 언어 및 IDE를 적용 할 수 있다. 그리고 지금 자마린은 IOS, OSX, 안드로이드, 윈도우 등의 플랫폼으로 포팅 가능한 크로스 플랫폼 개발 도구가 되었다. 자마린은 2016년에 자신들이 개발한 SDK오픈 소스(Open Source)로 풀어버리면서 더 많은 사람들이 활발하게 자마린을 사용하고 있다. 로스 플랫폼 모바일 개발 앱은 모든 것이 제대로 작동하고 효율적으로 표시되도록 하기 위해 1,000 대의 모바일 장치에서 가상의 테스트 아들을 수행할 수 있는 기능을 갖추고 있다. 흥미롭게도 앱 스토어 전달 기능이 포함되어 있다. 자마린 공식 사이트는 https://www.xamarin.com/ 이다.[6][11]

리액트 네이티브

리액트 네이티브(React Native)는 페이스북에 의해 만들어진 '자바 스크립트 라이브러리'이다. 리액트. js는 웹 프런트 엔드 프레임 워크이고, 리액트 네이티브는 자마린과 비슷한 기능을 수행하는 크로스 플랫폼 개발 도구이다. 리액트 네이티브는 자마린보다는 조금 늦은 2015년에 발표되었다. 리액트 네이티브는 자바스크립트를 기반으로 해서 안드로이드, IOS, UWP(Universal Windows Platform)의 프로그램들을 개발할 수 있다. 이것의 가장 중요한 측면은 C, Java 및 Swift와 같은 다른 언어로 모듈을 쉽게 작성할 수 있다는 것이다. 이 특정 도구의 가장 좋은 점은 다른 API 프레임 워크에서는 실제로 불가능한 비디오 처리 및 이미지 편집 작업을 쉽게 수행할 수 있다는 것이다. 소스 코드를 해석한 다음 더 짧은 시간에 실제 네이티브 요소로 변환하므로 크로스 플랫폼 앱 개발에 활용하는 것이 의심할 여지없이 가장 유익하고 최고의 플랫폼이다. 인스타그램과 페이스북은 모두 세계에서 가장 많이 사용되는 네이티브 앱을 만들기 위해 리액트 네이티브를 활용했다. 따라서 리액트 네이티브 앱 개발 회사는 리액트 네이티브의 인기를 활용해야 한다. 리액트 네이티브 공식 사이트는 http://facebook.github.io/react-native/ 이다.[6][10]

이온

이온(ion)은 일반적으로 자바 스크립트, HTML 및 CSS와 같은 고급 기술을 사용하여 네이티브 느낌으로 모바일 앱을 쉽게 개발할 수 있는 가장 강력한 HTML5 SDK 중 하나이다. 이 특정 SDK는 실제로 앱의 모양과 UI 상호 작용에 중점을 둔다. 이 프레임 워크의 앱 개발은 네이티브 iOS, 안드로이드 데스크톱과 같은 다양한 플랫폼과 실제 단일 코드 기반의 웹에서 활용될 수 있다. 또한 이 인기 있는 크로스 플랫폼은 타이포 그래피, 사전 디자인된 구성 요소, 대화형 패러다임 및 인상적인 테마를 제공한다. 사용하고 이해하기 쉬울 뿐만 아니라 가상 DOM, 타입 스크립트(TypeScript), JSC 및 비동기와 같은 API를 활용하며, 하이브리드 앱 개발 서비스를 위한 선택에 따라 실제로 PWA 또는 점진적 웹 앱에 가장 적합하다.[10]

플러터

플러터(Flutter) 개발자가 하나의 단일 코드 베이스에서 웹, 안드로이드, iOS 및 데스크톱과 같은 다양한 플랫폼에서 고성능 앱을 빌드 할 수 있는 SDK 또는 소프트웨어 개발 키트이다. 또한 이 특정 오픈 소스 UI SDK는 구글에서 정식으로 제작했다. 다트(Dart) 프로그래밍 언어를 사용하며 자바 및 자바 스크립트 개발자가 이해하기가 훨씬 쉽다. 대부분의 객체 지향 아이디어나 개념에도 도움이 된다. 안드로이드 및 iOS 플랫폼 모두를 위한 맞춤형 애플리케이션을 개발하려는 경우 최고의 크로스 플랫폼이다. 구글 Ads, 알리바바(Alibaba) 등과 같은 인기 앱 개발에 활용된다. 이 앱의 가장 좋은 점은 위젯을 실제로 지원한다는 것이다. 앱의 모양을 개선하는 데 도움이 된다. 위젯은 네이티브와 같은 완전한 성능을 제공하기 위해 탐색, 스크롤, 아이콘, 글꼴 등과 같은 다양한 유형의 기능을 제공한다.[10]

가속기

가속기는 전체 프로세스를 단순화하여 훨씬 빠른 방법으로 전체 앱을 준비하는 데 도움이 되는 크로스 플랫폼 앱 개발 플랫폼이다. 또한 단일 자바 스크립트 코드를 활용하여 클라우드와 같은 기능과 성능을 갖춘 모바일 앱은 물론 네이티브와 같은 앱을 쉽게 만들 수 있다. 이 플랫폼의 주요하고 중요한 이점 중 하나는 고유 한 품질이다. 다양한 기기 또는 운영 체제 용 앱 개발에 쉽게 활용할 수 있다. 또한 이 도구를 사용하면 자동화된 모바일 테스트를 사용하여 앱을 테스트하고 사용하기가 훨씬 쉬워져 앱 프로젝트의 결과와 함께 앱 사용량을 쉽게 측정할 수 있다. 앱의 실제 성능을 개선하기 위해 충돌, 버그를 감지하고 몇 가지 조정을 할 수도 있다. 이 도구를 사용하면 다중 플랫폼 앱 개발과 관련하여 최고의 크로스 플랫폼 API 중 하나인 [[하이퍼 루프](Hyperloop)에 액세스할 수 있다.[10]

코로나

코로나(Corona)이 크로스 플랫폼 도구는 단 하나의 코드 베이스를 사용하여 데스크톱, 모바일 장치 및 TV 장치 용 게임 및 응용 프로그램을 개발하는 모든 모바일 응용 프로그램 개발 회사에 가장 적합하다. SDK의 사용 용이성으로 인해 코로나는 최고의 개발자가 선호하는 제품이 되었다. 다운로드 후에는 코딩을 시작하는 것보다 관찰할 다른 프로토콜이 없다. 처음부터 게임을 만드는 대신이 크로스 플랫폼 모바일 개발 도구를 사용하여 10배 빠른 게임을 만들 수 있다. 전체 코딩 프로세스의 속도를 높이고 코드를 쉽게 업데이트하고 모든 변경 사항을 저장하며 실제 장치에서 결과를 즉시 볼 수도 있다. 이를 통해 모든 수준에서 애플리케이션 성능을 향상시키는 혁신적인 루아(Lua)의 경량 스크립팅 기능으로 인해 앱이 성능에 맞게 최적화된다. 2D 게임에서 기본적으로 주로 사용되는 크로스 플랫폼 애플리케이션 개발 도구는 고속 개발 및 게임의 고품질 그래픽에 사용하기에 적합하므로 자유롭게 활용할 수 있다. 폰갭을 제안하는 주된 이유 중 하나는 사용 경험이 없어도 도구 사용법을 쉽게 배울 수 있기 때문이다. 폰갭은 기본적으로 클라우드의 모든 작업을 컴파일하여 전체 개발 프로세스를 처리하므로 실제로 네이티브 SDK를 유지 관리할 필요가 없다.[10][11]

어도비 폰갭

어도비 폰갭(adobe phonegap)은 어도비가 소유한 이 도구는 올해 활용할 수 있는 최고의 크로스 플랫폼 앱 개발 도구 중 하나이다. 이 크로스 플랫폼 개발 도구는 처음 사용자가 자바 스크립트, CSS 및 HTML5에서 코드를 변환하는 데 사용할 수 있는 사용자 친화적인 도구이다. 개발자는 자신의 목적을 위해 각 플랫폼에 대한 SDK를 개발하려고 하기 때문에 앱을 개발 중인 다양한 플랫폼의 소프트웨어 개발 키트에 대해 걱정할 필요가 없다. 기존의 웹 기술을 활용하면서 이 오픈 소스 프레임 워크는 분명히 크로스 플랫폼 모바일 애플리케이션을 제작하고자 하는 인도 개발자에게 효율적인 옵션이다. 기기의 기본 기능을 거의 사용하지 않는 모바일 앱에 가장 적합하다. 실제로 아파치 코도바(Apache Cordova)로 알려진 오픈 소스 프레임 워크를 기반으로 하며, 전체 앱 개발 프로세스를 간소화하고 옵션을 포함하는 데 도움이 되는 광범위한 폰갭 도구 세트에 대한 완전한 액세스를 제공한다. 폰갭을 제안하는 주된 이유 중 하나는 사용 경험이 없어도 도구 사용법을 쉽게 배울 수 있기 때문이다. 폰갭은 기본적으로 클라우드의 모든 작업을 컴파일하여 전체 개발 프로세스를 처리하므로 실제로 네이티브 SDK를 유지 관리할 필요가 없다.[10][11]

앱셀러레이터

앱셀러레이터(Appcelerator)의 SDK는 모든 앱에 대해 동일한 코드의 60 ~ 90%를 재사용하면서 자바 스크립트를 사용하여 안드로이드 및 iOS 앱을 생성하여 상당한 시간과 노력을 절약한다. 즉, 앱셀러레이터는 기본 자바 스크립트 코드 기반을 배포하여 기본 앱을 구축한다. 앱셀러레이터는 다른 종류의 솔루션과 달리 웹 컨테이너에 래핑 되지 않고 코드가 네이티브 애플리케이션에 웹 컨텐트를 제공하지 않도록 한다. 오픈 소스 도구로서 많은 개발자들은 프레임 워크의 효율성을 높이고 더 많은 기능을 지원하기 위해 지속적으로 기여하고 있다. UI와의 사용자 상호 작용을 평가하려는 경우 적은 시간과 노력으로 프로토 타입을 작성할 수 있다.[11]

코니

코니(Kony) 모바일 플랫폼은 API 연결, 앱 미리 보기 기능에서 자동 코딩 기능에 이르기까지 다양한 흥미로운 기능을 제공한다. 이것은 범용 모바일 응용 프로그램을 만드는 데 일반적으로 사용되는 통합된 크로스 플랫폼 모바일 응용 프로그램 개발 플랫폼이다. 이 이동성 플랫폼은 다양한 사전 제작된 응용 프로그램에 매우 유용하기 때문에 개발자에게 훌륭한 출발점이다. 코니의 강력한 다중 채널 자바 스크립트 API는 일반적인 프론트 엔드로 시각화 기능을 제공한다. 백엔드 시스템을 지원하기 위한 노력의 일환으로 코니는 다양한 모바일 인프라 관리 서비스를 제공한다.[11]

Qt

Qt는 모바일 애플리케이션 개발과 관련하여 최고의 크로스 플랫폼 도구 중 하나이다. 품질 기능을 통해 iOS, 안드로이드윈도우에 대해 동일한 특정 코드를 사용하여 유동적, 응용 프로그램, UI 및 임베디드 장치를 만들 수 있다는 사실 때문에 가장 좋다. 앱이 실제로 제대로 작동하지 않고 다시 작업하려는 경우, 도구를 사용하여 앱을 변경하면 앱에 적용된 모든 변경 사항이 자동으로 적용된다. 이 도구를 사용하면 응용 프로그램이 다양한 플랫폼에서 실제로 어떻게 작동하는지 볼 수도 있다. 사용하기 매우 쉽고 다른 크로스 플랫폼 모바일 앱 개발 도구처럼 복잡한 인터페이스도 없다. 안드로이드 앱 개발 서비스는 이 도구의 이점을 활용해야 한다.[10]

센차

센차(Sencha)는 모든 플랫폼에서 애플리케이션의 종단 간 테스트를 수행하기 위한 가장 포괄적인 도구 중 하나이다. 이와 함께 Ext 앵귤러(Angular), Ext JS, iOS 및 Ext 리액트에 구축된 테마를 사용자 지정하여 재사용 가능한 테마를 만들기 위해 혁신적인 "테마"를 제공한다. 크로스 플랫폼 도구를 사용하면 모든 유형의 장치에서 쉽게 웹 앱을 개발할 수 있도록 지원하는 최신 자바 스크립트 및 자바 프레임 워크가 제공된다. 앱에 쉽게 통합할 수 있는 100개가 넘는 완벽하게 지원되는 테스트 UI 구성 요소를 제공하며, 개발자가 앱 형성을 쉽게 추적할 수 있도록 데이터 시각화 테이블을 제공한다. 또한 이 도구를 사용하면 앱 콘텐츠를 쉽게 구성할 수 있을 뿐만 아니라 전체 콘텐츠가 장치, 브라우저 및 화면 크기에 올바르게 표시되는 방식을 쉽게 구성할 수 있다.[10] 이 혁신적인 크로스 플랫폼 모바일 애플리케이션 프레임 워크는 불가지론적인 백엔드 데이터 패키지로 패키징 할 수 있기 때문에 데이터 소스에서도 작동할 수 있다. 흥미롭게도 이미 잘 분석된 일부 밀접하게 통합된 UI 구성 요소 및 라이브러리를 사용하여 최고 품질의 앱을 제작할 수 있다. 센차는 대기업 응용 프로그램의 개발 능력을 향상시키는 것 외에도 이러한 응용 프로그램을 쉽게 유지 관리할 수 ​​있다. 윈도우폰, 블랙베리, iOS안드로이드를 포함한 다양한 모바일 플랫폼을 지원한다. 모든 주요 플랫폼에 대해 센차는 종종 기본 내장 테마를 제공하려고 한다.[11]

유니티 3D

유니티 3D(Unity 3D)는 모바일 게임 앱 제작을 전문으로 하는 개발자에게 적합한 효율적인 크로스 플랫폼 프레임 워크이다. 이 게임 엔진은 믿을 수 없는 그래픽을 사용하여 고품질의 게임용 앱을 만들 수 있기 때문에 모바일 게임 개발에 적극 권장된다. 개발자는 코드가 Boo, C # 또는 유니티 스크립트로 개발된 후 자신의 게임을 17개의 다른 플랫폼으로 쉽게 내보낼 수 있다. 이러한 플랫폼에는 리눅스, 위, X 박스, 플레이 스테이션, 웹, 윈도우, 안드로이드 및 iOS가 포함된다. 유니티는 완성된 응용 프로그램을 적절한 상점에 ​​배포하는 데 사용할 수도 있다. 의심의 여지없이, 이 크로스 플랫폼 앱 개발 도구는 단순한 번역 그 이상을 수행한다. 이 특정 크로스 플랫폼 앱 개발 도구는 절대적으로 매력적이고 놀라운 인상적인 그래픽 품질로 인해 매우 인기가 있다. 확실히 사용하기 쉬우며 단순한 모바일 앱 이상의 용도로 활용할 수 있다. 이 특정 도구의 도움으로 앱이나 게임을 안드로이드, 윈도우, iOS, 엑스박스, 리눅스, 플레이 스테이션, Wii(Web)을 포함한 다른 플랫폼으로 쉽게 내보낼 수 있다. 또한 다양한 사용자 분석을 추적하고 다양한 소셜 네트워크에서 앱을 공유하는 데 사용할 수도 있다. 유니티 커넥트로 알려진 개발자 네트워크에 쉽게 연결하여 도움을 찾고 코딩 또는 기타 기술 문제가 있는 경우 질문에 대한 답변을 얻을 수 있다.[10][11]

코드 네임 원

코드 네임 원(Code name one)은 교차 장치 플랫폼의 목표는 개발자가 상대 속도, 신속한 응용 프로그램 개발 및 간단한 사용성으로 원시 플랫폼과의 심오한 통합을 제공한다. 코드 네임 원은 자바로 코딩 된 응용 프로그램을 테스트하고 검증하는 데 사용할 수 있는 테스트 자동화 도구 및 시뮬레이터 장치를 제공한다. 코드 네임 원은 공식 iOS 툴 체인인 ParparVM을 사용하여 향후 iOS 버전과의 호환성을 보장한다. 윈도우 PC 없이도 기본 윈도우 응용 프로그램을 만들 수 있으며 맥 컴퓨터 없이 기본 제공 서버를 사용하여 기본 iOS 응용 프로그램을 개발할 수 있다.[11]

컨버티고

컨버티고(Convertigo)은 오픈 소스 풀스택 Low Code & No Code 플랫폼이다. 네트워크에 액세스할 수 없는 경우에도 컨버티고를 통해 로컬에서 데이터를 사용할 수 있다. 오픈 소스 플랫폼은 컨버티고 모바일 리저, 컨버티고 클라우드, 컨버티고 서버 및 컨버티고 스튜디오를 포함한 다양한 솔루션으로 구성된다. 또한 웹 서비스 및 SQL 데이터베이스와 같은 다양한 커넥터를 사용하여 엔터프라이즈 데이터를 연결할 수 있는 효율적인 모바일 엔터프라이즈 응용 프로그램 플랫폼을 제공한다.[11][12]

일렉트론

일렉트론(Electron)은 청자오(Cheng Zhao)가 개발한 오픈 소스 프레임 워크의 하나로, 지금은 깃허브에 의해 개발되고 있다. 원래 웹 애플리케이션을 위해 개발된 프런트엔드백엔드 구성 요소를 사용하여 데스크톱 그래픽 사용자 인터페이스 애플리케이션의 개발을 가능케 한다. 백엔드로는 노드. js 런타임을, 프론트엔드로는 크로미엄을 사용한다. 일렉트론은 여러 저명한 오픈 소스 프로젝트를 뒷받침하는 주요 GUI 프레임 워크이며, 이 프레임 워크를 사용한 프로젝트로는 깃허브의 아톰, 마이크로소프트의 비주얼 스튜디오 코드 소스 코드 편집기, 그리고 라이트 테이블 IDE, 또 디스코드 채팅 서비스를 위한 프리웨어 데스크톱 클라이언트 등이 있다.[13]

게임

국내 주요 게임사들이 이용자 확보를 위해 모바일 게임을 PC에서 플레이하거나, PC 게임을 모바일에서 원격 조정할 수 있는 ‘크로스 플랫폼’을 앞다퉈 선보이고 있다. 크로스 플랫폼은 하나의 게임을 사용자가 보유한 다양한 기기에서 함께 즐길 수 있는 일종의 멀티 플랫폼이다. 2021-05-22, 게임 업계에 따르면 엔씨 소프트(NC soft)는 지난 2021-05-20에 출시한 모바일 다중 접속 역할수행 게임(MMORPG) ‘트릭스터 M(Trickster)’에 모바일과 PC에서 동시에 플레이할 수 있는 크로스 플랫폼 ‘퍼플(purple)’을 적용했다. 퍼플은 엔씨 소프트가 지난 2019년 선보인 크로스 플랫폼이다. 리니지M(Lineage), 리니지 2M, 트릭스터 M, 프로야구 H3 등 엔씨의 대표 모바일 게임을 4K UHD 고해상도로 PC에서 즐길 수 있다. 반대로 스마트폰에 퍼플을 설치할 경우 PC에서 실행 중인 게임 화면을 스트리밍 방식으로 모바일에서 조작할 수 있다. 그동안은 동시 접속 문제로 불가능했던 플레이를 PC 화면을 모바일로 실시간 전송하는 방식으로 해결했다. 중견 게임사인 엔 픽셀(NPIXEL)과 라인 게임즈(Linegames)도 크로스 플랫폼에 적극적으로 나서고 있다. 엔 픽셀이 올해 출시한 모바일 MMORPG ‘그랑사가(Gransaga)’는 모바일과 PC에서 동시에 즐길 수 있는 크로스 플랫폼을 제공해 호평을 받았다. 라인 게임즈가 최근 출시한 ‘스매시 레전드(SMASH LEGENDS)’와 ‘가디언 크로니클(Guardian Chronicle)’도 완성도 높은 크로스 플랫폼을 자랑한다. 그동안은 모바일 게임을 PC에서 할 수 있는 크로스 플랫폼이 많았는데, 최근에는 PC 게임을 콘솔(TV에 연결해 쓰는 게임기)에서 즐길 수 있는 크로스 플랫폼도 출시되고 있다. 펄어비스(Pearl Abyss)의 검은 사막(Black Desert Online), 넷마블(Netmarble)의 세븐 나이츠(Sevenknights) 등이 대표적이다. 출시를 앞두고 있는 넥슨(Nexon)의 ‘카트라이더(KartRider): 드리프트’ 역시 PC 게임을 대화면 TV에서 즐길 수 있는 크로스 플랫폼이 적용돼 관심이 높다.[14]

크로스 플랫폼은 하나의 게임을 PC와 모바일, 콘솔 버전으로 각각 내놓는 멀티 플랫폼과는 차이가 있다. 플랫폼 및 기기 간 교류가 가능해 확장성이 뛰어나다는 장점이 있다. 반면 완성도와 최적화 작업은 더욱 중요해졌다. 단순히 모바일 게임을 PC로 옮겨온 게 아닌 기기별로 최적화된 모습을 보여줘야 하기 때문이다. 국내 게임업체들이 크로스 플랫폼에 집중하는 이유는 하나의 플랫폼만 고수해서는 이용자들을 사로잡을 수 없다고 판단했기 때문이다. 이전에도 앱플레이어(모바일 게임을 PC에서 구동시켜주는 프로그램)를 이용해 모바일 게임을 PC에서 즐기는 이용자들이 있었지만 극소수에 불과했다. 하지만 신종 코로나 바이러스 감염증, 즉 코로나 19로 재택근무가 늘어나면서 모바일 게임을 PC로 즐기고자 하는 욕구가 강해졌다. 게임 업체들이 직접 크로스 플랫폼 개발에 나서기 시작한 이유다. 게임 업계에서는 앞으로 게임 플랫폼의 경계가 사라질 것으로 예상하고 있다. 하나의 게임을 이용자가 보유한 모든 기기에서 옮겨가며 플레이할 수 있기 때문에 ‘모바일용’, ‘PC용’으로 게임을 구분할 필요가 사라진다는 것이다. 반대로 하나의 게임을 얼마나 다양한 플랫폼에 최적화된 상태로 제공할 수 있느냐가 게임의 성패를 좌우할 것으로 판단하고 있다. 게임 업계 관계자는 “모바일 게임 이용자의 30~40%가 크로스 플랫폼 서비스를 활용해 PC를 포함한 다른 기기에서 함께 플레이하고 있다는 자체 조사 결과가 있었다”라며 “크로스 플랫폼이 게임 접속 시간 증가에도 영향을 미치는 만큼, 앞으로 더 폭넓고 다양한 게임에 적용될 것으로 보고 있다”라고 했다.[14]

우리 주변에서 사용하고 있는 프로그램들 중에서는 크로스 플랫폼으로 개발된 것이 굉장히 많다. 자바로 개발된 것 이외에도 말이다. 요즘은 유지 보수와 관리의 목적의 편의성을 목적으로 앱을 설계할 때부터 크로스 플랫폼으로 제작하는 경우가 많다. 대표적인 것이 바로 '게임'인데, 안드로이드 버전과 아이폰 버전의 출시일이 다른 게임들도 있지만, 그런 경우가 아니고서는 보통 크로스 플랫폼으로 개발되어 아이폰과 안드로이드용 버전을 동시에 출시하는 경우도 늘고 있다. 대표적인 게임으로는 "하스스톤(HearthStone)"이 있다. 하스스톤은 멀티 플랫폼 게임 개발 툴인 "유니티(Unity)"로 제작되어, PC, 안드로이드, 아이폰에서 동시에 즐길 수 있는 게임이다. 그 외에도 "코코스 2D(Cocos-2D)"로 개발된 "쿠키런(CookieRun)", "언리얼 엔진(UnrealEngine)"으로 개발된 "오버히트(OverHit)" 등이 대표적이라고 할 수 있다. 위의 예시들에서 볼 수 있듯이, 요즘 사용하는 게임 개발 툴들은 대부분 크로스 플랫폼을 지원한다. 크로스 플랫폼을 지원하는 게임 개발 툴로는 유니티(Unity3D), 언리얼 엔진(Unreal Engine), 게임 메이커 스튜디오(Gamemaker Studio), 코코스 2D 등이 있으며, 게다가 요즘은 이런 툴들을 무료로 사용할 수 있도록 풀어주고 있어서, 사용해보시면 좋을 것 같다. 게임 개발에서는 하나의 프로젝트로 개발해서 '각자 다른 운영체제로 포팅 한다'는 표현을 사용한다.[6]

각주

  1. 크로스 플랫폼〉, 《네이버 지식백과》
  2. 크로스 플랫폼〉, 《네이버 지식백과》
  3. 3.0 3.1 크로스 플랫폼이란?〉, 《edu.goorm》
  4. 짱천사, 〈크로스 플랫폼 게임들〉, 《네이버 블로그》, 2017-06-19
  5. 5.0 5.1 퓨처워커, 〈아이폰에서 배우는 크로스플랫폼 대응전략〉, 《벤처스퀘어》, 2012-04-16
  6. 6.0 6.1 6.2 6.3 JuniorEinstein, 〈크로스 플랫폼(Cross Platform)이란?〉, 《티스토리》, 2018-03-09
  7. 오페라〉, 《네이버 지식백과》
  8. Channy Yun, 〈모질라 파이어버드, 파이어폭스로 명칭 변경 및 0.8 출시〉, 《Mozilla 한국 커뮤니티》, 2004-02-09
  9. 크로스 플랫폼〉, 《위키백과》
  10. 10.0 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 CiS 공식 홈페이지 - https://www.cisin.com/coffee-break/ko/Enterprise/what-are-the-different-types-of-cross-platform-mobile-development-tools-for-2020.html
  11. 11.0 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 흑과 백, 〈상위 10 가지 크로스 플랫폼 모바일 개발 도구에 대해서 알아봅시다!〉, 《티스토리》, 2017-07-12
  12. dockerhub 공식 홈페이지 - https://hub.docker.com/_/Convertigo
  13. 일렉트론 (소프트웨어 프레임워크)〉, 《위키백과》
  14. 14.0 14.1 윤진우 기자, 〈모바일게임을 PC로 즐긴다…게임시장 대세로 떠오른 크로스 플랫폼〉, 《조선비즈》, 2021-05-22

참고자료

같이 보기


  검수요청.png검수요청.png 이 크로스 플랫폼 문서는 소프트웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.