플랫폼의 파편화

장민영·2022년 11월 23일

플랫폼이란 플랫폼은 원래 기차나 전철에서 승객들이 타고내리는 승강장이다
프로그래밍에서는 프로그램이 실행되는 하드웨어,소프트웨어 환경을 말한다.
예를들어 앱은 운영체제가 제공해주는 환경 그 위에서 실행된다 그럼 앱의 플랫폼은 운영체제인 것이다. 운영체제도 소프트웨어인데 cpu같은 여러 하드웨어를 사용해서 동작한다. 그럼 운영체제의 플랫폼은 하드웨어가 되는것이다.
프로그램을 만들때는 플랫폼을 고려해서 맞춤형으로 만들어 줘야 하는데 플랫폼이 맞지 않는다면 실행이 안된다. 그래서 다운받을때 윈도우용 프로그램, 맥용 프로그램으로 나뉜다.
이렇게 프로그램을 만들때는 실행할때든 플랫폼의 영향을 받게되는데 이걸 플랫폼 의존성이라고한다. 이때문에 프로그램을 만들때 프로그램 갯수만큼 만들어 줘야한다.
플랫폼 의존성 문제는 윗쪽단계로 갈수록 복잡해지는데 즉 앱에서 가장 골치아파 진다. 운영체제를 만들 때는 cpu의 구조를 고려해서 만들어야 되는데 앱의 입장에서 생각하면 앱은 운영체제를 고려해아하고 운영체제는 하드웨어를 고려해야한다. 그러니까 하나 만들려면 다 고려야 해야한다는 의미이게 앱을 만드는 개발자의 고충이다. 모바일 앱을 생각해보면 일단 모바일에 주로 사용되는 os가 ios와 안드로이드가 있다. ios를 보면 그 안에서도 여러 종류의 기기들이 있다. 아이폰 아이패드가 있고 그 안에서도 1세대 2세대 등등이 있고 안드로이드는 아예 제조사가 다를수도있고 여러버전이 있고 그 휴대폰 안에서도 운영체제 버전이 다르기도 한다. 각각 다른플렛폼인데 애플리케이션 개발자 입장에서는 모든 플랫폼에 대해 개발하려면 복잡하고 비용이 많이 든다 일단 아이폰 개발자와 안드로이드 개발자를 다 데리고 있어야 하고 휴대폰 모델과 os 버전에 대해 다른 프로그램을 만들어야하고 개발환경도 각 플랫폼 별로 따로따로 만들어야 한다.모든휴대폰 모델을 실제로 가지고 있어야할뿐만 아니라 코드를 바꿀때마다 모든 모델에서 테스트를 해봐야 하는거다 출시이후에도 앱의기능 디자인이 조금이라도 바뀌면 모든 버전의 프로그램에 수정하고 테스트도 모든 휴대폰에서 따로따로 해봐야한다. 또 앱을 다운로드 받는 마켓에서는 버전별로 배포도 다시 해야한다. 이 모든 인적 자원과 개발환경 장비와 기술을 가지고있어야 비로소 하나의 앱을 런칭할 수가 있다. 앱을 하나 출시하기가 이렇게 어렵고 또한 유지보수에도 많은 비용이 든다. 그래서 특정 플랫폼을 포기하고 일부 플랫폼만 지원하는 경우도 많다 에를들어 오래된 아이패드 모델에서 최신앱을 다운받아도 실행되지 않는 경우가 많다. 이게 플랫폼 의존성의 고충이다 이런 상황을 보고 플랫폼이 파편화 되었다 라고 말하기도 한다.

profile
개발새발자

0개의 댓글