고양국제고/앱 개발 동아리 (가칭)

(가칭) 앱 개발 동아리 (2): 플랫폼에 대해

카루-R 2021. 8. 6. 15:47
반응형

환영합니다, Rolling Ress의 카루입니다.

플랫폼이 뭘까요? 승강장?

프로그래밍에 있어서 플랫폼은 매우 중요한 개념입니다. 아, 프로그래밍에는 크게 상관이 없을 수도 있어요. 그러나 앱 '개발'에 있어서는 플랫폼 선택이 매우 중요합니다. 플랫폼에 따라 구매자가 달라지고, 내가 이것을 개발하는데 무엇을 사용하는지도 달라지니까요. 우리가 개발하는 프로그램은 플랫폼에 종속됩니다.

물론, 이러한 단점을 해결하고자 플랫폼을 초월하는 크로스 플랫폼(Cross-Platform)이라는 개념도 등장했습니다. 그 전에, 플랫폼이 무엇인지부터 알아보고 넘어가겠습니다.

플랫폼이란, 소프트웨어에서 쓰일 때는 의미가 살짝 달라집니다. "프로그램이 실행되는 기반 / 시스템"을 플랫폼이라고 불러요. 예를 들어서 우리가 Microsoft Office를 쓰고 있습니다. 워드, 파워포인트를 써요. 그러면 분명히 대부분 Windows나 macOS를 사용하고 계실 겁니다. 소수의 사람들은 Android, Linux 혹은 클라우드 기반 오피스를 이용하고 있겠죠. 이런 것들이 모두 플랫폼입니다. 운영체제(OS)와는 분명히 다른 개념이지만, 프로그램이 실행되기 위한 '기반'이라는 개념에서는 어느 정도 교집합이 있습니다.

운영체제별 점유율 현황입니다. Windows가 압도적으로 많죠. macOS (OS X)도 간간히 보이긴 합니다. 특히 우리 학교 학생들, MacBook 많이 쓰죠. 리눅스도 조금 있네요. 참고로 저는 6년 정도 아치리눅스를 사용한 경험이 있습니다. Rolling Release 배포판이라 제가 참 좋아하는데, 제 블로그 이름 Rolling Ress도 여기서 따왔습니다.

아무튼, 여기서 알 수 있는 것은 'Windows 플랫폼을 대상으로 앱을 만들면 그만큼 많은 사람들이 이용할 수 있다'라는 것입니다. 아무래도 데스크탑 OS 점유율 1위 운영체제니까요. 반대로 굳이 힘들여서 리눅스 앱을 개발하더라도, 1%의 사람들밖에 그것을 이용하지 못한다는 얘기가 됩니다. 즉, 같은 힘을 들여서 제작할 거라면 타겟 소비자층이 많은 쪽을 선택하는 게 좋겠죠.

"아니, 윈도우 앱을 만들면 윈도우에서밖에 못 쓰나?" 네, 그렇습니다. 당장 오피스만 봐도 윈도우 버전과 Mac 버전이 구분되어있죠. 사용하는 API도 다르고, 여러 부분이 달라 호환이 어렵습니다. 프로그램은 운영체제에 종속되어 실행된다고 말씀드렸죠. 그런데 이 패러다임이 깨지기 시작합니다. "크로스 플랫폼" 덕분인데요, 하나의 앱을 만들면 플랫폼에 상관 없이 사용할 수 있는 겁니다. 예를 들어서 제가 앱을 하나 개발했습니다. Windows, OS X, Linux 모두 상관 없이 다 이용할 수 있는 겁니다. 그럼 100%의 소비자들이 그것을 사용할 수 있겠죠. 우리가 개발 언어로 C#을 사용하는 이유도, C#은 크로스 플랫폼을 지원하기 때문입니다. 물론 UWP에서는 좀 다르긴 한데..이 얘기는 패스할게요. 크로스 플랫폼에 관한 자세한 내용은 다음 글에서 이어서 하죠.

모바일로 와보면 더 답이 없습니다. 안드로이드가 80%, iOS가 20% 정도를 차지하고 있어요. 사실 우분투, 윈도우 폰, 타이젠, 블랙베리 등등 다른 OS를 개발하고자 하는 시도는 있었는데, 안드로이드가 너무 강력해서 묻혀버렸습니다. 날이 갈 수록 양대산맥은 점점 굳건해지고 있죠.

우리는 윈도우를 타겟으로 개발할 겁니다. 가장 많은 사람들이 이용하고 있고, 개발이 쉬우며, 미성년자도 마음껏 개발자 등록을 할 수 있어요. 실제로 저도 마이크로소프트에 개발자 등록을 했고, 포스팅 작성 시점 기준 (2021. 08. 02) 2개의 앱을 제출한 상태입니다. 다음 글에서는 프로그래밍 언어와 C#에 대해 배경지식을 넓혀보겠습니다.

반응형