• 자바 네이티브 인터페이스(JNI)는 자바 프로그램이네이티브 메소드를 호출하는 기술이다.
  • 네이티브 메소드란 C나 C++같은 네이티브 프로그래밍 언어로 작성한 메소드를 말한다.
  • 네이티브 메소드의 쓰임새
    • 레지스트리 같은 플랫폼 특화 기능 사용
    • 네이티브 코드로 작성된 기존 라이브러리를 사용
    • 성능 개선을 목적으로 성능에 결정적인 영향을 주는 영역만 네이티브 언어로 작성

 

 

성능을 개선할 목적으로 네이티브 메소드를 사용하는 것은 거의 권장하지 않음

  • 과거와 달리 Java의 성능이 많이 발전함
  • 네이티브 언어는 안전하지 않으므로 메모리 훼손 오류로부터 안전하지 않음
  • 네이티브 언어는 자바보다 플랫폼을 많이 타서 이식성 낮음
  • 디버깅 어려움
  • GC가 네이티브 메모리는 자동 회수하지 못하고 추적도 못함

+ Recent posts