규칙 54. 네이티브 메서드는 신중하게 사용하라

네이티브 메서드

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

  • 용도

    • 특정 플랫폼(OS) 고유 기능 사용 (레지스트리, 파일 락 등)

    • 이미 구현되어 있는 라이브러리 사용

    • 성능이 중요한 부분의 처리를 네이티브 메서드에 맡김 (성능향상)

    • 사실, 더 정확한 용도는 기존 작성된 프로그램/시스템과의 연관문제가 가장 큼.

  • 자바 플랫폼이 발전하면서 특정 플랫폼에 있는 기능을 제공

    • 1.4 java.util.prefs를 통해 레지스트리 기능 이용,

    • 1.6 java.awt.SystemTray 통해 시스템 트레이 영역 이용 가능

네이티브 메서드를 사용하면 안 되는 이유

  • 자바 릴리즈 버전이 올라가면서 JVM이 더더욱 빨라짐에 따라 네이티브 메서드 없이도 충분하다.

  • 안전하지 않고(규칙 39), 메모리 훼손문제 및 플랫폼 종속적이라 이식성이 낮음.

  • 디버깅이 어렵고, 이해하기 어려운 난잡한 코드를 작성해야 한다.

요약하자면,

  • 네이티브 메서드 사용을 재고하라.

  • 기존 라이브러리 이용을 위해 굳이 써야한다면 성능 개선용도로 최소한의 정도만 쓰고, 광범위한 테스트를 통한 검증을 거쳐야 한다.

참고

results matching ""

    No results matching ""