Nodejs 에서 C/C++ 코드를 이용하는 방법

May 06, 2016 | 0 Minute Read

Nodejs 에서 C/C++ 코드(네이티브 바이너리)를 이용하는 방법에는 아래와 같은 세 가지 방법이 있다.

  1. addons 사용 : 소스가 C/C++로 되어 있고 소스(헤더)에 접근 가능할 때

  2. ffi 사용 : 공유 라이브러리에 접근 가능 한 경우. 또는 소스에 접근은 가능하나 소스가 C/C++이 아닐 경우거나 레거시가 너무 심한 경우

  3. fork(child_process) 사용 : 공유 라이브러리나 소스가 없고 실행파일만 사용 가능 할 때

성능은 addons > ffi » fork 순, 구현 난이도는 반대. 추가적으로 addons 를 사용하는 것이 Javascript 코드를 가장 깔끔하게 만들 수 있다. (라이브러리를 바인딩하기 위한 코드가 없어지므로)

ffi 는 node-ffi 를 addons 는 Nan 을 사용하면 편리하다.

생각할 것은, 어떤 방식을 택할 것이냐도 어려운 문제지만, ffi 나 addons 를 사용할 때 async 를 사용할 것이냐 말 것이냐를 선택하는 것이 더 어려운 문제가 아닐런지.