본문 바로가기

Architecture for Software/Architecture

플랫폼(Platform)이란

컴퓨터와 관련하여 플랫폼이라는 용어는 응용프로그램이 실행될 수 있는 기초를 이루는 컴퓨터 시스템을 의미한다. PC에서는 두 개의 서로 다른 플랫폼의 예로서 윈도우95와 매킨토시를 들 수 있으며, 대형 서버나 메인프레임에서는 IBM의 System/390을 하나의 플랫폼 으로 볼 수 있다.

하나의 플랫폼은 운영체계, 컴퓨터 시스템의 보조 프로그램, 그리고 마이크로프로세서, 논리연산을 수행하고, 컴퓨터 내의 데이터 이동을 관장하는 마이크로칩 등으로 구성된다. 운영체계는 특정 마이크로프로세서의 명령어 집합과 함께 동작할 수 있도록 설계되어야 한다.

예를 들면, 마이크로소프트의 윈도우95는 같거나 비슷한 종류의 명령어 집합을 공유할 수 있는 인텔의 마이크로 프로세서군과 함께 동작할 수 있도록 만들어졌다. 마더보드나 데이터버스 등과 같이 어떠한 컴퓨터 플랫폼이라도 보통 다르게 적용된 부품들이 있지만, 이러한 부품들은 점차적으로 모듈화되고 표준화되어가고 있다.

역사적으로 대부분의 응용프로그램들은 특정 플랫폼 상에서만 운영되도록 개발되어 왔다. 각 플랫폼은 다른 시스템 서비스들을 위해 다른 응용프로그램 인터페이스를 제공한다. 그러므로 윈도우 플랫폼에서 운영되기 위해 개발된 PC 프로그램을, 매킨토시 플랫폼에서 운영하기 위해서는 프로그램을 처음부터 다시 개발해야만 했다. 비록 이러한 플랫폼의 차이들은 계속 존재하고, 그들 사이에는 항상 독점기술에 관한 차이가 존재하겠지만, 표준을 따르는
새로운 개방형 인터페이스를 통해 이제는 일부 프로그램들이 다른 플랫폼에서 운영될 수 있고, 브로커 프로그램 등의 중재를 통해 서로 다른 플랫폼간의 상호 운영이 가능해지고 있다.

플랫폼은 다른 기술들 또는 공정들이 그 위에서 구현될 수 있는 일종의 기술 기반을 의미하기도 한다.

실제로 사용자들이 컴퓨터 시스템을 사용한다는 것은 해당 컴퓨터 시스템을 활용하여 사용자 자신이 원하는 결과를 얻을 수 있는 것을 의미한다. 대부분의 사용자들은 자신이 사용하는 컴퓨터 시스템을 이용하여 자신이 원하는 결과를 얻기를 바라며, 이를 위하여 주로는 응용 프로그램을 사용하여 자신의 목적을 달성하려 한다. 일반적으로 사용자는 컴퓨터 시스템의 응용 프로그램을 사용하여 원하는 결과를 얻게 마련이므로, 실제로 사용자들의 주된
관심은 컴퓨터 시스템의 응용 프로그램(Application s Progr am )에 있다. 응용 프로그램은 실제로 컴퓨터 시스템의 운영 시스템(OS : Operating Sy st em )에 의존적이므로, 사실상 사용자가 어떤 응용 프로그램을 사용하는가하는 것은 어떤 운영 시스템을 가지고 있는가 라는 질문에 대한 답과 마찬가지의 경우가 된다.

Eclipse Platform architecture


플랫폼의 예

