반응형
자바의 네이티브(Java native interface,JNI)
· C나 C++등의 네이티브 프로그래밍 언어로 작성된 네이티브 메서드를 호출하는데 이용되는 기능
· 네이티브 메서드가 수행되는 계산은 네이티브 언어로 실행되며 자바언어로 전달된다.
용도
· 레지스트리나 파일 락 같은 특정 플랫폼에 고유한 기능을 이용
· 이미 구현된 라이브러리를 이용
· 성능이 중요한 부분의 처리를 네이티브 언어에 맞길 수 있다.
하지만, 네이티브 메서드를 통해 성능을 개선하는 것은 추천하고 싶지 않다.
네이티브 메서드에는 문제가 있다.
· 안전하지 않다.
· 메모리 훼손 문제로부터 자유로울 수 없다.
· 플랫폼에 종속적이다.
· 이식성이 낮다.
· 디버깅하기가 어렵다.
· 네이티브 코드를 넘나드는 비용때문에 성능을 떨어트릴 수 있다.
· 이해하기 난감한 접착코드를 작성해야 한다.
그러므로,
· 네이티브 메서드를 사용하는것은 재고하는것을 추천하며, 굳이 사용해야 한다면 성능 개선 용도로만 사용하라.
· 저수준 자원이나 기존 라이브러리를 이용하기 위해 사용한다면, 네이티브 코드는 가능하면 줄이고 광범위한 테스트를 거치도록
· 네이티브 코드에 있는 작은 코드는 시스템 전체를 훼손할 수 있다.
반응형
'IT > Programming' 카테고리의 다른 글
<Effective Java> RULE 52 객체를 참조할 때는 그 인터페이스를 사용하라 (0) | 2023.04.26 |
---|---|
<Effective Java> RULE 53 리플렉션 대신 인터페이스를 이용하라 (0) | 2023.04.26 |
<Effective Java> RULE 55 신중하게 최적화 하라 (0) | 2023.04.26 |
<Effective Java> RULE 56 일반적으로 통용되는 작명 관습을 따르라 (0) | 2023.04.26 |
<Effective Java> RULE 57 예외는 예외적 상황에만 사용하라 (0) | 2023.04.26 |