- 선 본론 : 실시간으로 DB 변경사항을 전달받는 원리나 방법이 궁금함니다..




말 편하게 하갯슴다




내가 좀 멍청해서 질문의 질이 떨어져도..


나름대로 오래 고민하다 대가리 허용량 넘겨서 질문남겨봄





아직 신참인 좆찐따 개발자인데 하이브리드앱서비스(ionic framework) 하나 만드는중임


여기에 부가기능으로 페북처럼 1:1 채팅이 포함되걸랑



채팅구현해본적이 없고 그냥 박치기로 만들기엔 시간이 부족할거같기도하고해서


채팅솔루션을 쓰는게 나을거같아서 찾아보았음




맨처음엔 


SendBird 


이걸 파봤는데


기능이 좀 과하게 제공되는거같기도하고


과금플랜 기준이 MAU로 잡혀있는거라


개발중인 서비스가 


회원 대비 채팅이 그렇게 빈번하게 이루어질 서비스가 아니라서


배보다 배꼽이 큰느낌? 


그래서 아쉬움을 머금고 


다음 타자로



firebase 


이걸로 해보기로하고 예제도 한번 만들어봤는데


사용자지정 url 스키마에 근거해서 데이터를 보관하는걸 보니까

(offline 시에도 데이터 저장 후 online 시 데이터 연동가능이란 기능이 핵꼴리긴한데... 애초에 서비스가 상시 인터넷연결 필요한거라 그다지...)


그냥 내가 채팅서버 파는게나을거같더라고

(api서버에 채팅 url스키마까지 같이 관리할라니 뭔가 불편한거같음)





서비스 특성상 대화기록이 저장되고 관리자가 간혹 채팅기록열람이 필요한지라

(이건 약관에 적을거고 사용자가 채팅이용전에 인지하도록 '확실히' 공지할거니 이부분에 중점을 두진말구여)


그냥 단순 Queue 형식+SQLlite 같은 로컬에 기록하는거 말고


DB서버가 필수인데





요... 요고...요고....




일단 채팅 DB 모델링 둘째치고


firebase 처럼 데이터 변화 감지를 실시간으로 하는거..


어케함니꺼... 서버를 aws 위에 올릴거라


불필요한 통신은 피하고싶은데


가능한 방법론들좀 알려주십사 부탁..




나한테 떠오른 방법은 일단 아래 두개뿐...


1. GCM, APN 같은 PushNotification 을 받아서 그때마다 DB조회하는것


2. 짧은주기로 약 (1~3) 초마다 DB를 조회하는것 (DB의 통신량 및 코스트 최적화가 전제)




부끄럽게도 고졸에 국비지원학원 출신이라 네트워크 소켓통신이나 이런걸몰라서;;


WEB firebase 는 푸시알림같은 개념없이 어떻게 저렇게 한걸까..


코어소스 뜯어보기엔 시간이 좀 부족할거같고,


소켓통신 뭐 이런쪽으로 더 편하게 구현하는방법이 있을까?


그럼 어떤기술을 검색해보는게 나으려나.....


아니면 그냥 닥치고 채팅부분만 firebase 쓰는게 나으려나...




안그래도 돌대가리라서 이것만 생각하면 존나 머리아픔.. 


조금만 도와주십셔