최근 수정 시각 : 2024-09-11 23:26:19

크로스 플랫폼


1. 개요2. 예시
2.1. 언어2.2. 프레임워크2.3. 소프트웨어
3. 크로스 플레이4. 크로스 세이브5. 크로스 바이

1. 개요

소프트웨어가 둘 이상의 플랫폼을 지원하는것을 뜻하는 용어.
크로스 플랫폼(Cross-Platform) 또는 멀티 플랫폼(Multi-Platform)으로 불린다.

크로스 플랫폼을 지원하기 위해서는 다음과 같은 방법들이 사용된다.
  • Java, .NET과 같은 런타임이 여러 플랫폼이 지원되는 실행환경에서 작동하도록 개발
  • 타깃 플랫폼간의 차이점을 고려하여 컴파일이 가능하도록 소스코드 개발 후 플랫폼 별로 각각 컴파일
후자의 경우, GUI 등 플랫폼마다 완전히 상이한 기능을 공통으로 제공하기 위하여 Qt와 같은 크로스 플랫폼 라이브러리를 사용하기도 한다.

2. 예시

2.1. 언어

단, 소스코드가 특정 플랫폼에 의존하지 않거나, 플랫폼 별로 적절한 소스코드를 작성했을때를 전제로 한다.
  • 웹 사이트: 웹 표준을 따를 시. 심지어는 어도비 플래시 같이 웹 표준이 아닌 플러그인들도 대부분의 브라우저나 OS에서 거의 동일하게 실행이 가능하다. 오히려 HTML5보다도 규격화 되어 있다. 이는 플러그인 제작사만이 관여하기 때문에 여러 규격이 난립할 가능성이 적기 때문이다.
  • 대부분의 인터프리터/JIT 언어들: Ruby, Python, JavaScript 또는 기타 스크립트 언어 등등. 해당 플랫폼에 알맞는 런타임 환경이 구축되어 있기만 하면 실행 가능하기 때문이다.
  • 대부분의 하이브리드 언어들: Java C#등의 언어. 인터프리터와 같은 이유로 가능하다. 하지만 중간 언어로 컴파일 하는 과정을 통해 인터프리터 보다 빠른 성능을 제공한다.[1]
  • 특정 컴파일 언어들: C/ C++ 같은 언어도 LLVM같은 컴파일러의 재량으로 크로스 플랫폼을 매우 넓게 지원할수 있다.

2.2. 프레임워크

  • 일렉트론 : UI는 HTML, 프로그램은 JS로 구현한다.UWP의 JS 앱이 생각난다면 기분탓이다 Sublime Text, Atom(에디터), Visual Studio Code 등. 이 프로그램들은 일렉트론 프레임워크를 통해 개발되었다.
  • Unity: 역시 크로스 플랫폼을 지원하는 게임 엔진이며 모바일 플랫폼 외에 다수 플랫폼 지원[2]
  • Flutter, React Native, .NET MAUI 등의 모바일 크로스플랫폼 프레임워크
  • Qt(프레임워크): 윈도우, 리눅스, 안드로이드, iOS 등의 대부분의 메이저 OS를 동일한 코드 (C++, QML)로 네이티브 기반의 개발이 가능하며 C++ 크로스 플랫폼의 최강자이다.

2.3. 소프트웨어

3. 크로스 플레이

온라인 비디오 게임에서 서로 다른 기종(플랫폼)의 유저가 동시에 플레이할 수 있는 것. 자세한 내용은 크로스 플레이 문서 참조.

4. 크로스 세이브

온라인 게임 계정과 각 플랫폼 기종의 계정을 서로 연동하게 되면 상술한 크로스 플레이와 더불어 현 플랫폼에서의 게임 진행도를 타 플랫폼에서도 공유 된다.

5. 크로스 바이

한 기종에서 게임을 구매시 계정만 연동이 되어있다면 같은 계열의 기종에서 별도로 구매할 필요 없이 그대로 소장 하게되는 시스템을 말한다. 주로 PS3/ PS Vita/ PS4의 낀세대 시절때[4] 일부 게임들에 적용 되었다.
[1] 최근에는 Java C# 각각 GraalVM, .NET Native AOT의 등장으로 더 빨라질수 있다! [2] 보통 UI를 손보긴 해야 한다. [3] 중국산 오피스 소프트웨어. [4] 2010년대 초중반 이라 생각하면 된다.