XM 실시간 채팅

마지막 업데이트: 2022년 6월 11일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
스레딩을 하기위해 ChatingServer(socketserver.ThreadingMixIn, socketserver.TCPServer) 상속을 사용하였다.메서드를 재정의하므로, 믹스인 클래스가 먼저 옵니다. 다양한 어트리뷰트를 설정하면 하부 서버 메커니즘의 동작도 변경됩니다. MRO에 따르면 클래스 상속의 순서는 뒤에서부터가 먼저임

소켓을 이용한 실시간 채팅 만들기 (심화편)(wss적용)

채팅을 소켓을 통해 만들었지만, 실시간으로 방을 참여하고, 많은 사람들이 채팅을 할 수있게 만들고싶었다.

위에 해당하는 구현이 끝난다면, 이제 url을 연결하여 id값을 접속할때마다 부여하며 채팅방을 만들고, 그 url을 원하는 사람들에게 공유하고 유저들이 접속한다면 원하는 사람들만 일회용으로 간단히 사용할수있지 않을까 생각하였다.

실시간 채팅 구현

스레딩을 위한 코드가 보이지 않는다.서버와 클라이언트가 있을때 서버는 스레드로 관리해야하는것아닌가(병렬처리..)

스레딩을 하기위해 ChatingServer(socketserver.ThreadingMixIn, socketserver.TCPServer) 상속을 사용하였다.메서드를 재정의하므로, 믹스인 클래스가 먼저 옵니다. 다양한 어트리뷰트를 설정하면 하부 서버 메커니즘의 동작도 변경됩니다.

MRO에 따르면 클래스 상속의 순서는 뒤에서부터가 먼저임

Break조건을 두면 함수까지 탈출하나?

  1. python 에서 함수안에서 return이 되면 그 즉시 함수끝

  2. while True조건에서는 계속 반복하다가 break조건만나면 바로 탈출

서버 코드에서 self.request가 socket 인스턴스와 같이 사용되는이유?

request.send()가 가능한이유는 TCPServer에서 request, client_address = self.get_request() connect_socket을 request로 받음

클라이언트

Websocket을 이용한 실시간채팅구현

웹으로 배포한것으로 실시간 채팅을 구현하는 것이 목표이기 때문이다.

+ 추후 성능을 위해 쓰레드 포스팅도 합니다.

멀티스레드와 비동기는 다른 개념이다(추후포스팅 분리하기)

멀티 스레드

작업자에 관한 개념이다. 달걀과 토스트 주문이 하나 들어오면 이를 작업자1명을 둘것인가 2명을 둘것인가에 따라 다른것이다. 멀티 스레드를 쓴다면 동일한 일을 2개이상의 스레드가 처리한다.

자세히

공식문서

꼭다시읽기

꼭다시읽기2

작업!에 관한 개념이다. 달걀과 토스트 주문이 하나 들어오면 달걀을 구우며 타이머 해놓고, 토스트 돌리며 타이머를 해놓고 나머지는 청소가 가능하다. 즉, 단일 스레드를 중지하지 않고 계속 다른일을 시키는 것이다.

asyncio 는 python의 비동기 처리를 위한 라이브러리이다.

async와 await가 핵심이다.

웹 브라우져에서 위에 작성한 html를 실행시키면 javascript에서 python websocket서버로 접속을 합니다. 그리고 hello와 XM 실시간 채팅 test의 메시지를 작성해서 보냈는데 server측에서는 hello와 test의 메시지를 받아서 콘솔에 출력을 했고 브라우저에서는 echo : 가 붙은 메시지가 표시가 되었습니다.

python파일로 client구성

Nginx websocket wss:// 적용하기

https에서는 wss가 필수이므로 반드시 ssl적용이 필요했다.

upstream부터 server < >를 따로 설정해줄수있지만 1.1.3버전부터 nginx에서는 이미 websocket에 대해 따로 지원을 해준다.

오류 해결

모든 브라우저에서 예상대로 종료해주기를 바라는 건 욕심이였다. 모바일 크롬에서만 하면 모두가 채팅이 불가능하게 되었다…

server의 소캣은 user에 기록되어있었지만 실제로는 연결이 끊기 소캣에 대해서는 send()를 해도 오류가 발생하였다.

이를 해결하기위해 try, except 구문을 통해 메세지를 보낼때 만약 전체메시지 전송도중에 오류가 발생하면 self.removeUser(username)함수를 통해 그 등록된 유저와 소캣을 제거하고, pass를 하여 메세지를 모두에게 보내는 함수의 for문이 끊기지 않도록 하여 해결하였다

