프로그래밍에서 '네이티브'란? 그리고 React Native에 대해 알아보자

2023. 6. 8. 21:42프로그래밍/잡지식


프로그래밍에서 '네이티브'라는 용어는 여러 가지 의미를 가집니다. 네이티브는 원래 '원래부터 있던'이란 뜻을 가지고 있지만, 프로그래밍의 맥락에서는 '특정 플랫폼이나 환경에 특화되거나 최적화된' 요소를 가리키는 용어로 주로 사용됩니다. 이번 포스트에서는 이 '네이티브'라는 단어가 어떤 상황에서 어떻게 쓰이는지에 대해 살펴보겠습니다.

네이티브의 세 가지 의미


1. 네이티브 언어(Native Language)

네이티브 언어란 시스템이나 플랫폼에서 기본적으로 지원하는 프로그래밍 언어를 의미합니다. 예를 들어, C나 C++는 많은 시스템에서 '네이티브' 언어로 취급됩니다. 이는 이들 언어가 저수준 프로그래밍에 주로 사용되고, 시스템 하드웨어에 가까운 접근을 허용하기 때문입니다.

2. 네이티브 코드(Native Code)

네이티브 코드는 특정 하드웨어나 운영 체제에서 직접 실행될 수 있는 코드를 의미합니다. 네이티브 코드는 특정 프로세서의 기계어로 작성되며, 고수준 언어로 작성된 프로그램이 컴파일러에 의해 변환되어 생성됩니다.

3. 네이티브 앱(Native App)

네이티브 앱은 특정 플랫폼(예: iOS, Android)에 최적화되어 작성된 애플리케이션을 의미합니다. 네이티브 앱은 해당 플랫폼의 전용 프로그래밍 언어(예: Swift나 Objective-C for iOS, Java or Kotlin for Android)로 작성되며, 따라서 해당 플랫폼의 기능을 최대한 활용할 수 있습니다.

그렇다면 React Native는?


React Native는 페이스북에서 개발한 오픈 소스 모바일 애플리케이션 프레임워크입니다. 웹 개발자가 iOS와 Android 애플리케이션을 네이티브 플랫폼에서 직접 실행할 수 있는 코드로 작성할 수 있게 해주는 이 프레임워크는 자바스크립트와 React를 기반으로 합니다.

전통적인 웹 기술을 사용하여 모바일 앱을 개발하는 다른 접근법(예: Cordova 또는 PhoneGap)과는 달리, React Native는 웹뷰 대신 실제 모바일 UI 컴포넌트를 사용합니다. 그 결과로, React Native로 작성된 앱은 '네이티브 앱'처럼 보이고 동작합니다.

React Native의 주요 장점 중 하나는 '학습 한 번으로 어디서든 쓸 수 있다(Learn once, write anywhere)'는 원칙을 따른다는 것입니다. 즉, 개발자가 한 번 React와 JavaScript를 배우면, 그 지식을 이용해 iOS와 Android 양쪽 모두에서 실행되는 앱을 작성할 수 있습니다. 더욱이, 코드의 대부분이 여러 플랫폼에서 공유될 수 있어 개발 시간을 크게 단축시킬 수 있습니다.


프로그래밍에서 '네이티브'라는 단어는 다양한 상황과 맥락에서 사용되며 그 의미 역시 다양합니다. 그러나 그 핵심은 항상 특정 플랫폼이나 환경에 최적화된, '원래부터 있던' 요소를 가리키는 것입니다. React Native는 이런 네이티브 개념을 잘 활용하여 웹 개발자들이 iOS와 Android 플랫폼을 위한 애플리케이션을 효율적으로 개발할 수 있게 도와줍니다.