맨위로가기

컴퓨팅 플랫폼

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

컴퓨팅 플랫폼은 하드웨어, 운영 체제, 소프트웨어 프레임워크 등 다양한 구성 요소를 포함하며, 그 위에 응용 프로그램을 개발하고 실행하는 기반을 제공한다. 플랫폼은 임베디드 시스템의 하드웨어, 웹 브라우저, 응용 프로그램, 소프트웨어 프레임워크, 클라우드 컴퓨팅 서비스, 가상 머신 등 여러 형태로 존재한다. 플랫폼의 종류로는 Adobe Shockwave, .NET, Java, 웹 플랫폼 등이 있으며, 운영 체제로는 Windows, Linux, macOS 등이 있다. 플랫폼 독립성은 특정 운영 체제나 하드웨어에 의존하지 않는 것을 의미하며, 여러 플랫폼에서 동작하는 소프트웨어를 크로스 플랫폼이라고 한다.

더 읽어볼만한 페이지

  • 컴퓨팅 플랫폼 - 안드로이드 (운영체제)
    구글이 개발한 리눅스 커널 기반의 모바일 운영체제인 안드로이드는 오픈소스 플랫폼으로 다양한 기기에서 활용되며 세계적으로 널리 사용되지만, 개인정보 보호 문제와 독점적 지위 남용 논란 등의 비판도 존재한다.
  • 컴퓨팅 플랫폼 - 자바 플랫폼, 마이크로 에디션
    자바 ME는 임베디드 및 모바일 장치에서 자바 앱을 실행하는 플랫폼으로, 피처폰에서 주로 사용되었으며 다양한 프로파일과 에뮬레이터, 개발 도구를 제공하고 JSR을 통해 기능이 확장된다.
컴퓨팅 플랫폼
개요
정의컴퓨팅 플랫폼은 소프트웨어가 실행되는 환경을 의미함.
유형하드웨어
운영 체제
가상 머신
브라우저
예시데스크톱 컴퓨터
서버
모바일 장치
클라우드 환경
웹 브라우저
플랫폼의 구성 요소
하드웨어중앙 처리 장치 (CPU)
메모리 (RAM)
저장 장치 (SSD, HDD)
운영 체제윈도우
macOS
리눅스
안드로이드
iOS
펌웨어BIOS
UEFI
런타임 라이브러리C 런타임 라이브러리
자바 런타임 환경 (JRE)
.NET Framework
플랫폼의 역할
소프트웨어 실행소프트웨어가 실행될 수 있는 기반 환경 제공
하드웨어 자원 관리소프트웨어가 하드웨어 자원을 효율적으로 사용하도록 관리
API 제공소프트웨어 개발자가 플랫폼의 기능을 활용할 수 있도록 API 제공
보안소프트웨어가 안전하게 실행될 수 있도록 보안 기능 제공
플랫폼의 종류
데스크톱 플랫폼윈도우
macOS
리눅스
모바일 플랫폼안드로이드
iOS
웹 플랫폼웹 브라우저 (크롬, 파이어폭스, 사파리)
웹 서버 (아파치, Nginx)
클라우드 플랫폼아마존 웹 서비스 (AWS)
마이크로소프트 애저
구글 클라우드 플랫폼 (GCP)
게임 플랫폼플레이스테이션
엑스박스
닌텐도 스위치
플랫폼의 중요성
소프트웨어 개발다양한 플랫폼에서 실행 가능한 소프트웨어 개발 가능
소프트웨어 배포다양한 플랫폼에 소프트웨어 배포 가능
소프트웨어 사용사용자는 다양한 플랫폼에서 원하는 소프트웨어 사용 가능
플랫폼 관련 기술
가상화하나의 하드웨어에서 여러 개의 가상 플랫폼 실행
컨테이너화소프트웨어를 실행에 필요한 모든 것을 포함하는 컨테이너로 패키징
클라우드 컴퓨팅인터넷을 통해 컴퓨팅 자원 제공
소프트웨어 개발 플랫폼
예시IBM 소프트웨어 플랫폼
마이크로소프트
오라클
SAP
VMware
Salesforce.com
어도비 시스템즈
CA 테크놀로지스
Symantec
EMC 코퍼레이션

2. 구성 요소