send() raises a ConnectionClosed exception when the client disconnects, which breaks out of the while True loop.

  •  Archive
  •  Tag
  •  Cate
  • 05/17 자바(XM 실시간 채팅 Java) CH01
  • 05/17 자바(JAVA) CH03
  • 05/17 자바(Java) CH02
  • 05/17 자바(JAVA) CH05
  • 05/17 자바(JAVA) CH04
  • 05/17 자바(JAVA) CH06
  • 05/17 자바(JAVA) CH07
  • 05/08 알고리즘 디자인 4가지
  • 12/18 주택분양보증 vs 분양가상한제
  • 12/07 11월 월간 정기 보고서
  • 10/23 세대수와 가구수 차이
  • 10/17 엑셀 단축키 모음
  • 10/11 10월 월간 정기 보고서
  • 09/21 2021.09 정기 리포트
  • 08/28 2021.07 정기 리포트
  • 08/28 2021.08 정기 리포트
  • 06/24 부동산 물건 분석 양식
  • 06/21 삼학사로 xx xx빌딩 분석
  • 06/18 셀프 등기 하는법 (2021)
  • 05/31 잠실 신천동 장미아파트 분석
  • 05/30 개발자를 마무리하고, 부동산업계를 준비하다.
  • 01/19 REST API란? (RESTful,REST)
  • 01/19 django-serializer 자세히 알아보기
  • 01/15 외주 2번째 DRF 후기
  • 01/15 django-crontab 사용하기
  • 12/30 2020를 마무리하며. 열심히 살았어?
  • 12/26 자료구조 공부 (파이썬활용)
  • 12/23 aws부터 drf 설정까지
  • 12/05 letsencrypt
  • 12/02 알고리즘 어떻게 공부해나갈거야?
  • 11/26 (코테) 2렙 프로그래머스 리뷰노트
  • 11/04 python 함수, 자료형, 그외
  • 10/30 (코테) 1렙 프로그래머스 리뷰노트
  • 10/30 dynamo-db-basic
  • 10/27 알고리즘 문제 해결 전략 책 요약
  • 10/27 tech-terms-concept
  • 10/23 DB-cache-server에 대해서
  • 10/22 mysql indexing 자세히
  • 10/19 배열(array)와 리스트(list) 차이
  • 10/02 Mysql 기본 공부
  • 09/27 우분투 apt-get
  • 09/27 우분투 자주 쓰는 명령어
  • 09/27 우분투 유저, 권환 관련
  • 09/25 우분투에서 IP고정
  • 09/25 워드프레스 도커활용하여 배포하기(https포함)
  • 09/13 backend-interview(백엔드-면접준비)
  • 09/12 통계학 기본 정리
  • 09/07 후니의 네트워크로 기본 잡기
  • 08/26 OS에 관한 쉬운 세가지 이야기
  • 08/24 Nginx 자세히
  • 08/23 파이썬 기본 라이브러리 정리
  • 08/15 PEP 규칙 읽어보기
  • 08/12 Nginx로 Reverse-proxy 서버 구성 +SSL인증서 (Docker로 구성)
  • 08/11 비동기 asyncio 활용
  • 08/04 소켓을 이용한 실시간 채팅 만들기 (심화편)(wss적용)
  • 08/01 HTTP,Ajax,Websocket
  • 07/31 소켓을 이용한 실시간 채팅 만들기 (기본편)
  • 07/21 DockerFile,Docker-compose,Deploy
  • 07/19 네트워크 지식 02
  • 07/17 Nginx 웹서비스 배포(DRF 사용)
  • 07/15 (영어공부용)HTML Render vs Parse
  • 07/14 Django, DRF 메커니즘 그림
  • 07/01 Html/Css
  • 06/28 Http/Https
  • 06/21 공부하는법
  • 05/27 우분투 ssh,ftp,sftp 설정
  • 05/26 서버 구성 살펴보기
  • 05/21 docker
  • 05/20 importantThings
  • 05/15 XM 실시간 채팅 딴짓 시급 계산기
  • 05/14 파이썬 코딩의 스킬 리뷰 5
  • 05/07 네트워크 지식 01
  • 05/07 파이썬 코딩의 스킬 리뷰 4
  • 04/22 파이썬 코딩의 스킬 리뷰 3
  • 04/16 선형 회귀 분석,로지스틱 회귀 분석, 신경망
  • 04/01 데이터 마이닝 공부
  • 03/27 R_언어 공부
  • 03/05 처음 외주를 시작하며
  • 02/23 파이썬 코딩의 스킬 리뷰 2
  • 02/18 파이썬 코딩의 스킬 리뷰 1
  • 02/15 IP는 유일한가?
  • 02/15 Django 더알아보기
  • 02/13 환경변수 사용법
  • 02/13 HTTPie 사용법
  • 02/11 세션,쿠키와 캐시 (session and cookie)
  • 02/06 AWS Elastic Beanstalk + django
  • 01/28 DRF 기본편 14
  • 01/27 실수노트
  • XM 실시간 채팅
  • 01/26 DRF 기본편 13
  • 01/24 DRF 기본편 12
  • 01/23 효율적인 프로젝트 진행을 위한 것
  • 01/23 DRF 기본편 10+11
  • 01/22 카카오채널 구현해보기
  • 01/22 DRF 기본편 9
  • 01/21 DRF 기본편 8
  • 01/18 DRF 기본편 5+6+7
  • 01/17 DRF 기본편 4
  • 01/11 DRF 기본편 3
  • 01/08 DRF 기본편 2
  • 01/07 DRF 기본편 1
  • 01/02 프론트엔드 기본편 4
  • 12/22 프론트엔드 기본편 3
  • 12/15 프론트엔드 기본편 2
  • 12/15 한빛소프트 devfest for junior
  • 12/08 프론트엔드 기본편 1
  • 12/06 클래스뷰 정확히 쓰기 2
  • 12/03 클래스뷰 정확히 쓰기 1
  • 11/26 Django 기본 여섯번째이야기
  • 11/25 Django 기본 다섯번째이야기
  • 11/21 Django 기본 네번째이야기
  • 11/15 Django 기본 세번째이야기
  • 11/05 Django 기본 두번째이야기
  • 11/01 Django 기본 첫번째이야기
  • 10/21 WhereU
  • 10/20 Devfest Seoul Bingo 2019에서 배운 것들
  • 10/20 Markdown 기본사용법
  • 10/19 django-basic (장고 개념 기초)
  • 10/19 git memo
  • 10/19 기타 꿀팁과 햇갈리는 것 정리
  • 01/08 whereMyPost

 Review  Mysql  DB  API  DRF  hanbik  Junior  Devfest  HTTPie  WebBasic  Tip  Basic  Elastic Beanstalk  AWS  Library  Python  OS  Web  Session  Basic. Python  Network  Socket  Threading  Django  ClassView  R  Univ  Coding  Tips  Knowledge  Data  Mechanism  Advanced  Dataminging  Statistics  Djagno  Serializer  Docker  Excel  Skill  Endofyear  Finish  Restart  Realestate  GDG  Google  Festival  Frontend  Ajax  Aws  Drf  Git  Html  Css  Front-End  Http  Https  Java,Basic  Important  Apt  Ssl  Kakao  basic  Project  Server  Nginx  Proxy  Wsgi  Outsourcing  Linux  Ubuntu  Ssh  How  PEP  Analysis  Form  Thinking  Building  English  HTTP  Websocket  Markdown  Wordpress

缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是archer根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:

 DB  API  Conference  HTTPie  WebBasic  Elastic-Beanstalk  Basic  Library  OS  Chatting  Django  R  Coding  Knowledge  Data-Mining  DRF  Statistics  Skill  Docker  Excel  Endofyear  realestate  Frontend  Server  Git  Html-Css  Network  Java  Important  Review  Kakao  Tip  Project  Outsourcing  Linux  Python  How  Report  Form  Thinking  Analysis  Html  Ubuntu  Markdown  ETC

웹사이트 또는 헬프 센터에 실시간 채팅 추가하기

이 문서에서는 웹사이트에서 고객에게 실시간 채팅을 제공하기 위해 완료해야 하는 작업을 자세히 안내해 드리며, 이러한 작업에는 다음이 포함됩니다.

  • 웹 위젯(클래식)에서 실시간 채팅 사용 설정하기
  • 위젯의 모양 구성하기
  • 채팅 양식을 만들고 사용 설정하기
  • 위젯 보안 규칙 확립하기
  • 위젯의 모양 구성하기
  • 채팅 양식을 만들고 사용 설정하기
  • 위젯 보안 규칙 확립하기

웹 위젯(클래식)에서 실시간 채팅 사용 설정하기

웹 위젯(클래식)을 통해 고객이 실시간 채팅을 사용할 수 있게 하려면 관리 센터의 웹 위젯(클래식) 관리 페이지에서 사용 설정해야 합니다. 웹 위젯(클래식)을 통해 다른 채널들도 사용할 수 있습니다. 정확한 단계는 어떤 식으로 위젯을 사용할 계획인지, 그리고 이미 구성해 놓은 것이 있다면 무엇인지에 따라 다릅니다. 웹 위젯(클래식)을 통해 다음을 제공할 수 있습니다.

  • 실시간 채팅 기능만
  • 실시간 채팅 및 다른 채널 기능(Talk, Answer Bot 등)

웹 위젯(클래식)을 이미 사용 중인 상태에서 실시간 채팅만 추가하는 경우에는 사용 설정하는 대로 바로 사용자들이 사용할 수 있습니다.

웹 위젯(클래식)을 처음 사용하는 경우에는 먼저 웹사이트나 헬프 센터에 추가해야 사용자들이 사용할 수 있습니다.

웹 위젯(클래식)을 통해 고객 지원을 제공하기 위한 모든 옵션을 다루는 웹 위젯(클래식)에서 구성 요소 구성하기를 참조하세요.

위젯의 모양 구성하기

회사의 브랜드에 가장 잘 맞게 위젯의 모양 및 방문자들이 위젯과 상호작용하는 방식을 사용자 지정할 수 있습니다.

이 섹션에서는 구성 가능한 다음 요소들에 대해 설명합니다.

채팅 창은 실시간 채팅 인터페이스의 틀입니다.

Chat 대시보드에서 웹 페이지에서의 위젯 위치는 물론 상단 제목과 테마 색을 사용자 지정할 수 있습니다.

Chat 대시보드에서 상단 제목을 사용자 지정할 수 있습니다.

웹 위젯(클래식) 관리 페이지에서 테마 색, 테마의 텍스트 색(시작 관리자, 문의 버튼 및 헤더), 그리고 웹 페이지에서의 위젯 위치를 사용자 지정할 수 있습니다.

상단 제목 업데이트에 대한 내용은 채팅 창 섹션 사용자 지정하기를 참조하세요.

테마 및 텍스트 색 업데이트에 대한 내용은 위젯 요소의 색 사용자 지정하기를 참조하세요.

위젯 위치 업데이트에 대한 내용은 위젯 위치 오프셋하기를 참조하세요.

채팅 배지

채팅 배지는 실시간 채팅이 시작되기 전의 위젯 모습입니다. 배지 표시 여부, 배지에 텍스트만 있는지 또는 이미지도 있는지와 그 이미지의 위치, 배경 색, 그리고 배지에 표시되는 텍스트를 사용자 지정할 수 있습니다.

안내자 섹션에서는 고객이 위젯을 클릭하여 연 후 질문을 입력하거나 상담원과 채팅을 시작하기 전에 무엇이 표시되는지에 대해 다룹니다. 채팅에 방문자 환영 메시지가 표시되는데 표시 제목, 바이라인 및 아바타를 선택하여 조직의 성격에 맞게 사용자 지정할 수 있습니다.

메시지 유형

메시지 유형 섹션에서는 안내자 섹션에서 선택한 아바타를 채팅 메시지와 나란히 표시할지 여부를 선택할 수 있습니다.

채팅 양식(오프라인 및 채팅 전) 만들기 및 사용 설정하기

다음의 두 가지 양식을 사용하여 방문자와 능률적으로 소통할 XM 실시간 채팅 수 있습니다. 채팅 전 양식은 실시간 채팅을 시작하기 전에 방문자로부터 정보를 요청합니다. 오프라인 양식은 온라인 상태인 상담원이 아무도 없을 때 방문자가 메시지를 남기도록 할 수 있습니다. Chat 대시보드에서 방문자 프로필 요구 사항과 함께 이러한 양식을 관리합니다.

이 섹션에서는 다음 항목을 다룹니다.

방문자 프로필

방문자 프로필 섹션에서는 방문자가 로그인하여 채팅 전 또는 채팅 중 다음을 포함한 연락처 정보를 공유하도록 할 수 있습니다.

  • 전화번호: 인증되지 않은 방문자가 연락처 번호를 입력할 수 있도록 합니다.
  • 소셜 로그인: 방문자가 자신의 Facebook 또는 Google 계정에서 연락처 정보를 가져올 수 있도록 합니다.

