자바 언어로 작성된 프로그램이 네이티브 코드(C 또는 C++로 작성된 코드)와 상호 작용할 수 있도록 하는 프로그래밍 인터페이스
자바 언어는 바이트 코드(Byte Code)로 컴파일 되어 자바 가상 머신(JVM)에서 실행되지만,
.java 파일을 컴파일한 .class 파일을 JVM에서 실행시킴
JNI를 사용하면 자바로 작성된 코드를 컴파일하여 JVM(Java Virtual Machine)이 아닌 원시 운영체제가 이해할 수 있는 형태로 컴파일된 네이티브 코드로 생성할 수 있습니다.
기존 라이브러리와의 통합
이미 C, C++ 등으로 작성된 기존의 라이브러리를 활용하고자 할 때 JNI를 사용
하드웨어 리소스 접근이 용이
자바와 네이티브 코드 간의 통합을 가능하게 하면서, 특정 작업에 대해선 자바의 이점을 살리면서도 성능이나 하드웨어 접근과 같은 부분에서 네이티브 코드의 이점을 활용할 수 있다.
성능 향상이 필요한 부분에
JVM을 거쳐야하는 자바 언어는 일부 계산이나 데이터 처리 작업에서는 성능이 떨어질 수 있지만, 네이티브 코드는 C, C++과 같이 중간 인터프리터 없이 OS가 컴파일할 수 있는 코드로 보다 빠른 성능을 보여준다.
JNI는 자바 언어의 이식성과 편의성을 유지하면서도 특정한 성능이나 하드웨어 접근 등의 요구사항을 충족시킬 때 사용한다.
두마리 토끼를 잡기 위해..