플랫폼은 다음과 같은 구성 요소들을 포함할 수 있다.


  • 소규모 임베디드 시스템의 경우, 하드웨어만으로 구성될 수 있다. 이러한 시스템은 운영체제(OS) 없이 하드웨어에 직접 접근하여 "베어 메탈"에서 실행된다.
  • 장치 드라이버펌웨어.
  • 웹 기반 소프트웨어의 경우 브라우저. 브라우저 자체는 하드웨어+OS 플랫폼에서 실행되지만, 브라우저 내에서 실행되는 소프트웨어와는 관련이 없다.[3]
  • Excel 매크로와 같은 응용 프로그램별 스크립팅 언어로 작성된 소프트웨어를 호스팅하는 스프레드시트나 워드 프로세서와 같은 응용 프로그램. 이는 마이크로소프트 오피스 제품군을 플랫폼으로 사용하여 완전한 응용 프로그램을 작성하는 것으로 확장될 수 있다.[4]
  • 즉시 사용 가능한 기능을 제공하는 소프트웨어 프레임워크.
  • 클라우드 컴퓨팅서비스형 플랫폼. 소프트웨어 프레임워크의 아이디어를 확장하여, 응용 프로그램 개발자가 개발자가 아닌 공급자가 호스팅하는 구성 요소로 소프트웨어를 구축할 수 있도록 하며, 인터넷 통신으로 이들을 연결한다.[5] 트위터와 페이스북도 개발 플랫폼으로 간주된다.[6][7]
  • 자바 가상 머신 또는 .NET CLR과 같은 응용 프로그램 가상 머신(VM). 응용 프로그램은 바이트코드라고 하는 기계어와 유사한 형식으로 컴파일된 다음 VM에서 실행된다.
  • 가상화된 하드웨어, OS, 소프트웨어 및 스토리지를 포함하는 전체 시스템의 가상화. 예를 들어, 일반적인 Windows 프로그램이 물리적으로 Mac에서 실행될 수 있도록 한다.


일부 아키텍처는 여러 계층을 가지며, 각 계층은 그 위에 있는 계층의 플랫폼 역할을 한다. 일반적으로 구성 요소는 바로 아래 계층에만 적응하면 된다. 예를 들어, Java 프로그램은 Java 가상 머신(JVM) 및 관련 라이브러리를 플랫폼으로 사용하도록 작성되어야 하지만, Windows, Linux 또는 Macintosh OS 플랫폼에서 실행되도록 적응할 필요는 없다. 그러나 응용 프로그램 아래 계층인 JVM은 각 OS에 대해 별도로 구축되어야 한다.[8]

3. 플랫폼의 종류

일반적인 컴퓨터 프로그램 (애플리케이션 소프트웨어)의 실행 파일 (바이너리)은 실행 환경인 각 OS에 의존하며, Windows, macOS, 리눅스 등에서만 동작하는 전용 바이너리로 빌드된다. 특정 프로세서 (CPU, GPU)용 네이티브 기계어 코드를 생성하는 프로그래밍 언어로 개발된 소프트웨어는 호환 가능한 하드웨어에서만 동작한다. 예를 들어, PowerPC 프로세서용 리눅스에서 Mac OS X용 또는 x86/x64 프로세서용 리눅스용 Adobe Reader는 동작하지 않으며, x86/x64 프로세서용 Windows에서 ARM 아키텍처 프로세서 (ARM32/ARM64)용 Windows 네이티브 애플리케이션은 동작하지 않는다. 단, ABI 에뮬레이션 레이어를 가진 OS 등, 다른 프로세서용 바이너리를 동작시킬 수 있는 환경도 있다.

특정 운영 체제나 하드웨어에 의존하지 않는 것을 플랫폼 독립(platform-independent영어)이라고 한다. 자바는 각 플랫폼에서 자바 애플리케이션이 동작하는 가상 플랫폼을 구현하여 플랫폼 독립을 실현하며, 자바 플랫폼이라는 가상화된 공통 플랫폼 위에서 자바 애플리케이션이 동작한다. 프로세서 명령 집합은 자바 바이트 코드 및 자바 가상 머신에 의해 추상화된다.

플랫폼의 차이를 미들웨어로 흡수하여 여러 플랫폼에서 동작하도록 설계된 소프트웨어를 크로스 플랫폼이라고 한다.

마이크로소프트의 .NET Framework는 자바와 유사한 애플리케이션 개발·실행 플랫폼이며, 프로세서에 의존하지 않는 공통 중간 언어를 생성하고, 공통 언어 기반 사양에 따른 공통 언어 런타임에서 동작한다. .NET Framework는 Windows 전용이었으나, 모노나 .NET Core에 의해 Windows 이외의 OS에도 이식되어 크로스 플랫폼이 되었다.

