capstone design - socket.io - 2
android 와 양방향 통신하기 위해 서버에서
tensorflow lite 를 사용하여 android와 통신하는 것이 가장 좋은 방법이지만, 시간적 여유가 없어서 서버와 통신하는 방식으로 구현하다가 중요한 점을 알게 되었다.
android에서 서버로 받은 데이터를 학습모델에 입력값으로 넣어야 하기 때문에 우리는 nodejs와 python script를 연동하는 방법을 시도했다.
또한 옵션으로
하지만 문제가 발생했다.
nodejs와 python 간의 주고 받는 데이터의
android에서 넘어온 데이터는 영상을 캡쳐한
즉 사이즈가 매우 컸다. 결국 이 큰 데이터를 python script로 넘기는 것을 실패하였다...
혹시나 해서 작은 사이즈의 데이터로 테스트 해봤는데, 성공하였다.
✅ 너무 큰 사이즈의 데이터는




restful api
가 아닌 socket io
프로토콜을 사용하였다. tensorflow lite 를 사용하여 android와 통신하는 것이 가장 좋은 방법이지만, 시간적 여유가 없어서 서버와 통신하는 방식으로 구현하다가 중요한 점을 알게 되었다.
android에서 서버로 받은 데이터를 학습모델에 입력값으로 넣어야 하기 때문에 우리는 nodejs와 python script를 연동하는 방법을 시도했다.
child_process
모듈을 사용하여 자식프로세스를 생성한다.- python script를 실행하고 반환값을 받는다.
또한 옵션으로
파라미터
를 포함하여 연동할 수 있었다.
하지만 문제가 발생했다.
nodejs와 python 간의 주고 받는 데이터의
크기
가 중요한 문제였다.android에서 넘어온 데이터는 영상을 캡쳐한
byte array
이다. 즉 사이즈가 매우 컸다. 결국 이 큰 데이터를 python script로 넘기는 것을 실패하였다...
혹시나 해서 작은 사이즈의 데이터로 테스트 해봤는데, 성공하였다.
✅ 너무 큰 사이즈의 데이터는
child_process
모듈로 주고 받을 수 없다 ❌
전송에 실패한 코드 (big size data)


전송에 성공한 코드 (small size data)


test를 위한 python script

android에서 받은 data buffer 0 0 0 000000.... 를 보낼 시 데이터의 사이즈가 너무 커서 python script로 전송을 실패하는 것을 볼 수 있다.
반면에 임시 데이터 "sendingdata" 를 보낼 시에는 데이터의 사이즈가 작아 python script와의 연동이 성공함을 볼 수 있다.
✅ 이번학기에는 이렇게 끝났지만, 많은 시행착오를 통해 성장할 수 있는 중요한 시간이었다.

android에서 받은 data buffer 0 0 0 000000.... 를 보낼 시 데이터의 사이즈가 너무 커서 python script로 전송을 실패하는 것을 볼 수 있다.
반면에 임시 데이터 "sendingdata" 를 보낼 시에는 데이터의 사이즈가 작아 python script와의 연동이 성공함을 볼 수 있다.
✅ 이번학기에는 이렇게 끝났지만, 많은 시행착오를 통해 성장할 수 있는 중요한 시간이었다.
- chaqoupy는 android background camera api와 통신이 되지 않는다.
- response없이 request를 반복적으로 보내기 위해서는 restful api가 아닌
socket io protocol
을 사용해야 한다. - child_process 모듈을 통해서는 큰 사이즈의 데이터를 주고 받을 수 없다. (그래서 이런 방식으로 하지 않고
tensorflow lite
라는 android 전용 새로운 툴을 만들어냈구나...)