- 자바의 네이티브 인터페이스(Java Native Interface, JNI)는 자바 프로그램이 네이티브 메서드를 호출하는 기술이다.
- 네이티브 메서드란 C나 C++같은 네이티브 프로그래밍 언어로 작성한 메서드를 말한다.
- 즉, 자바 애플리케이션에서 C나 C++언어로 된 파일을 읽어들여 메소드 형태로 호출할 수 있게 하는 것이다.
public class NativeExample {
// 네이티브 메서드 선언
public native void nativeMethod();
// 정적 블록에서 라이브러리 로드
static {
System.loadLibrary("NativeLibrary");
}
// 메인 메서드
public static void main(String[] args) {
NativeExample example = new NativeExample();
// 네이티브 메서드 호출
example.nativeMethod();
}
}
<단점>
- 네이티브 언어는 자바보다 플랫폼을 많이 타서 이식성이 낮고 디버깅도 더 어렵다.
- 가비지 컬렉터가 네이티브 메모리는 자동 회수하지 못하고 심지어 추적조차 할 수 없다.
- 네이티브 메서드와 자바 코드 사이에 접착 코드(glue code)를 작성해야 하는데, 이는 귀찮을뿐더러 가독성도 떨어진다.
<결론>
- 네이티브 메서드가 성능을 개선해 주는 일은 많지 않다.
- 최소한만 사용하고 철저히 테스트 하라.
'이펙티브 자바 > 9장 일반적인 프로그래밍 원칙' 카테고리의 다른 글
아이템 68 일반적으로 통용되는 명명 규칙을 따르라 (0) | 2023.12.14 |
---|---|
아이템 67 최적화는 신중히 하라 (0) | 2023.12.14 |
아이템 65 리플렉션보다는 인터페이스를 사용하라 (0) | 2023.12.14 |
아이템 64 객체는 인터페이스를 사용해 참조하라 (0) | 2023.12.14 |
아이템 63 문자열 연결은 느리니 주의하라 (0) | 2023.12.13 |