Wiki(node.js위키링크)를 참고하면 Node.js는 확장성 있는 네트워크 어플리케이션(특히 Server-side) 개발에 사용되는 소프트웨어 플랫폼이라고 정의되어 있습니다.
🙈[Django] 실시간 채팅 - Channels 튜토리얼 (1)🐵
어떤 프로젝트에서 챗봇을 구현하던 중, 클라이언트와 통신할 방법으로 WebSocket과 Redis pubsub을 생각하고 있었습니다.
여러 정보를 검색하던 중에, WebSocket과 Redis를 사용하여 통신을 하는 Channels 라이브러리를 알게 되었고, 좋은 라이브러리인 것 같아 정리를 하려 합니다.
튜토리얼이 잘 나와있어서 쉽게 적용할 수가 있었는데, 한글로 된 문서가 없는 것 같아서 정리를 하려고 합니다.
번역기의 힘을 빌려가며 해석을 했지만, 맞지 않는 부분이 있을 수 있기 때문에 원문과 참고하여 보시길 바랍니다.
이 글은 Django Channles 공식 문서를 참고하여 정리한 것입니다. ( 링크 )
Channels 소개
Django Channels 공식 문서에 따르면 Channles를 다음과 같이 소개하고 있습니다.
1) Web socket, Redis를 사용하여 채널을 관리
2) Django 자체는 동기식이지만, Channels를 사용하면 연결과 소켓을 비동기 처리
3) 현재 버전인 Channels 2는 python3.5 이상에서만 동작
4) ASGI( Async Server Gateway Interface )프로토콜은 WSGI와 잘 호환되도록 설계
ASGI( Asynchronous Server Gateway Interface )는 WSGI를 계승한 것으로 비동기 방식으로 실행되며,
웹 서버와 python 응용프로그램 간의 표준 인터페이스를 제공하기 위해 Django Channels와 배포에 사용되는 Daphne 서버에서 정의한 사양으로서 HTTP, HTTP/2 및 WebSocket와 같은 프로토콜을 지원합니다.
ASGI는 비동기 요청인 웹 소켓을 처리하는 이벤트로서 connect, send, receive, disconnect가 있습니다.
1. 프로젝트 및 애플리케이션 생성
$ django-admin.py startproject mysite $ python manage.py chat
생성된 chat 앱에서 __int__.py와 views.py 파일을 제외한 나머지 파일은 삭제합니다.
settings.py 파일에서 chat 앱을 추가합니다.
mysite/settings.py
2. 준비작업 - 기본 설정
chat 앱에 templates 디렉터리와 그 안에 chat 디렉터리를 생성한 후 , index.html 파일을 생성합니다.
이어서 View를 작성합니다.
chat/views.py
URL 매핑을 위해 chat앱 내에 urls.py 파일을 생성한 후, 아래와 같이 작성합니다.
chat/urls.py을 프로젝트의 urls.py에서 알 수 있도록 urlpatterns를 수정합니다.
mysite/urls.py
$ XM 실시간 채팅 python manage.py runserver
브라우저에서 http://127.0.0.1:8000/chat/ 경로에 접속하면 아래와 같은 화면이 출력됩니다.
여기서 lobby를 입력한 후, enter를 누르면 URL이 http://127.0.0.1:8000/chat/lobby/으로 이동하는 것을 확인할 수 있습니다.
하지만 이에 대한 View를 작성하지 않았으므로 404를 반환합니다.
여기까지가 Channels을 사용하기 위한 Django 기본 작업입니다.
이제 Channels를 적용해보겠습니다.
4. Channels 라이브러리 XM 실시간 채팅 통합
먼저 channels 패키지를 설치합니다.
$ pip install -U channels
그 다음 라우팅 config를 작성하겠습니다.
mysite/routing.py 파일을 생성 하여 아래와 같이 작성
다음으로 settings.py 파일에서 channels 앱을 등록하고, ASGI_APPLICATION을 추가합니다.
mysite/settings.py
주의 할 것은 Channel 개발 서버가 다른 서드 파티 앱과 충돌이 발생할 수 있으므로, channels 앱을 INSTALLED_APPS에서 가장 위에 작성하는 것이 좋습니다.
이제 Channels가 chat 앱에 포함되므로, 이 채널은 runserver 명령을 제어하여, 표준 Django 개발 서버를 Channel 개발 서버로 대체하게 됩니다.
지금까지 잘 되었는지 테스트를 해보겠습니다.
( ** No module named 'win32api' 에러가 발생한다면, pypiwin32 모듈을 설치합니다.
pypiwin32 모듈을 설치해도 에러가 발생하면 python manage.py migrate 명령을 실행하면 될 것입니다. )
서버를 실행했을 때, warning 메시지는 무시해도 됩니다.
주목할 것은 표준 Django 개발 서버가 아닌 ASGI/Channels 개발 서버가 시작됐다는 것입니다.
우선 브라우저에서 http://127.0.0.1:8000/chat/ 접속이 잘 되는지 확인만 하도록 합니다.
이상으로 Django Channels 튜토리얼 Part 1을 마치도록 하겠습니다.
Part 2에서는 본격적으로 Channels를 구현하겠습니다.
'웹 프로그래밍 > Django' 카테고리의 다른 글
[Django] Django Channels 배포 ( Nginx + Daphne + SSL ) (3) | 2018.07.08 |
---|---|
[Django] 실시간 채팅 - Channels 튜토리얼 (3) (6) | 2018.07.01 |
[Django] 실시간 채팅 - Channels 튜토리얼 (2) (25) | 2018.07.01 |
[Django] 실시간 채팅 - Channels 튜토리얼 (1) (9) | 2018.07.01 |
[Django] 설문조사 애플리케이션 예제 (3) - 구현하기 (0) | 2018.07.01 |
[Django] 설문조사 애플리케이션 예제 (2) - Model 다루기 (0) | 2018.07.01 |
[Django] 설문조사 애플리케이션 예제 (1) - Django 프로젝트 구조 알아보기 (0) | 2018.07.01 |
[Django] Nginx에 Django 연동( uWSGI ) (0) | 2018.06.30 |
1. 프로젝트 및 애플리케이션 생성
해당 과정에서 python manage.py chat이 아닌 python manage.py startapp chat 아닌가요?
혹시라도 버전이 바뀌어서 이것도 바뀐건가 해서 댓글 남깁니다 :)
안년하세요~
넵 말씀하신 부분이 맞습니다.
오타가 있었네요..
return render(request, 'chat/index.html', XM 실시간 채팅 <>) 부분이 return render(request, 'index.html', <>)
로 변경되어야 실행이 되네요.
혹시나 실행 안되시는 분들 참고 바랍니다.
아.. template 밑에 chat 디렉터리를 하나 더 만든 것을 못봤네요. 제 실수입니다 ㅠ
앗 넵 ㅎㅎ
공유 해주시려는 마음 감사합니다.
"이제 Channels가 chat 앱에 포함되므로, 이 채널은 runserver 명령을 제어하여, 표준 Django 개발 서버를 Channel 개발 서버로 대체하게 됩니다."
제가 gunicorn를 몰라서 찾아보니, uWSGI의 대안인듯 하네요.
배포 방식의 차이일 뿐이니, 해당 문장은 동일하게 적용될것으로 생각됩니다!
$ pip install -U channels 설치시 에러가 발생합니다.
Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)
Using legacy 'setup.py install' for twisted, since package 'wheel' is not installed.
Installing collected packages: txaio, pycparser, cffi, six, cryptography, autobahn, zope.XM 실시간 채팅 interface, constantly, incremental, attrs, Automat, idna, hyperlink, PyHamcrest, pyopenssl, pyasn1, pyasn1-modules, service-identity, twisted, daphne, channels
Running setup.py install for twisted . error
ERROR: Command errored out with exit status 1:
command: 'c:\users\ezds\desktop\han\scripts\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-76fn7f06\\twisted\\setup.py'"'"'; __file__='"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-76fn7f06\\twisted\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-record-ucsly2p7\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\ezds\desktop\han\include\site\python3.8\twisted'
cwd: C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-76fn7f06\twisted\
Complete output (947 lines):
running install
running build
running build_py
creating build
.
실시간 채팅으로 구매전환율을 높일 수 있다고요?
고객들은 TV를 볼 때, 일을 할 때, 거의 모든 순간에 수 십개가 넘는 마케팅 메시지를 받아요. 다른 용무를 보고 있을 때 마케팅 메시지를 본 다면, 단순한 '광고'겠지만, 쇼핑하려는 마음을 먹었을 때의 마케팅 메시지는 고객에게 지금 당장 필요한 '정보'가 돼요.
이 관점에서 실시간 채팅은 고객의 상황에 맞는 훌륭한 마케팅 기법이 됩니다.
고객이 적극적으로 쇼핑을 하고자할 때, 고객이 기대하는 맥락에 맞는 서비스나 제품을 추천해주고 그 이유까지 말해준다면, 고객들은 만족할 수밖에 없고 만족은 곧 구매로 이어질 확률이 높아져요.
고객에게 먼저 말을 걸고 구매전환율 높이자.
우리 사이트에서 무언갈 찾거나 고민하는 고객에게 먼저 말을 걸 수 있다는 것이 어떤 결과를 가져올까요?
백화점 매장에 방문한 고객에게 용모 단정한 매니저가 "고객님 찾으시는 제품 있으세요?"라고 묻는 건 가장 직접적인 고객 중심 세일즈입니다. 고객의 니즈 충족과 시간을 절약해주는 서포트가 되는 것, 고객의 고민을 같이 해결해주는 파트너가 되는 것, 그것을 홈페이지 안에서도 할 수 있다는 것! 놀랍지 않으세요?
고객이 우리 사이트에 들어온 '이유'가 핵심이다.
고객이 어떤 키워드를 검색하고 우리 홈페이지에 유입했는지 알면, 고객의 검색 의도를 분석할 수 있어요. 또한, 고객이 우리 홈페이지에 어떤 페이지에서 오래 머물렀는지를 알면 무슨 고민 중인지도 파악이 가능하죠. 그 부분을 공략하세요.
지금 이 글을 읽고 계신 고객님을 분석해서 '실시간 채팅'과 '구매 전환율'이라는 키워드를 검색해서 유입된 건지 파악 후, 맞다면 그 키워드들과 관련된 콘텐츠를 더 보실 수 있게끔 메시지를 XM 실시간 채팅 구성하여 고객님께 말을 걸 거예요.
웹에서 실시간처리
학부생활중 실시간처리 관련으로 TCP/IP를 배우면서 TCP/IP를 이용한 1:1 채팅을 구현해보셨을것이라 생각합니다. 하지만 실무에서는 전~~~~혀 쓸모가 없는 것 같습니다;; 수업중 책에 나와있는 소스대로 따라한다면 1:1채팅은 잘 되지만 멀티채팅구현은 머리를 굴리고 굴려야 간신히 구현할 수 있을 겁니다. 그러나 역시 실제서비스에 적용은 무리라고 생각됩니다.
그럼, 쉽게 프로그래밍을 짜면서 실제서비스에서 적용할 수 있는 방법이 무엇이 있을까요?
멀티채팅관련으로 알아보면서 괜찮은 것을 하나 찾았습니다 : )
요즘 젊은층(?)에서 많이 사용하고 있는 node.js + socket.io 입니다. 이걸 언어라고 설명을 해야할지 프레임워크라고 설명을 해야할지 애매합니다. node.js 자체가 javascript 를 기반으로 만들어진것으로 알고있습니다.
Wiki(node.js위키링크)를 참고하면 Node.js는 확장성 있는 네트워크 어플리케이션(특히 Server-side) 개발에 사용되는 소프트웨어 플랫폼이라고 정의되어 있습니다.
음. 저는 일단 프레임워크로 구분하겠습니다. 서버프로그램구현에 있어서 javascript 언어를 이용하면서 특화되었다고 생각하시면 될 것 같습니다.
저는 javascript 언어가 그렇게 익숙치않아서 가끔씩 문법을 확인하면서 작성하는데 언어가 익숙하신 분들은 정말 쉽게 작성하면서 놀랠 것 같네요. 후후
node.js + socket.io
node.js + socket.io ? 이게 무엇일가요?
일단 node.js 는 서버프로그램이라는 것은 알겠지만 socket.io 확장자부터 참 이상합니다. 간단하게 설명드리면 소켓통신을 쉽게 구현할 수 있도록 도와주는 아이라고 말씀드릴 수 있습니다.
node.js 와 socket.io 가 만나면 아까 위에서 힘들게 구현하던 멀티채팅을 순식간에 짧고 굵게 구현할 수 있습니다!
성능이 의심스러우신가요? 저는 테스트해보지 않았지만 다른분들께서 테스트한 내용들을 보게되면 실.시.간 접속 몇천명까지는 무리없이 처리해준다고 합니다! 엄청큰 서비스를 하지않는다면 몇천명이 정확하게 동시에 접속할일이 XM 실시간 채팅 많을까요? 제 개인적으로는 그런걱정을 하고있다면, 그 서비스는 이미 성공했기 때문에 능력있는 개발자를 자신있게 영입하면 됩니다 :D 하하하하하하
이렇게 말만 주저리주저리해봤자 머리만 더 복잡해질 것 같네요. 직접 실습을 통해서 얼마나 위대한지 같이 확인해도록 합시다 : )
채팅 Server
본격적인 적용을 위해 위에 있는 두 웹사이트를 들어가서 설치를 해주세요. node.js 를 설치하신 뒤 socket.io 를 준비해주시면 됩니다 : )
기본적인 SOCKET통신을 활용하는 방법이 socket.io 웹사이트에 설명되어 있네요.
이렇게 서버쪽과 클라이언트에 위 예제소스를 적용하시면 실시간으로 통신할 수 있는 페이지가 완성됩니다 : ) 하지만 “위에 있는 소스가지고 채팅을 어떻게 만들어?” 하시는 분이 있을지도 모르겠습니다.
위에는 제가 이것저것 수집하면서 제대로 작동하도록 만들어본 서버소스입니다 : )
각 사용자들이 원하는 채팅방에 접속하여 서로 실시간으로 채팅할 수 있도록 지원해주는 서버입니다.
socket.io 에 의해서 사용자가 해당방에 접속하여 글작성시 서버는 같은방에 있는 타접속자에게 해당메세지를 브로드캐스트해주는 역할을 합니다.
만약 대화한 내용들을 저장하고 싶다면 데이터가 넘어오는 시점에서 원하는 DB 에 Connection 하여 기록하면 됩니다 : ) 저는 여기서 요즘 유행한다는 MongoDB(몽고DB) 를 이용해보았고, 실험결과! 만족스러웠습니다.
그럼 다음은 Client 에서는 어떻게 같은 방에 접속하며, 메세지를 주고받을 수 있는지 살펴보도록 하겠습니다!
채팅 Client
바로 위에서 아주아주아주 간단하게 Client소스를 보셨지만, 감이 잘 안오실 것 같네요. 그래서 나름 샘플소스를 준비해보았습니다. 아주 기본적으로 대화할 수 있도록 만들어보았습니다 : )
메시징과 실시간 채팅 중 어느 것이 적합할까요?
Zendesk를 사용하면 웹, 모바일 또는 소셜 앱을 포함한 메시징 채널 전체에서 고객과 대화할 수 있습니다. 바로 쉽게 자동화하거나 유연한 개방형 플랫폼으로 원하는 대로 사용자 지정할 수 있습니다.
다음과 같은 경우라면 이 문서를 끝까지 읽어주시기 XM 실시간 채팅 바랍니다.
- 현재 실시간 채팅을 사용 중이며 메시징으로의 전환을 고려 중인 경우
- 실시간 채팅과 메시징 중에서 결정하려는 신규 Suite 고객인 경우
메시징에는 실시간 채팅이 지원하지 않는 많은 기능과 이점이 XM 실시간 채팅 포함되어 있습니다. 실시간 채팅의 몇 가지 기능이 아직 메시징에서 제공되지는 않지만 향후 제공될 예정입니다.
이 문서에서 다루는 주제는 다음과 같습니다.
메시징을 선택하는 이유
메시징은 기업이 실시간 채팅만으로는 달성할 수 없는 여러 가지 이점을 제공합니다.
대화 지속성
실시간 채팅은 실시간으로 이루어지며 대화 기록이 저장되지 않는 세션 기반 대화를 제공합니다. 고객이 상담원과 채팅을 시작하고, 도움을 받고, 채팅을 종료하는 과정이 하나의 일회성 대화로서 추후 참조를 위해 보존되지 않습니다. 반면 Zendesk 메시징은 세션 기반 대화는 물론 계속 진행되는 지속적 채팅 등을 제공합니다. 이러한 대화 기록은 항상 이용 가능하여 상담원과 고객이 XM 실시간 채팅 지난 질문 및 수행된 작업에 대한 전후상황을 파악할 수 있습니다. 고객은 같은 말을 반복하거나 재인증 절차를 거치지 않아도 되며, 상담원은 이전에 문제를 해결하지 못한 동일한 솔루션을 시도하느라 시간을 낭비하지 않아도 됩니다.
플로우 빌더로 자동화
메시징은 또한 코딩할 필요 없이 자체 대화 플로우를 만들 수 있는 새로운 기능도 제공합니다. 플로우 빌더를 사용하면 고객이 가장 자주 묻는 질문을 해결하고 고객에게 더욱 신속하게 바로 답변을 제공할 수 있습니다. 고객은 상담원이 대화 가능한 경우 상담원에게 연결되거나, 상담원이 대화 가능하지 않은 경우에는 나중에 후속 조치를 위해 질문을 제출할 수도 있습니다. 플로우 빌더를 통해 회사들은 일반적인 질문을 줄이고 헬프 센터 콘텐츠를 더욱 적극적으로 활용하여 비용을 절감하는 동시에 셀프 서비스를 통해 비용을 절감하는 동시에 고객 만족도를 높일 수 있게 되었습니다.
옴니채널 관리
메시징을 사용하면 웹 및 모바일 채널은 물론 모든 주 소셜 채널을 모두 한 곳에서 설정하고 관리할 수 있어 변경 작업을 하기 위해 각각 별도의 시스템에 로그인할 필요가 없습니다. 이 통합 관리 기능으로 시간과 노력을 절약하는 것은 물론 고객에게 일관된 경험을 제공할 수 있습니다.
대화 중심의 상담원 워크스페이스
새롭게 단장된 상담원을 위한 환경은 상담원이 대시보드 사이를 전환하거나 XM 실시간 채팅 고객이 같은 정보를 반복하여 설명할 필요 없이 원활한 지원 활동이 이루어질 수 있도록 합니다. 이 통합 지원 환경으로 상담원은 고객 및 다른 상담원 모두와 더 효율적이고 효과적으로 협력할 수 있습니다.
- 커뮤니케이션 채널 간에 쉽게 이동: 상담원이 메시징을 통해 사용자와 대화할 때 워크스페이스에서 나가지 않고서도 이메일 업데이트를 보내거나 사용자에게 전화를 걸 수 있습니다.
- 전후상황을 편리하게 확인: 상담원 워크스페이스는 현재 메시지를 주고 받고 있는 사용자에 대한 자세한 정보와 함께 지난 대화 기록 및 다른 상담원과의 상호작용을 자동으로 불러옵니다.
- 수월한 공동 작업: 내부 Slack 그룹과 연결하고 회사의 다른 사람들과 연락하여 어려운 문제에 대해 질문을 하거나 도움을 받을 수 있습니다.
- 라이브 대화 업데이트: 이메일, 채팅, 전화 및 메시징 전체에서 수신 메시지나 응답에 대한 알림을 실시간으로 받습니다. 고객이 메시징을 통해 응답을 입력하거나 새 WhatsApp 메시지가 도착하는 것이 보입니다.
- 원활한 티켓 업데이트: 여러 채널의 티켓 양식 및 XM 실시간 채팅 필드를 신속하게 업데이트하거나 팀원을 배정하여 신속하게 대화를 연결합니다. 메시징을 사용하려면 Zendesk Chat 계정에 상담원 워크스페이스가 사용 설정된 상태의 Zendesk Support도 있어야 합니다.
코딩이 필요 없음
메시징은 이러한 모든 기능을 바로 이용 가능하도록 제공합니다. 몇 가지 구성 옵션만 설정하면 됩니다. 소셜 및 모바일 채널에 대한 링크를 쉽게 설정할 수 있습니다. 플로우 빌더의 쉬운 그래픽 인터페이스를 사용하여 어떤 코딩도 필요 없이 여러 대화 플로우를 만들거나 유지 관리할 수 있습니다. 이러한 모든 기능은 가능한 한 번거롭지 않게 설정하고 실행하여 소중한 고객과 대화하고 지원을 시작할 수 있도록 하기 위한 것입니다.
Sunshine Conversations로 기능 확장
메시징이 바로 이용 가능하도록 제공하는 것보다 더 맞춤화된 경험을 원한다면 메시징 솔루션에 Sunshine Conversations 기능을 추가할 수 있습니다. Sunshine Conversations는 메시징의 구축 기반이 되는 플랫폼이며, 이 추가 액세스를 활용하여 모든 수준에서 메시징 경험을 사용자 지정할 수 있습니다. 하지만 이러한 일부 고급 기능을 이용하는 경우 원하는 기능을 정확하게 구현하기 위해 어느 정도의 코딩이 XM 실시간 채팅 필요할 수 있으며 추가 사용 요금이 부과될 수도 있습니다.
- 채팅 모양 사용자 지정: Sunshine Conversations를 사용하여 위젯의 색, 크기 및 모양을 변경할 수 있습니다.
- 서식 있는 임베디드 콘텐츠: 서식 있는 콘텐츠(회전 슬라이드, 지도, 좌석 선택 등)와 같은 추가 기능을 메시지에 직접 추가하여 고객에게 더욱 매력적인 경험을 제공할 수 있습니다.
- 외부 소스의 데이터 연동: 메시징 내에서 액세스할 수 있도록 하려는 다른 비즈니스 시스템의 정보가 있다면 Sunshine Conversations API가 그러한 시스템의 데이터를 가져오거나 업데이트하는 데에도 도움이 될 수 있습니다. 고객과 고객의 문제를 더욱 철저히 파악하기 위해 이러한 추가 데이터를 상담원 워크스페이스 티켓에 포함할 수도 있습니다.
- 지원 외 더욱 다양한 용도로 메시징 사용: Sunshine Conversations는 XM 실시간 채팅 지원 뿐만이 아니라 모든 유형의 사용 사례에 활용될 수 있습니다. 다음은 서비스 환경에 해당하지 않는 다른 용도에 메시징을 적용할 수 있는 몇 가지 예입니다.
- 상담원이 고객에게 추가 제품을 추천할 수 있도록 함
- 고객이 장바구니에 항목을 추가하거나 구매 거래를 완료할 수 있도록 도움
- 새 항목, 할인 또는 보상에 대해 고객에게 사전대응 메시지를 보내 브랜드 충성도 구축
- 더욱 개인화된 대면 서비스를 받을 수 있도록 고객을 현지 상점에 연결
- 그 외 다수
Zendesk 메시징 기능의 이점
메시징의 바로 이용 가능한 기능 덕분에 신속하게 구성하고 실행할 수 있으며 새로운 시스템의 이점을 누릴 수 있습니다.
- 더 이상 반복할 필요 없음: 고객이 있는 곳 어디에서든(옴니채널) 대화 지속성을 갖추고 지원을 제공함으로써 고객이 새 상담원에게 또는 다른 채널을 통해 연락할 때 같은 말을 반복할 필요가 전혀 없습니다.
- 팀 생산성 증가: 새로운 통합 상담원 워크스페이스로 상담원이 별개의 웹, 모바일 및 소셜 채널 대화에 로그인하거나 모니터링할 필요 없이 어느 채널에서든 고객에게 응답하는 데 필요한 전후상황을 파악할 수 있습니다. 일관된 사용자 경험과 단순한 제어를 통해 상담원은 모든 고객의 필요 사항을 충족시키는 동시에 컨텍스트 전환을 줄임으로써 생산성을 더욱 높일 수 있습니다.
- 기본 제공 자동화로 주 7일, 하루 24시간 지원: Answer Bot으로 고객에게 훌륭한 서비스를 제공하는 동시에 상담원이 오프라인 상태일 때에 대한 다른 프로포콜을 설정할 수 있습니다. 문서 추천을 사용하여 헬프 센터 문서를 추천하거나, 일반적인 질문에 대한 답변을 제공하도록 플로우 빌더를 구성하거나, 사용자 정보를 캡처하여 상담원이 돌아올 때 응답하도록 티켓을 만들 수 있습니다.
- 서비스 확장: 이러한 모든 기능으로 고객에게 제공할 수 있는 지원을 더욱 확장할 수 있습니다. 자동화, 근무 시간 외 지원, 향상된 상담원 경험을 통해 기존 리소스에 부담을 주지 않고도 그 어느 때보다 더 많은 문제를 받고 처리하며 해결할 수 있도록 합니다.
실시간 채팅을 선택하는 이유
이미 실시간 채팅을 사용 중인 기존 고객은 당분간 실시간 채팅을 계속 사용하는 것이 유용할 수 있습니다. 실시간 채팅의 특정 기능이 아직 메시징에서 지원되지 않습니다. 그러한 기능을 메시징에 추가하기 위해 적극적으로 노력하고 있습니다. 그렇게 되면 신규 고객은 물론 모든 기존 실시간 채팅 고객이 메시징을 사용하여 아래에 설명된 메시징이 제공하는 추가 기능을 활용하도록 권장합니다.
기능 비교 매트릭스
메시징을 선택할지 또는 실시간 채팅을 사용할지 결정하려면 아래 표를 살펴보고 어느 것이 필요한 기능을 가지고 있는지, 현재 실시간 채팅을 사용 중이라면 메시징 사용 설정 시 기존 고객 경험이나 워크플로우에 방해가 되지 않을지 알아보는 것이 좋습니다.
[Node.js] 실시간 채팅 서비스 만들기(1) - 준비
이번 강좌에서는 Node.js 기반의 실시간 온라인 채팅 서비스를 개발해볼 예정입니다!
사전 지식이 부족하더라도 충분히 따라올 수 있도록 작성할 계획입니다.
클라이언트는 웹 으로 진행하도록 하겠습니다!
위 링크를 통해 Node.js 와 VSCode 를 설치해주세요!
(글에 나와있는 Brackets를 사용해도 되지만 저는 VSCode로 진행할 계획입니다)
원하는 폴더를 생성하고 npm init 를 진행하여 package.XM 실시간 채팅 json 도 생성해주세요!
(위 링크에 모두 나와있습니다)
VSCode로 package.json 파일이 있는 폴더를 열어줍니다.
(1 옆에 있는 특수문자입니다! 따옴표 아님)
커맨트창이 열렸으면 아래 명령어를 입력해줍니다.
npm install express --save
npm install socket.io --save
우리는 프로젝트를 진행하는 동안 위의 2모듈을 사용할 예정입니다.
express는 서버를 위한 모듈이구요 socket.io는 실시간 통신을 위한 모듈입니다!
설치를 마무리하였으면 package.json 파일을 열어봅시다.
아래 dependencies 항목을 보면 express와 socket.io가 있으면 성공입니다!
(위의 기타 항목들은 개개인마다 차이가 있을 수 있습니다.)
폴더 구조를 보면 위와 같을것입니다!
(README.md는 제가 따로 생성한 파일이므로 여러분들은 없습니다.)
(일부러 생성하지 않아도 됩니다!)
다음 포스팅부터 본격적으로 개발을 시작해봅시다!
매 과정은 모두 제 Github에 업로드 되고 있습니다!
Github에서 Clone 하여 따라오셔도 좋습니다~!
[실시간 채팅 서비스 만들기(1) - 준비]
안녕하세요 메신저 어플을 만들고 싶은 초보 개발자입니다.
혹시 서버(firebase)를 이용하지 않고 메신저 어플을 만들 수 있을까요?
예를 들어 핸드폰에 있는 문자메시지 기능 처럼요
와이파이나 데이터를 사용하지 않구요글 보다가 제 블로그는 아니지만 댓글 달아볼게요.
메신저 어플을 만들고 싶다는데 메신저 라는 자체가 서버-클라이언트 (CS)기반입니다. 서버를 사용하지 않고 만들고 싶다는데 서버를 사용하지 않는다면 UUID를 알고 있는 상태에서 상대방한테 푸시를 보내는 식으로 해서 해결할수 있을거라 생각 합니다. 경력이 어느정도인지는 모르지만 너무 높은 목표인거 같아서 남깁니다. 고생하십쇼!!
0 개 댓글