이 섹션에서 선택한 내용은 채팅 전 양식 및 오프라인 양식의 정보에 영향을 미칠 수 있습니다.

채팅 전 양식

채팅 전 양식은 채팅을 시작하기 전에 방문자로부터 정보를 요청하는 방법입니다. 기본적으로 채팅 전 양식에서는 방문자의 이름, 이메일, 요청 부서 및 초기 메시지를 요구하며, 선택 사항으로 전화번호를 위한 필드를 추가하고 사용자들이 소셜 미디어 계정(Facebook 또는 Google)으로부터 정보를 가져올 수 있도록 선택할 수 있습니다. 필요에 따라 요청하는 정보를 선택 사항 또는 필수로 설정할 수 있습니다. 채팅 전 안내말을 포함하는 옵션도 있습니다.

오프라인 양식

오프라인 양식을 통해 온라인 상태인 상담원이 아무도 없을 때 방문자가 메시지를 남기도록 할 XM 실시간 채팅 수 있습니다. 채팅 전 양식과 마찬가지로 기본적으로 방문자의 이름, 이메일 및 메시지를 요청하는 필드가 포함되어 있습니다. 전화번호를 요청하는 필드를 추가하고, 사용자가 소셜 미디어 계정(Facebook 또는 Google)으로부터 정보를 가져올 수 있게 하고, 양식 필드를 필수 또는 선택 사항으로 설정하고, 오프라인 안내말을 포함할 수 있습니다. 방문자가 Facebook Messenger 또는 트위터를 통해 양식에 액세스하도록 할 수도 있습니다.

방문자가 채팅을 평가할 수 있도록 허용하기

고객으로부터 즉각적인 피드백을 수집하려면 만족도 평점을 사용 설정하여 방문자가 엄지 손가락 위로 또는 엄지 손가락 아래로 아이콘을 클릭하여 받은 서비스를 좋음 또는 나쁨으로 평가하는 옵션을 제공할 수 있습니다.

위젯 보안 규칙 확립하기

Chat 기능에 대한 액세스를 제어할 수 있는 다양한 방법이 있습니다. 차단 국가 및 허용 도메인 목록에 추가함으로써 위젯을 로드하고 사용할 수 있는 국가 및 도메인을 지정할 수 있습니다. 또한 위젯이 포함되어 있는 각 페이지에서 방문자 인증을 요구하여 채팅을 시작하는 방문자의 신원을 확인할 수 있습니다. 이러한 설정은 Chat 대시보드의 위젯 보안 탭에서 관리됩니다.

이러한 설정은 Chat을 사용하는 방문자에게만 적용됩니다. 웹 위젯(클래식)을 사용하는 방문자가 다른 기능에는 액세스하지 못하도록 제한하려면 웹 위젯(클래식) 관리 페이지를 통해 이러한 규칙을 확립해야 합니다.

이 섹션에서는 다음 설정들에 대해 설명합니다.

특정 XM 실시간 채팅 국가 및 도메인에 대한 액세스 제한하기 및 부여하기

차단 국가 옵션을 사용 설정하면 드롭다운 메뉴를 사용하여 위젯에서 Chat에 액세스할 수 없는 국가를 선택할 수 있습니다. 이러한 국가에서 위젯이 임베드된 페이지를 로드하는 경우 Chat 기능을 사용할 수 없습니다.

허용 도메인 옵션을 사용 설정하면 신뢰할 수 있는 도메인을 지정할 수 있습니다. 이러한 도메인의 사용자들은 액세스 권한이 있는 웹 페이지를 로드할 때 Chat 기능을 사용할 수 있습니다.

방문자 인증 사용 설정하기

Chat에 대한 방문자 인증을 사용 설정하면 로그인한 방문자들은 Chat이 포함된 어떤 페이지에서든 식별됩니다. 이로써 방문자들이 여러 장치나 브라우저 사이를 이동하면서 채팅을 계속할 수 있고, 채팅에 필요할 수도 있는 프로필 정보를 자동으로 채웁니다.

새로운 JavaScript API 및 JWT 토큰을 사용하여 모든 페이지가 로드될 때마다 방문자를 인증하도록 위젯을 구성할 수 있습니다. 이를 위해서는 공유 비밀키를 생성하고 JWT 토큰을 만들어야 합니다.

웹사이트에 위젯 추가하기

Chat의 기본적인 모양 및 기능을 사용자 지정했으므로 이제 고객이 사용할 수 있도록 웹사이트에 추가하기만 하면 됩니다. 사용할 수 있는 고급 사용자 지정 옵션도 확인해 보세요.

웹사이트에 위젯을 임베드하려면 Zendesk에서 제공한 간단한 코드 스니펫을 복사하여 방문자가 채팅을 통해 지원을 요청할 수 있는 옵션이 있어야 하는 각 웹 페이지의 HTML에 붙여넣어야 합니다.

웹사이트 또는 헬프 센터에 위젯 추가하기

Chat의 기본적인 모양 및 기능을 사용자 지정했으므로 이제 고객이 사용할 수 있도록 웹사이트 또는 헬프 센터에 추가하면 됩니다. 사용할 수 있는 고급 사용자 지정 옵션도 확인해 보세요.

웹사이트에 위젯을 임베드하려면 Zendesk에서 제공한 간단한 코드 스니펫을 복사하여 방문자가 채팅을 통해 지원을 요청할 수 있는 옵션이 있어야 하는 각 웹 페이지의 HTML에 붙여넣어야 합니다.

웹사이트에서 이미 웹 위젯을 사용할 수 있고 여기에 Chat 기능을 추가하고 있다면 이 스니펫을 업데이트하지 않아도 됩니다. 위에서 설명한 대로 사용 설정하는 대로 바로 Chat을 사용할 수 있게 됩니다.

[Django Channels] 실시간 채팅 구현하기 -2

이제 메시지를 저장해야 하므로 Model을 작성했다. 원래는 Single App으로 가고 싶었으나, Chat 정도는 분리하는 것이 좋다고 판단해서 앱을 분리했다.

