규칙 54. 네이티브 메서드는 신중하게 사용하라
네이티브 메서드
C나 C++ 등의 네이티브 프로그래밍 언어로 작성된 네이티브 메서드를 호출하는데 이용되는 기능
용도
특정 플랫폼(OS) 고유 기능 사용 (레지스트리, 파일 락 등)
이미 구현되어 있는 라이브러리 사용
성능이 중요한 부분의 처리를 네이티브 메서드에 맡김 (성능향상)
사실, 더 정확한 용도는 기존 작성된 프로그램/시스템과의 연관문제가 가장 큼.
자바 플랫폼이 발전하면서 특정 플랫폼에 있는 기능을 제공
1.4 java.util.prefs를 통해 레지스트리 기능 이용,
1.6 java.awt.SystemTray 통해 시스템 트레이 영역 이용 가능
네이티브 메서드를 사용하면 안 되는 이유
자바 릴리즈 버전이 올라가면서 JVM이 더더욱 빨라짐에 따라 네이티브 메서드 없이도 충분하다.
안전하지 않고(규칙 39), 메모리 훼손문제 및 플랫폼 종속적이라 이식성이 낮음.
디버깅이 어렵고, 이해하기 어려운 난잡한 코드를 작성해야 한다.
요약하자면,
네이티브 메서드 사용을 재고하라.
기존 라이브러리 이용을 위해 굳이 써야한다면 성능 개선용도로 최소한의 정도만 쓰고, 광범위한 테스트를 통한 검증을 거쳐야 한다.