[Effective Java] 아이템 66 : 네이티브 메서드는 신중히 사용하라

Loopy·2022년 12월 3일
0

이펙티브 자바

목록 보기
64/76
post-thumbnail

자바 네이티브 인터페이스란, 자바 프로그램이 네이티브 메서드를 호출하는 기술이다.

🔖 네이티브 메서드
C/C++ 같은 네이티브 프로그래밍 언어로 작성한 메서드

일반적인 네이티브 메서드의 주요 쓰임은 다음과 같이 세가지이다.

주요 쓰임새

  1. 레지스트리 같은 플랫폼 특화 기능
    자바 역시 9 이상부터는 OS 프로세스에 접근할 수 있는 API를 제공한다.
  2. 네이티브 코드로 작성된 기존 라이브러리 사용
  3. 성능 개선의 목적으로 성능에 영향을 주는 부분만 사용
    JVM 역시 발전했기 때문에 성능 개선의 목적으로 사용하는 것은 권장하지 않는다.

네이티브 메서드의 단점

하지만, 네이티브 메서드는 치명적인 단점을 가지고 있으므로 신중히 사용해야 한다.

  1. 네이티브 언어는 메모리 훼손 오류로부터 안전하지 않다.
  2. 자바보다 플랫폼을 많이 타서 이식성이 낮다.
  3. 가비지 컬렉터는 네이티브 메모리를 자동 회수하지 못하기 때문에 추적할 수 없다.
  4. 성능, 비용, 디버깅 측면에서 모두 좋지 않다.

📚 핵심 정리
네이티브 메서드가 성능을 개선해주는 일은 많지 않기 때문에 사용하려거든 신중히 생각하라. 저수준 자원이나 네이티브 라이브러리를 사용해야만 해서 어쩔 수 없더라도 네이티브 코드는 최소한만 사용하고 철저히 테스트하자.

profile
개인용으로 공부하는 공간입니다. 잘못된 부분은 피드백 부탁드립니다!

0개의 댓글