Consumer 수정하기

그다음은 consumer.py에 간단히 함수를 작성하고 만들어둔 Message Model을 이용해서 데이터를 저장하게 해 줬다.

그 후 receive 메서드 내에서 호출하도록 작성해주고 나면 구현은 어렵지 않게 끝나게 된다.

실제로 Postman의 Websocket을 이용해서 테스트를 해보면, 아래와 같이 잘 동작하는 것을 볼 수 있고

데이터베이스도 직접 열어보면 아래처럼 채팅 데이터가 잘 쌓이는 것을 확인할 수 있다. 여러 번 보내도 잘 쌓이는지 보기 위해 연속으로 보내봤는데, 잘 저장이 되는 것을 확인했다.

그럼 이제 남은 건 해피엔딩일까

그럴 리 없다. 모든 채팅 데이터를 서버에 저장한다는 것이 있을 수 있는 일인가. 모든 데이터를 모바일 로컬에 저장하고 서버는 단순히 중계하는 역할만 하도록 구현을 해야 한다. 하지만 일단 여기까지 해두고. 주말에 안드로이드 쪽을 담당해주는 멤버를 만나서 이야기해보고 다시 업데이트를 하려고 한다.

메시징과 실시간 채팅 중 어느 것이 적합할까요?

Zendesk를 사용하면 웹, 모바일 또는 소셜 앱을 포함한 메시징 채널 전체에서 고객과 대화할 수 있습니다. 바로 쉽게 자동화하거나 유연한 개방형 플랫폼으로 원하는 대로 사용자 지정할 수 있습니다.

다음과 같은 경우라면 이 문서를 끝까지 읽어주시기 바랍니다.

  • 현재 실시간 채팅을 사용 중이며 메시징으로의 전환을 고려 중인 경우
  • 실시간 채팅과 메시징 중에서 결정하려는 신규 Suite 고객인 경우

메시징에는 실시간 채팅이 지원하지 않는 많은 기능과 이점이 포함되어 있습니다. 실시간 채팅의 몇 가지 기능이 아직 메시징에서 제공되지는 않지만 향후 제공될 예정입니다.

이 문서에서 다루는 주제는 다음과 같습니다.

메시징을 선택하는 이유

메시징은 기업이 실시간 채팅만으로는 달성할 수 없는 여러 가지 이점을 제공합니다.

대화 지속성

실시간 채팅은 실시간으로 이루어지며 대화 기록이 저장되지 않는 세션 기반 대화를 제공합니다. 고객이 상담원과 채팅을 시작하고, 도움을 받고, 채팅을 종료하는 과정이 하나의 일회성 대화로서 추후 참조를 위해 보존되지 않습니다. 반면 Zendesk 메시징은 세션 기반 대화는 물론 계속 진행되는 지속적 채팅 등을 제공합니다. 이러한 대화 기록은 항상 이용 가능하여 상담원과 고객이 지난 질문 및 수행된 작업에 대한 전후상황을 파악할 수 있습니다. 고객은 같은 말을 반복하거나 재인증 절차를 거치지 않아도 되며, 상담원은 이전에 문제를 해결하지 못한 동일한 솔루션을 시도하느라 시간을 낭비하지 않아도 됩니다.

플로우 빌더로 자동화

메시징은 또한 코딩할 필요 없이 자체 대화 플로우를 만들 수 있는 새로운 기능도 제공합니다. 플로우 빌더를 사용하면 고객이 가장 자주 묻는 질문을 해결하고 고객에게 더욱 신속하게 바로 답변을 제공할 수 있습니다. 고객은 상담원이 대화 가능한 경우 상담원에게 연결되거나, 상담원이 대화 가능하지 않은 경우에는 나중에 후속 조치를 위해 질문을 제출할 수도 있습니다. 플로우 빌더를 통해 회사들은 일반적인 질문을 줄이고 헬프 센터 콘텐츠를 더욱 적극적으로 활용하여 비용을 절감하는 동시에 셀프 서비스를 통해 비용을 절감하는 동시에 고객 만족도를 높일 수 있게 되었습니다.

옴니채널 관리

메시징을 사용하면 웹 및 모바일 채널은 물론 모든 주 소셜 채널을 모두 한 곳에서 설정하고 관리할 수 있어 변경 작업을 하기 위해 각각 별도의 시스템에 로그인할 필요가 없습니다. 이 통합 관리 기능으로 시간과 노력을 절약하는 것은 물론 고객에게 일관된 경험을 제공할 수 있습니다.

대화 중심의 상담원 워크스페이스

새롭게 단장된 상담원을 위한 환경은 상담원이 대시보드 사이를 전환하거나 고객이 같은 정보를 반복하여 설명할 필요 없이 원활한 지원 활동이 이루어질 수 있도록 합니다. 이 통합 지원 환경으로 상담원은 고객 및 다른 상담원 모두와 더 효율적이고 효과적으로 협력할 수 있습니다.

  • 커뮤니케이션 채널 간에 쉽게 이동: 상담원이 메시징을 통해 사용자와 대화할 때 워크스페이스에서 나가지 않고서도 이메일 업데이트를 보내거나 사용자에게 전화를 걸 수 있습니다.
  • 전후상황을 편리하게 확인: 상담원 워크스페이스는 현재 메시지를 주고 받고 있는 사용자에 대한 자세한 정보와 함께 지난 대화 기록 및 다른 상담원과의 상호작용을 자동으로 불러옵니다.
  • 수월한 공동 작업: 내부 Slack 그룹과 연결하고 회사의 다른 사람들과 연락하여 어려운 문제에 대해 질문을 하거나 도움을 받을 수 있습니다.
  • 라이브 대화 업데이트: 이메일, 채팅, 전화 및 메시징 전체에서 수신 메시지나 응답에 대한 알림을 실시간으로 받습니다. 고객이 메시징을 통해 응답을 입력하거나 새 WhatsApp 메시지가 도착하는 것이 보입니다.
  • 원활한 티켓 업데이트: 여러 채널의 티켓 양식 및 필드를 신속하게 업데이트하거나 팀원을 배정하여 신속하게 대화를 연결합니다. 메시징을 사용하려면 Zendesk Chat 계정에 상담원 워크스페이스가 사용 설정된 상태의 Zendesk Support도 있어야 합니다.