프로그램 소스 코드를 실행 시점에 번역·해석하는 스크립트 언어동적 프로그래밍 언어로 작성된 소프트웨어도 플랫폼 독립 및 크로스 플랫폼인 경우가 많다.

OpenCL에서는 Installable Client Driver(ICD) 로더 방식을 통해 하나의 시스템에 여러 벤더의 구현체(OpenCL 드라이버)가 공존할 수 있다.[13] 이 OpenCL 구현체를 플랫폼이라고 부르며, 각 OpenCL 플랫폼은 OpenCL을 지원하는 하드웨어의 추상화인 OpenCL 장치를 여러 개 가질 수 있다.

3. 1. 운영 체제

운영 체제는 컴퓨터 하드웨어를 관리하고 응용 프로그램 실행을 위한 기반을 제공하는 핵심적인 플랫폼이다.

안드로이드는 잘 알려진 모바일 운영 체제이다


'''운영 체제의 종류'''

일반적인 컴퓨터 프로그램 (애플리케이션 소프트웨어)의 실행 파일 (바이너리)은 실행 환경인 각 운영 체제에 의존한다. 예를 들어 Windows, macOS, 리눅스 등에서는 각 운영 체제에서만 동작하는 전용 바이너리로 빌드된다. 또한, 특정 프로세서 (CPU나 GPU)용 네이티브 기계어 코드를 생성하는 프로그래밍 언어로 개발된 소프트웨어는 호환 가능한 하드웨어에서만 동작한다. 예를 들어, PowerPC 프로세서용 리눅스에서는 PowerPC 프로세서용 Mac OS X용 또는 x86/x64 프로세서용 리눅스용 Adobe Reader는 동작하지 않는다. 또한, x86/x64 프로세서용 Windows에서는 ARM 아키텍처 프로세서 (ARM32/ARM64)용으로 빌드된 Windows 네이티브 애플리케이션은 동작하지 않는다. 단, ABI 에뮬레이션 레이어를 가진 운영 체제 등, 다른 프로세서용 바이너리를 동작시킬 수 있는 환경도 있다.[1]

3. 1. 1. 데스크톱, 노트북, 서버


Darwin
* macOS
* OpenDarwin
NetBSD
* OpenBSD
FreeBSD
* DragonFly BSD
OpenSolaris
* illumos
** OpenIndiana

3. 1. 2. 모바일



안드로이드, 인기 있는 모바일 운영 체제

3. 2. 소프트웨어 프레임워크

소프트웨어 프레임워크는 특정 기능을 수행하거나 응용 프로그램 개발을 위한 기반을 제공하는 소프트웨어 플랫폼이다.

마이크로소프트닷넷 프레임워크자바와 매우 유사한 애플리케이션 개발·실행 플랫폼이며, 프로세서에 의존하지 않는 공통 중간 언어를 생성할 수 있으며, 공통 언어 기반의 사양에 따른 공통 언어 런타임에서 동작한다. 닷넷 프레임워크는 Windows 전용이었으나, 이후 모노나 .NET Core에 의해 Windows 이외의 OS에도 이식되어 크로스 플랫폼이 되었다.

프로그램의 소스 코드를 실행 시점에 번역·해석하는 스크립트 언어동적 프로그래밍 언어로 작성된 소프트웨어도 플랫폼 독립 및 크로스 플랫폼인 경우가 많다.

3. 2. 1. 모바일


  • BREW는 퀄컴에서 개발한 모바일 응용 프로그램 개발 플랫폼이다.
  • 자바 플랫폼, 마이크로 에디션 (자바 ME)은 모바일 및 임베디드 시스템을 위한 자바 플랫폼이다.
  • 자바FX 모바일은 모바일 응용 프로그램 개발을 위한 자바 기반 프레임워크이다.

3. 3. 하드웨어

ARM는 모바일 기기 및 임베디드 시스템에서 널리 사용되는 프로세서 아키텍처이다.[13] 검스틱스나 라즈베리 파이와 같은 소형 컴퓨터, 리눅스BSD 변형 등 유닉스 계열 시스템을 갖춘 ARM 서버, 다양한 제조사의 크롬북 등이 ARM 아키텍처를 기반으로 한다.

