배달앱에서 가장 꽃이라고 할 수 있는 기능이 무엇일까요?
그것은 바로 !!!!!!!!!! 딜레이가 없는 새 주문 알람이다.
가게에서 주문을 넣을때 라이더 어플에서 주문을 확인하고
라이더들은 그 콜을 잡으려고하는데 이게.. 엄청난 경쟁입니다.
그래서 라이더사이에서 누가 먼저 뜨는지 폰 모아놓고 확인하기도 한답니다.
제 어플은.. 딜레이가 있는 어플이였습니다.
3초에 한번씩 주문DB를 긁어오는 형식이기 때문에
3초? 딜레이 있겠어? 하지만 실제로 휴대폰 나열해놓고 쓰면 굉장히 크게 느껴집니다.
이걸 해결하기 위해 다양한 플렛폼을 만져봤습니다.
1. 구글 파이어베이스
이걸 푸쉬 알람으로 검색하면 많이 검색되는데 푸쉬알람은 일단 무료입니다.
그래서 많이 사용하는거 같습니다.
파이어베이스안엔 다양한 기능이 있는데 그중 실시간데이터베이스가 제가 사용해보려고 했던
것 중에 하나입니다.
데이터가 수정이 되면 연결된 수백 수천개의 어플이 동시에 수정된다는 아~~주 대단한 메리트가
있는 그리고 대단히 안정화된 플렛폼 중에 하나입니다.
실제로 안드로이드에 이걸 넣고 테스트까지 완료했으나
지금 쓰는 웹서버는 다 php로 만들고 있고, 실시간데이터베이스 라이브러리를 php로 쓰려면
php7.0이상이 되어야하는데 , 현재 5.4 버전을 쓰고 있어
업데이트를해서 써야하나?? 고민하고 있던 찰나에 대단한걸 알게 되었다.
저는 적용하지 못했으나 실시간데이터베이스는 빨리 만들어야되는 사람들한테는
아주 유용한것같다. 하지만 유저가 많아지면 연결 건수도 많아지고, 데이터 용량이 커진다면,
그 과금이 .. 잘 생각하고 넣어야 될거 같다.
2. 아마존 서버
사실 좀 비싸도 아마존에서 제공하는 다양한 인스턴스를 써서 만들면 진짜 그냥 최고다.
이 어플을 만들기 전에 구글다니는 남자친구가 자기는 서버만들고 서버 api로 다 만들거라고
하길래 그래 니가 도와줄거 아니면 말라니까 도와준다해놓고 설명을 개떡같이 어렵게하고
의견도 안 맞고 일주일 싸우고 헤어질...뻔한..
아무튼 초심자한테는 어려운게 너무 당연하다. 아마존 공식 동영상보면서 강의도 듣고 했지만
어려웠다.
그런데 요즘 서버 안들어주는 회사도 있으니 초심자에 돈이 있으면 거기 맡겨서 서버 만드는것도??
3. 직접 소켓서버 만들기
안드로이드 어플이 서버에서 데이터를 받아오려고한다.
찬찬히 생각해보면 당연히 서버와 안드로이드 어플이 연결 되어 있어야지
서버가 안드로이드에게 지령을 내릴 수 있을게 아니겠어요?
그러니까 파이어베이스도 연결된 기기를 보여주고
배민 개발일지봐도 소켓서버를 직접만들었다는 이야기가 있었다.
그래서 배민도 하는데 나도 해보자!! 해서 시작해보려고 했으나
php로 소켓서버를 만드는것부터 난관이였다.
물론 시간이 있으면 나도 할 수 있지만 바쁜관계로 ㅎㅎ;;;
좀 더 효율적인걸 찾아보자 하게 되었다 ^^
4. RabbitMQ
최근에 푸드테크랑 계약하면서 푸드테크 개발자랑 테스트하면서 연락하게 되었는데
그분에게 얼굴 철판깔고 혹시 일반적으로 어떻게 개발하는지 물어봤다.
이걸 처음엔 이해를 잘 못했지만 서버를 만들고 써보니 이겁니다.
우선 레빗엠큐는 메세징서비스일종인데
가게는 발행을하고 안드로이드어플은 구독을하여 안드로이드가 데이터를 받는 형식이다.
결국 위와같이 서버와 안드로이드를 연결시켜 데이터를 보내고 받고하는데
그걸 간단하게 레빗엠큐서버가 도와주는 것이다.
여러분 제발 이거 써봐주세요 진짜 최곱니다.
일주일만에 다 만들고 아주 만족스럽게 쓰고 있습니다 :)
다양한 실시간 정보를 받아는 방법을 알아봤는데
사실 아마존 서버를 만드는게 가장 좋다고 생각하지만
그게 안된다면 레빗엠큐를 써보는걸 추천하고
더 빠르게 개발하기 위해서는 파이어베이스를 써보는 것도 좋습니다.
그럼 읽어주셔서 감사합니다.
'배달앱 개발일지' 카테고리의 다른 글
20210407 배달대행 예약 시스템 도입 (1) | 2021.04.07 |
---|---|
20210402 배달대행 바로가기(javafx Restoring normal page) (1) | 2021.04.02 |
20210122 푸드테크 입성!!!!!!!! (0) | 2021.01.22 |
20200916 개발일지 (0) | 2020.09.16 |
20200909 개발일지 (0) | 2020.09.09 |
댓글