본문 바로가기

잡다한 것

멀티플랫폼, 하이브리드 플랫폼, 크로스 플랫폼 차이

728x90
반응형
SMALL

멀티플랫폼, 하이브리드 플랫폼, 크로스 플랫폼 차이

 

3개가 다른 걸 어제 하우스메이트를 통해 알았습니다. 🥲 그래서 혼나고 오늘 알아보려합니다.

 

 

멀티플랫폼은 여러 개의 플랫폼(예: iOS, Android, 웹 등)에서 동작하는 애플리케이션을 의미합니다. 각 플랫폼에 맞게 코드를 작성하여 각각의 플랫폼에서 동작할 수 있도록 구현합니다. ( 대표 언어: Java, Kotlin, C# )

  • 장점: 하나의 언어와 프레임워크를 사용하여 여러 플랫폼에서 앱을 개발할 수 있다는 점이 가장 큰 장점입니다. 코드 재사용성이 높아지며 개발 시간과 비용을 절약할 수 있습니다.
  • 단점: 다양한 플랫폼을 지원하다 보니 모든 기능을 최적화하거나 모든 플랫폼에서 완벽하게 동작하는 것이 어렵습니다.

*** 플랫폼마다 코드를 조금씩 다르게 작성하는 이유? *** 
각각의 플랫폼이 가지고 있는 API, 라이브러리, SDK 등이 서로 다르기 때문입니다.

하지만 멀티플랫폼 언어를 사용하면, 코드를 다른 플랫폼에 쉽게 *포팅할 수 있도록 하기 위해 일부 코드를 공유할 수 있습니다. 이는 플랫폼 간의 차이점을 최소화하고, 개발 및 유지보수 비용을 절감하는 데 도움이 됩니다.

또한 몇몇 멀티플랫폼 언어에서는 각 플랫폼에서 실행되는 코드 블록을 구분하기 위한 프리프로세서(preprocessor)나 케이스(case) 등을 제공하기도 합니다. 이를 이용하여 플랫폼 간의 차이점을 처리할 수 있습니다.

 

*** 포팅이란? ***

포팅(Porting)이란, 하나의 소프트웨어가 개발된 플랫폼에서 다른 플랫폼으로 이식하는 과정을 말합니다.

 

 

하이브리드 플랫폼은 웹 기술(HTML, CSS, JavaScript)을 활용하여 네이티브 애플리케이션과 유사한 경험을 제공하는 애플리케이션을 의미합니다. 하이브리드 앱은 모바일 웹 페이지를 포함하고, 네이티브 기능을 사용하기 위해 네이티브 코딩이 필요합니다. ( 대표언어:

JavaScript )

  • 장점: HTML, CSS, JavaScript 등 웹 기술을 이용해 앱을 개발할 수 있기 때문에 쉬운 개발과 유지보수, 빠른 프로토타이핑이 가능합니다. 또한, 웹 기술을 활용하기 때문에 다양한 디바이스에서 호환성이 좋습니다.
  • 단점: 네이티브 앱에 비해 성능이 떨어지고, 플랫폼의 기능을 모두 활용하지 못하는 경우가 있습니다.

***네이티브 기능엔 어떤 것이 있을까? ***

예를 들어, 앱에서 카메라를 포함한 푸시 알림위치 정보파일 시스템 액세스 등과 같은 특정 기능을 말하며, 제공하는 네이티브 API를 호출하기 위해 네이티브 언어를 사용합니다. 

 

크로스 플랫폼은 하나의 코드 베이스로 여러 개의 플랫폼에서 애플리케이션을 빌드하고 배포하는 것을 의미합니다. 크로스 플랫폼은 일반적으로 프레임워크와 라이브러리를 사용하여 하나의 코드 베이스에서 여러 플랫폼에 대한 애플리케이션을 개발할 수 있습니다. 예를 들어 React Native, Xamarin, Flutter 등이 있습니다. ( 대표언어: Flutter - Dart )

  • 장점: 하나의 코드베이스로 여러 플랫폼에서 앱을 개발할 수 있기 때문에 개발 비용이 절감됩니다. 또한, 개발 시간도 단축됩니다.
  • 단점: 네이티브 앱에 비해 성능이 떨어질 수 있으며, 각 플랫폼의 특징과 기능을 모두 지원하지 못할 수 있습니다. 또한, 개발 도구의 한계로 인해 제한적인 개발 경험을 제공할 수 있습니다.

*** 여담 ***

엄청 유명한 Alibaba를 포함해 시중의 플러터 앱을 알고 있는데, 사실 사용자 입장에서 성능이 떨어진다는 걸 전혀 못느낍니다. 오히려 주변의 평을 보면 시중의 많은 앱들이 과하게 꾹꾹 눌러담아 놓은 느낌이라 좀 거북하다는 평도 있습니다. 네이티브를 공부하는 입장이지만 언젠가 크로스 플랫폼도 해보고 싶습니다.

728x90
반응형
LIST

'잡다한 것' 카테고리의 다른 글

MyStarryCompanion  (0) 2023.04.19
개인정보처리 방침  (0) 2023.04.19
정보처리기사 - 관계대수 기호  (0) 2023.03.28
NCS - 정보기술6  (0) 2023.03.14
NCS - 정보기술5  (0) 2023.03.14