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

네이티브 메서드란 C나 C++ 같은 네이티브 프로그래밍 언어로 작성한 메서드를 말한다. 전통적으로 네이티브 메서드의 주요 쓰임은 다음과 같다.

  • 레지스트리 같은 플랫폼 특화 기능을 사용한다.
    • 자바가 성숙해가면서 네이티브 메서드를 사용할 필요가 계속 줄어들고 있다.
    • 자바9의 process API 는 OS 프로세스에 접근하는 길을 열어주었다.
  • 네이티브 코드로 작성된 기존 라이브러리를 사용한다.
    • 네이티브 라이브러리는 고성능의 다중 정밀 연산이 필요하다면 GMP를 고려해봐도 좋다.
  • 성능 개선을 목적으로 성능에 결정적인 영향을 주는 영역만 따로 네이티브 언어로 작성한다.

네이티브 메서드는 메모리 훼손 오류로부터 더 이상 안전하지 않다. 가비지 컬렉터가 네이티브 메모리는 자동 회수하지 못하고, 심지어 추격조차 할 수 없다. 또한, 네이티브 메서드와 자바 코드 사이의 “접착 코드(glue code)”를 작성해야 하는데, 귀찮은 작업이기도 하고 가독성도 떨어진다.

댓글남기기