코딩이 필요 없음

메시징은 이러한 모든 기능을 XM 실시간 채팅 바로 이용 가능하도록 제공합니다. 몇 가지 구성 옵션만 설정하면 됩니다. 소셜 및 모바일 채널에 대한 링크를 쉽게 설정할 수 있습니다. 플로우 빌더의 쉬운 그래픽 인터페이스를 사용하여 어떤 코딩도 필요 없이 여러 대화 플로우를 만들거나 유지 관리할 수 있습니다. 이러한 모든 기능은 가능한 한 번거롭지 않게 설정하고 실행하여 소중한 고객과 대화하고 지원을 시작할 수 있도록 하기 위한 것입니다.

Sunshine Conversations로 기능 확장

메시징이 바로 이용 가능하도록 제공하는 것보다 더 맞춤화된 경험을 원한다면 메시징 솔루션에 Sunshine Conversations 기능을 추가할 수 있습니다. Sunshine Conversations는 메시징의 구축 기반이 되는 플랫폼이며, 이 추가 액세스를 활용하여 모든 수준에서 메시징 경험을 사용자 지정할 수 있습니다. 하지만 이러한 일부 고급 기능을 이용하는 경우 원하는 기능을 정확하게 구현하기 위해 어느 정도의 코딩이 필요할 수 있으며 추가 사용 요금이 부과될 수도 있습니다.

  • 채팅 모양 사용자 지정: Sunshine Conversations를 사용하여 위젯의 색, 크기 및 모양을 변경할 수 있습니다.
  • 서식 있는 임베디드 콘텐츠: 서식 있는 콘텐츠(회전 슬라이드, 지도, 좌석 선택 등)와 같은 추가 기능을 메시지에 직접 추가하여 고객에게 더욱 매력적인 경험을 제공할 수 있습니다.
  • 외부 소스의 데이터 연동: 메시징 내에서 액세스할 수 있도록 하려는 다른 비즈니스 시스템의 정보가 있다면 Sunshine Conversations API가 그러한 시스템의 데이터를 가져오거나 업데이트하는 데에도 도움이 될 수 있습니다. 고객과 고객의 문제를 더욱 철저히 파악하기 위해 이러한 추가 데이터를 상담원 워크스페이스 티켓에 포함할 수도 있습니다.
  • 지원 외 더욱 다양한 용도로 메시징 사용: Sunshine Conversations는 지원 뿐만이 아니라 모든 유형의 사용 사례에 활용될 수 있습니다. 다음은 서비스 환경에 해당하지 않는 다른 용도에 메시징을 적용할 수 있는 몇 가지 예입니다.
    • 상담원이 고객에게 추가 제품을 추천할 수 있도록 함
    • 고객이 장바구니에 항목을 추가하거나 구매 거래를 완료할 수 있도록 도움
    • 새 항목, 할인 또는 보상에 대해 고객에게 사전대응 메시지를 보내 브랜드 충성도 구축
    • 더욱 개인화된 대면 서비스를 받을 수 있도록 고객을 현지 상점에 연결
    • 그 외 다수

    Zendesk 메시징 기능의 이점

    메시징의 바로 이용 가능한 기능 덕분에 신속하게 구성하고 실행할 수 있으며 새로운 시스템의 이점을 누릴 수 있습니다.

    • 더 이상 반복할 필요 없음: 고객이 있는 곳 어디에서든(옴니채널) 대화 지속성을 갖추고 지원을 제공함으로써 고객이 새 상담원에게 또는 다른 채널을 통해 연락할 때 같은 말을 반복할 필요가 전혀 없습니다.
    • 팀 생산성 증가: 새로운 통합 상담원 워크스페이스로 상담원이 별개의 웹, 모바일 및 소셜 채널 대화에 로그인하거나 모니터링할 필요 없이 어느 채널에서든 고객에게 응답하는 데 필요한 전후상황을 파악할 수 있습니다. 일관된 사용자 경험과 단순한 제어를 통해 상담원은 모든 고객의 필요 사항을 충족시키는 동시에 컨텍스트 전환을 줄임으로써 생산성을 더욱 높일 수 있습니다.
    • 기본 제공 자동화로 주 7일, 하루 24시간 지원: Answer Bot으로 고객에게 훌륭한 서비스를 제공하는 동시에 상담원이 오프라인 상태일 때에 대한 다른 프로포콜을 설정할 수 있습니다. 문서 추천을 사용하여 헬프 센터 문서를 추천하거나, 일반적인 질문에 대한 답변을 제공하도록 플로우 빌더를 구성하거나, 사용자 정보를 캡처하여 상담원이 돌아올 때 응답하도록 티켓을 만들 수 있습니다.
    • 서비스 확장: 이러한 모든 기능으로 고객에게 제공할 수 있는 지원을 더욱 확장할 수 있습니다. 자동화, 근무 시간 외 지원, 향상된 상담원 경험을 통해 기존 리소스에 부담을 주지 않고도 그 어느 때보다 더 많은 문제를 받고 처리하며 해결할 수 있도록 합니다.

    실시간 채팅을 선택하는 이유

    이미 실시간 채팅을 사용 중인 기존 고객은 당분간 실시간 채팅을 계속 사용하는 것이 유용할 수 있습니다. 실시간 채팅의 특정 기능이 아직 메시징에서 지원되지 않습니다. 그러한 기능을 메시징에 추가하기 위해 적극적으로 노력하고 있습니다. 그렇게 되면 신규 고객은 물론 모든 기존 실시간 채팅 고객이 메시징을 사용하여 아래에 설명된 메시징이 제공하는 추가 기능을 활용하도록 권장합니다.

    기능 비교 매트릭스

    메시징을 선택할지 또는 실시간 채팅을 사용할지 결정하려면 아래 표를 살펴보고 어느 것이 필요한 기능을 가지고 있는지, 현재 실시간 채팅을 사용 중이라면 메시징 사용 설정 시 기존 고객 경험이나 워크플로우에 방해가 XM 실시간 채팅 되지 않을지 알아보는 것이 좋습니다.

    채팅과 메시징의 차이점

    소비자가 기업에 메시지를 전달하길 원하는 것은 이제 놀라운 일이 아닙니다. 채팅과 메시징은 실시간 지원에 사용되든 피어 투 피어 대화에 사용되든, 많은 웹사이트와 앱에서 이미 사용하고 있는 일반적인 기능입니다. 간단히 말해 대화의 양상이 변하고 있습니다.

    대화는 중요하며 관계의 기본 구성 요소입니다. 가족, 친구 및 동료와의 관계, 심지어는 철천지 원수와의 관계도 대화를 통해 해결되거나 대화가 부족할 수도 있습니다.

    요즘에는 대화 비즈니스에 대한 많은 이야기들이 있습니다. 특정 유형의 대화가 더 나은 사용자 경험을 제공하는 이유를 이해하는 것이 중요합니다. 가장 자연스럽고 직관적이며 액세스 가능한 대화는 무엇일까요? 채팅과 메시징은 관광, 의료, 금융 및 소매와 같은 산업 분야와 지원, 전자 상거래, 마케팅 및 영업 영역에서 교차하므로 기업은 상황을 잘 파악해야 합니다. 종종 “채팅”과 “메시징”이라는 용어를 혼용하므로 두 용어를 잘못 구분한다는 사실을 지적하는 것도 중요합니다. 실질적인 차이는 실시간 채팅의 기존 기능과 고객 지원 측면에서 비교적 최근에 등장한 비동기식 메시징 기능 간 차이를 이해하는 방식에서 나타납니다.

    실시간 채팅이란 무엇일까요?

    실시간 채팅은 가장 오래된 대화 지원 이용 사례입니다. 일반적으로 실시간 채팅은 웹이나 회사 모바일 앱에서 진행되며 인스턴트 메시징 채널에서는 제공하지 않습니다. 실시간 채팅은 세션 기반이고 동기식이므로, 상담원과 고객 간의 일대일 대화가 끝나고 티켓이 해결되면 대화 기록이 사라집니다.

    동기식 메시징은 실시간 채팅을 규정하는 양방향 커뮤니케이션 양식입니다. 이 메시징은 전화 통화와 같은 방식으로 실시간으로 제한됩니다. 사용자의 주의가 필요하며, 세션의 시작과 끝이 한정됩니다.

    반면에 비동기식은 적당할 때 대화를 중지하거나 시작할 수 있음을 의미합니다. 따라서 필요한 경우 대화를 실시간으로 진행할 수 있지만, 대개 사용자는 다른 업무에 집중할 수 있습니다. 우리가 가족 및 친구와 나누는 대부분의 대화는 비동기식입니다. 전화 통화나 심지어 실시간 채팅 세션을 사용할 때와 같은 방식으로 WhatsApp 또는 Messenger의 대화를 처리하면 인터럽션이나 멀티태스킹을 경험하지 못할 수 있습니다. 이런 상황은 마치 악몽과도 같겠지만 실시간 채팅만이 유일한 옵션이라면 고객을 이렇게 대우할 수밖에 없게 됩니다.

    메시징이란 무엇일까요?

    메시징이란 일반적으로 Facebook Messenger, WhatsApp, WeChat 및 Instagram과 같은 소셜 채널에서 진행되는 비동기 대화를 말합니다. 메시징이 지원을 포함할 수도 있지만 상거래 및 마케팅 분야로 확장될 수도 있습니다. 메시징에서의 지원은 세션 기반이 아닙니다. 고객이 답변이 편리한 때를 결정하므로 비동기식이고 편리합니다. 지원 사례가 더 절박한 경우에는 더욱 즉각적인 다른 채널로 전환할 수 있습니다.

    소셜 메시징은 WhatsApp, Facebook Messenger, WeChat, 심지어 Instagram이나 Twitter DM과 같은 타사의 메시징 앱 및 플랫폼을 통해 진행하는 대화를 말합니다. 전 세계적으로 이미 널리 보급되어 고객에게 연결할 기회를 충분히 창출하고 있으므로 기업에게 매력적인 채널입니다.

    iMessage의 Apple Business Chat, Facebook Messenger, WhatsApp의 Business API 또는 WeChat을 사용하는 기업은 확인된 비즈니스 프로필에서 고객과 연결할 수 있습니다. 완전한 비동기식 메시징 솔루션은 기업이 고객에게 설문조사, 알림 및 업데이트를 보내고 반응을 예상할 수 있음을 의미합니다. 비인격적이고, 발신자를 찾기 어려운 스팸 마케팅 메시지를 의심 없는 고객에게 전송하는 데 이 채널을 사용하면 SMS 메시지가 98% 비율로 열린다는 흔한 통계는 별로 달갑지 않을 것입니다.

    임베디드 메시징은 앱 또는 웹 속성에 임베디드된 최신 메시징 경험을 말합니다. 이것은 고객들이 지원 서비스와 상호 작용할 수 있도록 하는 모바일 SDK(소프트웨어 개발 키트)일 수 있습니다. Four Seasons 앱은 게스트가 안내자에게 문의할 수 있도록 하는 통합 SDK를 사용합니다.

    Sunshine Conversations와 같은 메시징 플랫폼은 네이티브, 인앱 메시징 및 소셜 메시징 채널을 연결하므로 고객은 똑같은 대화를 반복하지 않고도 어디서든 대화를 선택할 수 있습니다. 이를 통해 고객은 가장 편리한 시간 및 장소에서 응답할 수 있으며, 상담원은 통합 고객 프로필의 일부로 대화의 전체 텍스트를 확인할 수 있습니다.

    실시간 채팅은 언제 사용할까요?

    다른 옵션이 없지만 정말 전화 통화를 원하지 않을 때 사용합니다. 많은 기업이 웹사이트에서의 실시간 채팅을 채택했습니다. 대기열 XM 실시간 채팅 및 세션과 같은 실시간 채팅의 많은 기능이 콜 센터 경험을 복제하지만 실시간 채팅은 통화의 대체 방법으로 개발되었습니다. 사용자가 전화 통화를 하고 싶지 않은 경우 실시간 채팅이 정말 괜찮은 방법입니다. 하지만 우리에게 익숙한 메시징 기능이 실시간 채팅 클라이언트에 없으면 대화가 덜 인간적으로 느껴질 수 있습니다.

    최근에 작성된 전화 통화의 변화하는 특성에 대한 월스트리트 저널 기사에서(음성 메시지 및 화상 통화와 같은 자주 사용하는 메시징 앱 기능을 심층 분석함), Katherine Bindley는 이렇게 썼습니다. “내가 인터뷰한 여러 사람들은 예기치 않게 전화 벨이 울리면 누군가가 죽은 것은 아닌가라는 생각이 든다고 말했다.”

    Zendesk Sunshine Conversations의 Conversations 제품 담당 VP인 Mike Gozzo도 난데없는 통화에 대해 비슷한 거부감을 표시했습니다. “누군가가 내게 전화를 하면 매우 화가 납니다. “통화에 동의한 적이 없는데 다른 일을 할 수 없고 정신을 완전히 빼앗기게 됩니다.”

    라이브 채팅도 비슷한 문제를 유발합니다. 대화가 세션 기반이므로 일단 사용자가 앱을 XM 실시간 채팅 종료하거나 연결이 끊어지면 모든 것이 끝납니다. 대기열에서 응답 가능한 상담원을 기다리거나 응답 시간이 오래 걸릴 경우 지루해지기 쉽습니다. 대화가 재개되면 고객은 성가시지만 같은 말을 되풀이해야 합니다.

    메시징은 언제 사용합니까?

    최신 메시징 지원 전략이 있는 브랜드는 좀 더 개별화된 사용자 참여를 이끄는 능력 면에서 우세합니다. 대화가 타사 채널에서 진행되므로 전체 대화 내역을 볼 수 있으며, 최신 커뮤니케이션 소프트웨어의 경우 지원 상담원에게도 대화 내역이 표시됩니다. 이러한 메시징 기능은 비동기 및 채널 간 웹 메신저가 실시간 채팅 위젯 대신 사용되면서 브랜드 웹 속성의 메시징으로도 확장됩니다. 대화는 어디서든 시작될 수 있고, 채널 간에 이동되며, 언제든 재개할 수 있습니다.

    메시징은 지원 외에 상거래, 금융, 의료 및 교육 분야에서도 활발히 사용되고 있으며, 이러한 산업 분야에서는 사람들이 이미 사용하고 있는 채널이 활용되고 있습니다. 소셜 메시징 채널에서 진행되는 대화는 브랜드가 고객과의 관계를 설정하는 데 도움이 될 수 있습니다. 수많은 여행 및 숙박 브랜드는 호텔 투숙객의 질의 및 요청을 처리하는 대화형 안내자 서비스를 구성하려는 경우뿐 아니라 예약 과정 중에도 메시징을 사용하고 있습니다. 소매점에서는 쇼핑 시 고객과의 관계를 구축하는 메시징 앱 기반 퍼스널 쇼퍼를 통해 맞춤형 권장 사항을 제공하고 있습니다. 은행에서도 챗봇을 이용하여 밀레니얼 세대에 유용한 금융 조언을 제공하면서 사전에 연락하여 지출 활동을 중점적으로 알려줍니다. 이러한 대화를 통해 브랜드는 접근 가능한 인간다운 방식으로 브랜드를 표현할 수 있으며, 소비자들은 개인 맞춤화와 편의성에 적응하고 있습니다.

    기업에는 어떤 의미가 있나요?

    메시징을 사용하면 풍부한 채널 기능을 이용하여 고유의 대화 경험을 생성하면서 개별화된 편리한 지원을 대규모로 쉽게 제공할 XM 실시간 채팅 수 있습니다. 기업용 최신 메시징 소프트웨어는 애널리틱스, 챗봇 및 결제의 통합도 지원합니다. 또한 결정적으로 기업은 이제 앞으로의 고객 상호 작용을 알리기 위해 대화의 전체 맥락과 함께 이러한 대화를 유지할 수 있습니다.

    고객이 사용 가능한 지원 시간 이외의 시간에 메시지를 전달할 경우 자동화 기능 또는 챗봇은 상담원이 응답할 수 있을 때를 계속 알려주거나 관련 셀프 서비스 콘텐츠로 안내할 수 있습니다. 사용자들이 다른 응답 시간을 기대하므로 상담원은 더 많은 대화를 동시에 진행할 수 있습니다. 기업은 연중무휴로 운영되는 고객 센터에 직원을 배치하는 데 중점을 두기보다는, 탁월한 고객 경험에 기여하는 보다 세부적인 대화의 측면에 집중할 수 있습니다.

    물론 메시징이 고객 경험의 최종 목표가 되어서는 안 됩니다. 기업에게 정말 중요한 것은 고객이 있는 곳에서 모든 채널로 응답하는 것입니다. 옴니채널 지원 전략은 선택, 편의성 및 접근성이 셀프 서비스, 통화, 이메일, 실시간 채팅, 메시징 등 최고의 고객 경험 제공을 보장하는 것입니다.


0 개 댓글

답장을 남겨주세요