child process

Jaymee·2021년 9월 13일
0

android 와 양방향 통신하기 위해 서버에서 restful api가 아닌 socket io 프로토콜을 사용하였다.
tensorflow lite 를 사용하여 android와 통신하는 것이 가장 좋은 방법이지만, 시간적 여유가 없어서 서버와 통신하는 방식으로 구현하다가 중요한 점을 알게 되었다.
android에서 서버로 받은 데이터를 학습모델에 입력값으로 넣어야 하기 때문에 우리는 nodejs와 python script를 연동하는 방법을 시도했다.

  1. child_process 모듈을 사용하여 자식프로세스를 생성한다.
  2. python script를 실행하고 반환값을 받는다.

이렇게 nodejs 와 python script 간의 연동을 성공했다.
또한 옵션으로 파라미터를 포함하여 연동할 수 있었다.

하지만 문제가 발생했다.
nodejs와 python 간의 주고 받는 데이터의 크기가 중요한 문제였다.
android에서 넘어온 데이터는 영상을 캡쳐한 byte array이다.
즉 사이즈가 매우 컸다. 결국 이 큰 데이터를 python script로 넘기는 것을 실패하였다...
혹시나 해서 작은 사이즈의 데이터로 테스트 해봤는데, 성공하였다.

✅ 너무 큰 사이즈의 데이터는 child_process 모듈로 주고 받을 수 없다 ❌

  • chaqoupy는 android background camera api와 통신이 되지 않는다.
  • response없이 request를 반복적으로 보내기 위해서는 restful api가 아닌 socket io protocol을 사용해야 한다.
  • child_process 모듈을 통해서는 큰 사이즈의 데이터를 주고 받을 수 없다. (그래서 이런 방식으로 하지 않고 tensorflow lite 라는 android 전용 새로운 툴을 만들어냈구나...)

https://github.com/jjmmll0727/Capstone_Design/tree/main/socketio

profile
backend developer

0개의 댓글

관련 채용 정보