IT/Programming / / 2023. 4. 26. 13:34

<Effective Java> RULE 54 네이티브 메서드는 신중하게

반응형

 

자바의 네이티브(Java native interface,JNI)

· C나 C++등의 네이티브 프로그래밍 언어로 작성된 네이티브 메서드를 호출하는데 이용되는 기능

· 네이티브 메서드가 수행되는 계산은 네이티브 언어로 실행되며 자바언어로 전달된다.

 

용도

· 레지스트리나 파일 락 같은 특정 플랫폼에 고유한 기능을 이용

· 이미 구현된 라이브러리를 이용

· 성능이 중요한 부분의 처리를 네이티브 언어에 맞길 수 있다.

 

하지만, 네이티브 메서드를 통해 성능을 개선하는 것은 추천하고 싶지 않다.

 

네이티브 메서드에는 문제가 있다.

· 안전하지 않다.

· 메모리 훼손 문제로부터 자유로울 수 없다.

· 플랫폼에 종속적이다.

· 이식성이 낮다.

· 디버깅하기가 어렵다.

· 네이티브 코드를 넘나드는 비용때문에 성능을 떨어트릴 수 있다.

· 이해하기 난감한 접착코드를 작성해야 한다.

 

그러므로,

· 네이티브 메서드를 사용하는것은 재고하는것을 추천하며, 굳이 사용해야 한다면 성능 개선 용도로만 사용하라.

· 저수준 자원이나 기존 라이브러리를 이용하기 위해 사용한다면, 네이티브 코드는 가능하면 줄이고 광범위한 테스트를 거치도록

· 네이티브 코드에 있는 작은 코드는 시스템 전체를 훼손할 수 있다.

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유