< 기존 접근 방법 >
1. code 난독화 ex) Python Obfuscator, 암호화 ex) Python Obfuscator, gpg
> gpg는 암호화는 해킹대비. 사용자가 쉽게 해제 가능
> obfuscator 는 코드를 헥사코드로 변환해줌.
실행파일로 배포 ex) pyinstaller .exe
일반 파이썬 파일이 아닌 ros 패키지를 실행파일로 만드는건 난이도가 너무 높음..
< 대안 제시 >
빌드 후에 workspace/src 기존 패키지 폴더는 삭제해도 해당 패키지 명령어 사용가능(ros2 run, ros2 launch etc..)
python은 안됨. cython은 되지만 build/ install/ 폴더에 기존 .py파일 지우면 안됨. c++ 패키지(ament_cmake)는 됨.
cython 형태로 변경해서 컴파일
cython이란? python은 cpython으로 구성되어있음. cython은 python이 cpyhon에 접근하기 쉽도록 해주는 이 둘의 중간단계 언어
컴파일이 가능.
참고:
python 파일을 cython 파일로 빌드
기존 python 파일을 C++ 파일로 변경
그냥 cpp 파일로 변경하는 걸로 결정.
과정은 컴파일 후 기존 패키지 삭제가 끝
c++ 은 빌드 후 build/ install/ 내부에 기존 파일 생성 X 컴파일 되어 확인할 수 없음.
<결론>
cython 파일로 빌드하는 걸로 결정
nav2는 c++ command api를 제공하지 않음.
참고 : Steve Macenski 형님의 칼거절