자바 네이티브 인터페이스는 자바 프로그램이 네이티브 메서드를 호출하는 기술이다. 여기서 네이티브 메서드란 C나 C++ 같은 네이티브 프로그래밍 언어로 작성한 메서드를 말한다.
전통적으로 네이티브 메서드의 주요 쓰임은 다음 세가지 이다.
- 레지스트리 같은 플랫폼 특화 기능 사용
- 네이티브 코드로 작성된 기존 라이브러리를 사용
- 성능 개선을 목적으로 성능에 결정적인 영향을 주는 영역만 따로 네이티브 언어로 작성
성능을 개선할 목적으로 네이티브 메서드를 사용하는 것은 거의 권장하지 않는다.
네이티브 메서드에는 심각한 단점이 있다. 네이티브 언어가 안전하지 않으므로(아이템50) 네이티브 메서드를 사용하는 애플리케이션도 메모리 훼손 오류로부터 더 이상 안전하지 않다. 또한 디버깅도 어렵고, 이식성도 낮으며, 가비지 컬렉터가 네이티브 메모리는 자동 회수하지 못하고 추적도 할 수 없다.
마지막으로 네이티브 메서드와 자바 코드 사이의 접착 코드를 작성해야하는데, 이는 귀찮은 작업이며 가독성도 떨어진다.
'Effective Java' 카테고리의 다른 글
[Effective Java] 아이템68 일반적으로 통용되는 명명 규칙을 따르라 (0) | 2021.08.01 |
---|---|
[Effective Java] 아이템67 최적화는 신중히 하라 (0) | 2021.08.01 |
[Effective Java] 아이템65 리플렉션보다는 인터페이스를 사용하라 (0) | 2021.08.01 |
[Effective Java] 아이템64 객체는 인터페이스를 사용해 참조하라 (0) | 2021.08.01 |
[Effective Java] 아이템63 문자열 연결은 느리니 주의하라 (0) | 2021.08.01 |