본문 바로가기
Computer Science/용어정리

Native programming

by _S0_H2_ 2023. 10. 26.
728x90
반응형

컴퓨터의 특정한 플랫폼 또는 운영 체제에 최적화된 프로그램을 개발하는 것

기계어 또는 특정 플랫폼의 어셈블리 언어를 사용하여 프로그램을 작성하는 것

 

예를 들어, 특정 운영 체제에서 실행되는 프로그램을 개발할 때, 해당 운영 체제의 API (Application Programming Interface)와 라이브러리를 사용하여 프로그램을 작성하는 것으로, 프로그램이 해당 운영 체제에서 최적으로 작동하고 성능이 최대화될 수 있다.

 

C나 C++ 등으로 코딩한 것은 바로 실행할 수 없고, 어셈블리로 변환이 되어 (컴파일) 기계어로 변환되어 실행 가능하다.

 

3층 - C/C++

2층 - 어셈블리 <-- 네이티브

1층 - 기계어

 

그렇지만, 자바의 네이티브는 다르다. 자바에서의 네이티브의 의미는 자바 코드 안에서 C나 C++ 코드를 실행할 수 있는 방법이다. 자바 언어로 짠 코드를 컴파일한 후, 그 컴파일된 소스를 실행하는 주체는 C로 만들어진 자바 런타임이다.

즉 자바 입장에서 자기보다 네이티브는 C죠. C++는 C의 기능추가판..!

 

4층 - 자바 런타임

3층 - C/C++ <-- 네이티브

2층 - 어셈블리

1층 - 기계어

 

그래서 네이티브 라는 표현은 상대적인 표현이라고 한다..

 

ex )

  • Window native - C언어로 만든 모든 프로그램
  • Android native - Java로 만든 모든 프로그램
  • IOS native - 오브젝티브-C로 만든 모든 프로그램
728x90
반응형

'Computer Science > 용어정리' 카테고리의 다른 글

TDD(Test Driven Development)  (0) 2024.03.04
Graceful Shutdown  (0) 2023.12.21
콜백함수, Promise, async/await  (0) 2022.09.12
동기 / 비동기  (0) 2022.09.11