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 |