최근 수정 시각 : 2023-07-27 22:24:36

크로스 플랫폼


1. 개요2. 예시3. 크로스 플레이

1. 개요

소프트웨어가 둘 이상의 플랫폼을 지원하는것을 뜻하는 용어.

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

2. 예시

  • 웹 사이트 - 웹 표준을 따를 시. 심지어는 어도비 플래시 같이 웹 표준이 아닌 플러그인들도 대부분의 브라우저나 OS에서 거의 동일하게 실행이 가능하다. 오히려 HTML5보다도 규격화 되어 있다. 이는 플러그인 제작사만이 관여하기 때문에 여러 규격이 난립할 가능성이 적기 때문이다.
  • 대부분의 인터프리터/JIT 언어들: 미리 기계어로 번역하는 AOT 타입의 언어들과는 다르게 원본 코드나 바이트코드를 기계어로 번역해서 실행하기 때문에 해당 플랫폼에 대응되는 런타임환경만 구축되어있다면 실행하는게 가능해서 AOT타입의 언어들과 구분되는 장점중 하나이다.최근의 대부분의 크로스플랫폼 프로젝트들은 Java나 C#등의 JIT기반인 언어를 많이 채용한다.
  • LLVM/ Clang: . 윈도우, 리눅스, 맥을 모두 지원한다.
  • 일렉트론 : UI는 HTML, 프로그램은 JS로 구현한다.UWP의 JS 앱이 생각난다면 기분탓이다 Sublime Text, Atom(에디터), Visual Studio Code 등. 이 프로그램들은 일렉트론 프레임워크를 통해 개발되었다.
  • Ruby, Python, Node.js: 기타 스크립트 언어들로 작성한 프로그램들[1]
  • 안드로이드 스튜디오: 윈도우, 리눅스, 맥을 모두 지원한다.
  • Unity: 역시 크로스 플랫폼을 지원하는 게임 엔진이며 모바일 플랫폼 외에 다수 플랫폼 지원[2]
  • Flutter, React Native, Xamarin 등의 모바일 크로스플랫폼 프레임워크
  • Qt(프레임워크): 윈도우, 리눅스, 안드로이드, iOS 등의 대부분의 메이저 OS를 동일한 코드 (C++, QML)로 네이티브 기반의 개발이 가능하며 C++ 크로스 플랫폼의 최강자이다.
  • 어도비 에어: 플래시 HTML5를 사용하는 앱 개발 도구. 안드로이드, iOS, PC 지원
  • XAMPP: 윈도우, 리눅스, 맥에서 모두 실행할 수 있는 PHP 서버 툴이다.
  • 오피스 스위트: 오픈오피스, 리브레오피스, WPS Office[3]
  • 외부 연결 장치 드라이버: 프린터, 복합기, 외장형 블루레이 디스크 등. 이 제품들은 사용자가 윈도우즈에만 연결하리란 법이 없다. macOS 리눅스에 연결할 수도 있다. 따라서 제조사들은 설치 디스켓에 윈도우즈용, 맥용, 리눅스용 드라이버을 같이 담아 제공하거나 회사 홈페이지에 각각의 운영체제용 드라이버들을 다 같이 다운받을 수 있게 한다.
  • 그래픽 및 이미지 편집: 김프
  • 미디어 플레이어: VLC, MPlayer
  • 압축 프로그램: 7-Zip
  • 기타 리눅스발 GNU 제품: 위의 김프, gcc, Vim, MPlayer 등은 원래 리눅스용으로 먼저 개발한 걸 기반으로 윈도우즈에서도 돌아갈 수 있도록 크로스 플랫폼으로 다시 만든 것들이다. 리눅스는 태생부터 GNU를 표방한 운영체제다. 따라서 리눅스에서 돌아가는 것들은 누구나 자유롭게 수정하고 배포할 수가 있다. 바로 이때문에 리눅스용으로 만든 제품을 윈도우즈나 맥에서도 돌아갈 수 있도록 마개조(!!!)하는 경우가 엄청 많은 것이다. 무료로 내려받아 사용할 수 있는 크로스 플랫폼 중 리눅스발 GNU 또는 오픈소스 제품이 압도적으로 많은 이유가 이 때문이다.

3. 크로스 플레이

온라인 비디오 게임에서 서로 다른 기종(플랫폼)의 유저가 동시에 플레이할 수 있는 것. 자세한 내용은 크로스 플레이 문서 참조.
[1] 다만 특정 OS에만 있는 기능을 사용해서 이에 의존성이 생기는 경우도 있다. [2] 보통 UI를 손보긴 해야 한다. [3] 중국산 오피스 소프트웨어.