일반 사용자들의 경우는 어떤 운영 시스템 환경에서 작업을 하는가하는 것은 사실상 관심이 없으며, 어떤 응용 프로그램을 사용할 수 있는가에 더 관심을 가지게 된다. 예를 들어, 486DX 기종의 하드웨어와 P entium 기종의 하드웨어를 직접 비교해 본다면, 분명히 Pentium 기종이 하드웨어적으로 우월한 기종임은 말할 필요가 없다. 그러나, 여기에 운영 시스템을 포함하여 비교한다면 이야기가 상당히 달라질 수 있다. 486DX 기종에는 Windows 95가 설치되어 있고, 하드디스크(Hard Disk )의 빈 용량이 상당히 있다고 가정해 보자.
또한 Pentium 기종은 하드디스크의 빈 공간은 상당히 많으나, 운영 시스템이 MS - DOS 5.0이 설치되어 있다고 가정해 보자. 이 두 시스템을 이용하여 Spr eadsh eet 작업을 하여야 한다면, 어떤 기종을 선택할 것인가? 일단 사용자는 Spread Sheet 작업용 응용 프로그램이 설치되어 있는 기종을 선택할 것이나, 현재 설치되어 있지 않다고 해도 설치가 가능한 기종을 선택하게 될 것이다. 따라서 위와 같은 경우에는 Pentium 기종을 선택하기보다는 486DX 기종을 선택하게 될 것이다. 이 경우, 사용자는 도스 플랫폼을 선택하지 않고 윈도우 플랫폼을 선택했다. 라고 이야기 한다.


플랫폼의 일반적 의미

어떤 특정 시스템의 하드웨어와 소프트웨어를 통칭하여 일컫는 표현이 플랫폼이다. 만약 예를 들어, 휴대폰을 단말기(T erminal) 삼아서 무선 인터넷에 접속하고자 하는 경우에, 사용자는 일단 두 가지 요구 사항을 갖추고 있어야 한다. 첫째는 무선 인터넷 접속이 가능한 휴대폰 기기를 가지고 있어야 하며, 또한 해당 휴대폰에는 인터넷 접속이 가능하도록 해주는 소프트웨어가 설치되어 있어야 한다. 즉, 어떤 사용자가 휴대폰으로 인터넷을 사용하기 위해
서는 하드웨어와 소프트웨어가 모두 갖추어져 있어야 가능한 것이다. 즉, 어떤 특정 과업이나 작업을 완료하기 위해서 실제로 하드웨어뿐만 아니라 소프트웨어도 갖추어져 있어야 한다.
실제 어떤 특정 과업을 수행하기 위해 필요한 하드웨어와 소프트웨어를 총칭하는 개념이 바로 플랫폼이다. 무선 인터넷에 접속하기 위한 플랫폼에는 여러 종류가 있을 수 있다. 앞서 예를 든 경우처럼, 휴대폰 단말기에 소프트웨어를 총칭하는 것일 수도 있고 노트북 PC에 무선 랜 카드를 갖추고 소프트웨어까지 갖추고 있는 경우도 될 수 있다.


컴퓨터 시스템에서의 플랫폼의 의미

일반적인 의미의 플랫폼은 하드웨어와 소프트웨어를 총칭하는 개념이다. 그러나, 컴퓨터 시스템에서 플랫폼의 의미는 하드웨어와 운영 시스템을 총칭하는 개념으로 바뀌어 진다. 왜냐하면 소프트웨어들 중의 상당수는 응용 프로그램이며, 이 응용 프로그램들은 운영 시스템에 종속적이기 때문이다. 어떤 특정 응용 프로그램은 지정된 운영 시스템에서만 구동될 수 있도록 설계된다. 그렇기 때문에 사실상 컴퓨터 시스템에서의 플랫폼은 하드웨어와 운영 시
스템을 총칭하는 개념만으로 충분하다 할 수 있을 것이다.


컴퓨터 시스템에서의 플랫폼의 종류

일반적으로 컴퓨터 시스템의 플랫폼은 크게 두 종류로 나눌 수 있다. 하나는 한 사람의 사용자가 접근하여 사용할 수 있도록 설계된 운영 시스템을 가지고 있는 플랫폼이고, 또 다른 하나는 동시에 두 명 이상의 사용자들이 접근하여 사용할 수 있도록 설계된 운영 시스템을 가지고 있는 플랫폼을 의미한다. 전자를 가리켜서 클라이언트(Client ) 플랫폼이라 하고, 후자를 가리켜서 서버(Server) 플랫폼이라 한다. 일반적으로 컴퓨터 시스템을 크게 나누어 클라이언트와 서버로 구분할 수 있는 것처럼, 컴퓨터 시스템의 플랫폼도 역시 클라이언트 플랫폼과 서버 플랫폼의 두 종류로 나뉘게 된다.