2021-22 동계 모각코 2회차 후기

GITHUB로 편집하기

V.IRACKIRACK000

2회차 (2021-12-29)

결과

현재 구현하고자 하는 서버-클라이언트 프로그램은 실시간성이 보장될 필요가 없고, 서버에게 클라이언트가 먼저 보내는 횟수보다 클라이언트가 서버에게 먼저 요청하는 횟수가 더 많다. 여기서 이전에 알아봤던 프로토콜들의 특성을 다시 한번 상기해보면, http/https의 경우에는 1회성 통신을 전제하기 때문에, 클라이언트가 서버에게 요청을 보내고 응답을 받으면 바로 연결이 해제된다. 또한, 서버가 클라이언트에게 바로 정보를 보낼 수 없다. 다만, 연결을 바로 해제한다는 특성 때문에 통신들 사이의 시간적 간격이 큰 경우 사실상 연결이 안되어있던 것과 마찬가지이기 때문에 전력 효율은 높을 것이다. mqtt의 경우에는 연결이 되어있지 않으면서도 연결이 된 것처럼 사용할 수 있는데, 확실한 것은 아니지만 어쨋든 무언가 http보다는 더 리소스를 사용하고 있을 것 같아서 http보다는 전력 효율이 낮을 것이라 생각된다. (아닐지도 모른다.) 다만, 각자가 각자의 토픽에 대해 구독을 하면 통신 주체 둘 중 어느 쪽이라도 먼저 정보를 전송할 수 있다는 것은 장점이다.

정리해보면, mqtt의 경우 실시간에 가까운 정보 업데이트가 필요한 IoT 분야에서 도입될 가능성이 높을 정도로 연결성이 강해보이는데, 이는 내가 만들고자 하는 서버-클라이언트 프로그램과는 크게 합치되지 않는 기능이다. 또한, http를 사용하더라도 firebase를 이용하면 서버쪽에서도 FCM을 통해 먼저 클라이언트로 보낼 수 있다는 것을 알게 되었기에 안드로이드 클라이언트를 생각하고 있는 상황에서 http로의 구현은 문제가 없게 되었다. 그러므로 http를 선택하도록 하겠다.