x86는 인텔AMD에서 개발한 프로세서 아키텍처로, 데스크톱 및 서버 시장에서 널리 사용된다.[13] IBM PC 호환 기종이 x86 아키텍처를 기반으로 한다.

그 외에도 다음과 같은 하드웨어 플랫폼이 존재한다.

4. 플랫폼 독립성과 크로스 플랫폼

일반적인 컴퓨터 프로그램 (애플리케이션 소프트웨어)의 실행 파일 (바이너리)은 실행 환경인 각 OS에 의존하며, 예를 들어 Windows, macOS, 리눅스 등의 각 OS에서만 동작하는 전용 바이너리로 구축(빌드)된다. 또한, 특정 프로세서 (CPU나 GPU)용 네이티브 기계어 코드를 생성하는 프로그래밍 언어로 개발된 소프트웨어는 호환 가능한 하드웨어에서만 동작한다. 예를 들어, PowerPC 프로세서용 리눅스에서는 PowerPC 프로세서용 Mac OS X용 또는 x86/x64 프로세서용 리눅스용 Adobe Reader는 동작하지 않는다. 또한, x86/x64 프로세서용 Windows에서는 ARM 아키텍처 프로세서 (ARM32/ARM64)용으로 빌드된 Windows 네이티브 애플리케이션은 동작하지 않는다. 단, ABI 에뮬레이션 레이어를 가진 OS 등, 다른 프로세서용 바이너리를 동작시킬 수 있는 환경도 있다.

특정 운영 체제(OS)나 하드웨어에 의존하지 않는 것을 플랫폼 독립(platform-independent영어)이라고 한다. 예를 들어, 자바는 각 플랫폼에서 자바 애플리케이션이 동작하는 가상 플랫폼을 구현함으로써 플랫폼 독립을 실현하고 있다. 마치 서로 다른 플랫폼 위에 자바 플랫폼이라는 가상화된 공통 플랫폼이 존재하고, 공통 플랫폼 위에서 자바 애플리케이션이 동작한다. 프로세서 명령 집합은 자바 바이트 코드 및 자바 가상 머신에 의해 추상화된다.

또한 플랫폼의 차이를 미들웨어로 흡수하여, 여러 플랫폼에서 동작하도록 설계된 소프트웨어를 크로스 플랫폼이라고 부른다.

마이크로소프트의 .NET Framework도 자바와 매우 유사한 애플리케이션 개발·실행 플랫폼이며, 프로세서에 의존하지 않는 공통 중간 언어를 생성할 수 있으며, 공통 언어 기반의 사양에 따른 공통 언어 런타임에서 동작한다. .NET Framework는 Windows 전용이었으나, 이후 모노나 .NET Core에 의해 Windows 이외의 OS에도 이식되어 크로스 플랫폼이 되었다.

프로그램의 소스 코드를 실행 시점에 번역·해석하는 스크립트 언어동적 프로그래밍 언어로 작성된 소프트웨어도 플랫폼 독립 및 크로스 플랫폼인 경우가 많다.

참조

[1] 뉴스 What I Talk About When I Talk About Platforms https://martinfowler[...] 2018-03-18
[2] 문서 platform
[3] 웹사이트 Google's Redefinition of the Browser As Platform http://www.drdobbs.c[...] 2012-07-02
[4] 웹사이트 Microsoft Office as a Platform for Software + Services http://msdn.microsof[...]
[5] 웹사이트 What Is PAAS? http://www.interoute[...] 2014-01-28
[6] 웹사이트 Twitter Development Platform - Twitter Developers https://dev.twitter.[...]
[7] 웹사이트 Facebook Development Platform Launches... https://www.facebook[...] 2006-08-15
[8] 웹사이트 Platform independence in Java's Byte Code https://stackoverflo[...]
[9] 웹사이트 The Future of Developing Firefox Add-ons https://blog.mozilla[...] 2018-12-15
[10] 웹사이트 Upcoming Changes in Compatibility Features https://blog.mozilla[...] 2018-12-15
[11] 웹사이트 How to enable legacy extensions in Firefox 57 - gHacks Tech News https://www.ghacks.n[...] 2017-08-12
[12] 웹사이트 Porting a Google Chrome extension https://developer.mo[...] Mozilla 2018-12-30
[13] 문서 OpenCL Installable Client Driver (ICD) Loader - The Khronos Group Inc https://www.khronos.[...]
[14] 뉴스 What I Talk About When I Talk About Platforms https://martinfowler[...] 2018-03-18



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com