| 카카오톡 같은 앱 만들어주세요
페이지 정보
작성자 최고관리자 작성일23-04-10 11:09 조회28,994회 댓글0건본문
스마트폰이 등장하기 전에는 통신사를 통한 문자메시지 기능이나 네이트온, 버디버디, 세이클럽 같은 PC 메신저로 연락을 주고받았으나 스마트폰이 세상에 발표되고 2010년 카카오톡이 출시되며 본격적인 세대교체가 이루어졌습니다.
카카오톡 이전에는 WhatsApp이라는 채팅 앱이 있었지만 카카오톡의
등장 후 국내에서는 카카오톡으로 모두 갈아타게 되고 이제는 카카오톡을 쓰지 않는 사람을 찾아보기 힘들 정도로 대중화가 되었죠.
이런 카카오톡은 현재 사업을 많이 확장시켜 카카오페이, 카카오택시
등 여러 편리한 기능들이 많지만 결국 근본은 채팅입니다.
채팅 기능은 채팅 플랫폼만 아니라 중고거래, 부동산, 쇼핑몰 등 다양한 방면의 플랫폼에서도 활용이 가능한 주력 기능 중 하나입니다.
채팅 기능이 들어가는 플랫폼 개발에 카카오톡처럼 해주세요라는 말은 빠지지 않고 들어갑니다.
하지만 같은 채팅이라도 구현 방법에 따라 실시간 / 비실시간 채팅으로 나눠질 수 있습니다.
비동기식 채팅
비동기식 채팅은 겉모습만 채팅처럼 꾸민 후 실제로는 게시판 형식으로 구현이 된 기능이죠. 사용자가 새로고침을 해야 정보가 변동되는 형식입니다.
비동기식 채팅으로 구현하게 되면 개발 기간도 짧고 비용도 많이 들어가지 않습니다.
하지만 요즘에는 비동기식 채팅으로 구현한 플랫폼은 찾아보기 힘듭니다. 이미
많은 서비스에서 실시간 채팅을 사용하여 비동기식 채팅을 사용한다면 도태되기 딱 좋은 서비스밖에 되지 않으니까요
동기식 채팅(실시간 채팅)
동기식 채팅이란 카카오톡처럼 서로 메시지를 주고받는 형식이며 상대방이 보낸 메시지가 실시간으로 본인에게 보여지는
형식입니다.
하지만 같은 동기식 채팅이라도 구현하는 기능에 따라 개발 공수가 천차만별로 달라집니다.
단순히 메시지만 보내는 채팅에도 1:1, 1:n, n:n 처럼 인원수를
다르게 처리할 수 있고 메시지 뿐만 아니라 이미지나 동영상 등의 파일도 전송할 수 있습니다.
카카오톡 같은 채팅 기능 만들어주세요
카카오톡의 채팅은 정말 많은 기능이 구현되어 있습니다.
하지만 카카오톡도 처음부터 이렇게 많은 기능이 구현되어 있지는 않고 서서히 서비스를 발전시키며 지금의 형태가
된 것입니다.
그래서 제작사에 의뢰를 하며 ‘카카오톡 같은 채팅 기능 만들어주세요’ 라는 요청을 하면 제작사측은 정말 큰 범위를 생각할 수 있고 오히려 단순한 채팅 UI정도만 따라서 만드는 범위로도 생각 할 수 있습니다.
당장 생각나는 카카오톡의 채팅 기능만 나열해 보겠습니다.
전화번호부 자동 친구 등록, 단체 톡방 만들기, 보이스톡, 페이스톡, 채팅
캡쳐, 음악 공유, 라이브톡, 오픈톡 채널 등등 하나하나가 메인 기능에 가까운 기능들이 가득합니다.
그래서 카카오톡 같은 개발을 원하신다면 상세하게 어떤 기능이 들어갈지 생각 후 제작사에게 문의를 해야 합니다.
만약 정말 최대한 많은 기능을 요청한다면 개발 공수 및 비용은 기하급수적으로 늘어나겠죠.
채팅을 구현하는 방법
그냥 단순하게 채팅만 만들 계획이고 추가 기능은 점차 발전시킬 계획이시라면 채팅을 구현하는 방법에 대해 어느정도
알고 있는 게 좋을 듯합니다.
실시간 채팅을 구현하는 방법은 여러가지 방법이 있지만 가장 대표적으로 사용하는 2가지 방법을 소개해 드리겠습니다.
1. 파이어베이스(Firebase)
구글에서 제공하는 파이어베이스는 모바일, 웹 애플리케이션 개발 보조 플랫폼입니다.
자세한 설명은 아래 링크를 통해 더 알아볼 수 있습니다.
채팅 기능은 파이어베이스 기능 중 Realtime Database 제품을 사용하여 개발합니다.
동기식 서버를 통해 실시간으로 업데이트 되는 DB 정보를 수신할 수 있는 제품이며 소켓통신 방식을 적용하여 상품화한 제품입니다.
장점은 따로 소켓통신을 사용한 코드를 작성할 필요 없이 안정적인
통신을 할 수 있다는 점이지만 무료 제공량 만으로는 실제 서비스에 적용할 수 없고 사용량만큼 금액을 지불해야 합니다.
그리고 유지보수 측면으로서 보았을 때 아마 실 적용한 케이스가
많이 없어 개발한 직원이 퇴사할 경우 다른 직원이 인수인계 후 작업을 하면 잘 모를 수 있습니다.
2.
소켓통신(Socket)
소켓이란 네트워크에서 동작하는 프로그램간 통신의 종착점(EndPoint) 입니다.
이런 설명으로는 잘 이해가 안가는 이유가, 사실 개발적인 지식이 없으면 이 소켓 통신을 이해하기는 힘듭니다.
클라이언트와 서버 간의 양방향 통신이 필요한 곳에 쓰이는 기술인데
간단하게 비유해서 설명하자면 아래 그림과 같이 설명할 수 있습니다.
이렇게 소켓통신을 사용하면 실시간 채팅 기능을 구현할 수 있습니다.
장점은 구현만 한다면 비용이 들지 않는다는 점이지만 단점은 소켓
서버의 성능 및 상태에 따라 오락가락 할 수 있다는 점이고 구현하는 개발자의 실력에 의해서도 성능 차이가 날 수 있습니다.
이렇게 대표적인 2개의 방법을 알아봤습니다. 이 중 원하는 방식으로 선택하여 플랫폼을 만드시면 됩니다.