최근 수정 시각 : 2024-12-08 06:57:56

크로스플랫폼


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 또는 기타 스크립트 언어 등등. 해당 플랫폼에 알맞는 런타임 환경이 구축되어 있기만 하면 실행 가능하기 때문이다.
  • 대부분의 하이브리드 언어들: JavaC#등의 언어. 인터프리터와 같은 이유로 가능하다. 하지만 중간 언어로 컴파일 하는 과정을 통해 인터프리터 보다 빠른 성능을 제공한다.[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. 소프트웨어

  • 안드로이드 스튜디오: 윈도우, 리눅스, 맥을 모두 지원한다.
  • 어도비 에어: 플래시HTML5를 사용하는 앱 개발 도구. 안드로이드, iOS, PC 지원
  • XAMPP: 윈도우, 리눅스, 맥에서 모두 실행할 수 있는 PHP 서버 툴이다.
  • 오피스 스위트: 오픈오피스, 리브레오피스, WPS Office[3]
  • 외부 연결 장치 드라이버: 프린터, 복합기, 외장형 블루레이 디스크 등. 이 제품들은 사용자가 윈도우즈에만 연결하리란 법이 없다. macOS리눅스에 연결할 수도 있다. 따라서 제조사들은 설치 디스켓에 윈도우즈용, 맥용, 리눅스용 드라이버을 같이 담아 제공하거나 회사 홈페이지에 각각의 운영체제용 드라이버들을 다 같이 다운받을 수 있게 한다.
  • 그래픽 및 이미지 편집: 김프
  • 미디어 플레이어: VLC, MPlayer
  • 압축 프로그램: 7-Zip
  • 기타 리눅스발 GNU 제품: 위의 김프, gcc, Vim, MPlayer 등은 원래 리눅스용으로 먼저 개발한 걸 기반으로 윈도우즈에서도 돌아갈 수 있도록 크로스 플랫폼으로 다시 만든 것들이다. 리눅스는 태생부터 GNU를 표방한 운영체제다. 따라서 리눅스에서 돌아가는 것들은 누구나 자유롭게 수정하고 배포할 수가 있다. 바로 이때문에 리눅스용으로 만든 제품을 윈도우즈나 맥에서도 돌아갈 수 있도록 마개조(!!!)하는 경우가 엄청 많은 것이다. 무료로 내려받아 사용할 수 있는 크로스 플랫폼 중 리눅스발 GNU 또는 오픈소스 제품이 압도적으로 많은 이유가 이 때문이다.

3. 크로스 플레이

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

4. 크로스 세이브

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

5. 크로스 바이

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