안경잡이개발자

728x90
반응형

  슬랙(Slack) 챗봇(Chat Bot)은 사용자가 슬랙 봇에게 말을 걸었을 때 그에 대한 적절한 응답을 수행하는 봇을 의미합니다. 그래서 슬랙 챗봇을 구현하고자 한다면 사용자가 챗봇을 부르는 과정을 이벤트(Event)로 받아들여 슬랙 챗봇이 동작하도록 해야 합니다. 따라서 이전 시간에 이어서 슬랙 챗봇을 구현해보도록 하겠습니다. 가장 먼저 이벤트 구독(Event Subscriptions) 탭에 들어갑니다.


  이후에 [Enable Events]활성화(On)로 설정할 수 있습니다.



  활성화로 설정한 이후에는 다음과 같이 요청 URL을 입력하는 부분이 활성화 됩니다.



  이후에 아래쪽에서 봇 이벤트(Bot Events)로 app_mention을 설정할 수 있습니다. app_mention을 설정하면 해당 슬랙 앱이 멘션(Mention) 되었을 때 이벤트가 발생합니다.



  이벤트가 발생하면 특정한 URL요청(Request)을 보내게 되는 것입니다. 이제 실제로 요청이 들어왔을 때 이를 처리하는 파이썬 챗봇 모듈을 개발해보겠습니다.


# -*- coding: utf-8 -*-

import json

from slacker import Slacker

from flask import Flask, request, make_response


token  = "봇 유저 토큰 값"

slack = Slacker(token)


app = Flask(__name__)


def get_answer():

    return "안녕하세요."


# 이벤트 핸들하는 함수

def event_handler(event_type, slack_event):

    if event_type == "app_mention":

        channel = slack_event["event"]["channel"]

        text = get_answer()

        slack.chat.post_message(channel, text)

        return make_response("앱 멘션 메시지가 보내졌습니다.", 200, )

    message = "[%s] 이벤트 핸들러를 찾을 수 없습니다." % event_type

    return make_response(message, 200, {"X-Slack-No-Retry": 1})


@app.route("/slack", methods=["GET", "POST"])

def hears():

    slack_event = json.loads(request.data)

    if "challenge" in slack_event:

        return make_response(slack_event["challenge"], 200, {"content_type": "application/json"})

    if "event" in slack_event:

        event_type = slack_event["event"]["type"]

        return event_handler(event_type, slack_event)

    return make_response("슬랙 요청에 이벤트가 없습니다.", 404, {"X-Slack-No-Retry": 1})


if __name__ == '__main__':

    app.run('0.0.0.0', port=8080)


  이제 테스트를 위해서 엔그록(Ngrok)을 이용해 공인 URL을 일시적으로 만들어보도록 하겠습니다.




  이제 만들어진 공인 URL을 슬랙 봇요청 URL로 설정할 수 있습니다.



  설정했을 때 Verified라고 메시지가 출력되면 성공입니다. 이제 한 번 챗봇을 불러보도록 합시다.



  초대한 이후에 다시 챗봇을 불러보면 챗봇이 성공적으로 응답합니다.



  Ngrok의 로그를 확인해 보았을 때에도 성공적으로 슬랙 API와 통신한 것을 확인할 수 있습니다.


728x90
반응형

Comment +2

728x90
반응형

  이번 시간에는 슬랙(Slack) 기본 설정을 하는 방법에 대해서 알아보도록 하겠습니다. 처음 슬랙을 시작했을 때 초기 설정을 하는 방법에 대해서 잘 모르면 슬랙을 바르게 이용할 수 없습니다. 따라서 개인 프로필 설정을 하는 방법부터, 원하는 기능에 대한 알람을 적절히 받고 방해 금지 모드(Do not disturb mode)를 사용하는 방법 등에 대해서 다루어보도록 하겠습니다.


  맨 처음에 슬랙 워크스페이스에 초대되면 다음과 같은 화면이 등장합니다. 맨 처음에는 계정 정보를 저장하는 것부터 진행하시는게 좋습니다. 'Save Your Account' 버튼을 눌러서 초기 정보를 입력합니다.


※ 프로필 설정 ※



  다음과 같이 이름 및 비밀번호를 설정하고, 팀 정보를 확인할 수 있습니다.




  이후에는 가장 먼저 프로필 설정을 진행해서 자신이 어떤 사람인지 팀 구성원에게 알리는 것이 좋습니다.



  따라서 'Profile & account' 탭에 들어가도록 합니다.



  이후에 프로필 편집을 진행하시면 됩니다.



  저는 다음과 같이 프로필 사진을 설정해보았습니다.




※ 슬랙 워크스페이스 기본 설정 ※


  슬랙 워크스페이스 자체에 대한 기본 설정을 하고자 한다면 관리자(Administration) 탭에서 'Workspace settings'에 들어가시면 됩니다.



  워크스페이스 설정 페이지에서는 워크스페이스의 아이콘(Icon) 등을 설정할 수 있습니다.




  저는 위와 같이 워크스페이스의 아이콘도 설정을 진행해보았습니다.


※ 슬랙 알림 설정 ※


  슬랙 알림 설정을 할 때는 Preferences 탭에 들어가서 진행하면 됩니다.



  일반적으로 알림이 발생했을 때 우리 컴퓨터에서 바로 알림을 확인할 떄는 'Enable desktop notifications'를 누르시면 됩니다.




  크롬(Chrome) 브라우저를 이용하는 경우 위와 같이 알림을 허용하여 알림을 쉽게 받을 수 있습니다. 이후에는 다음과 같이 구체적으로 어떤 상황에서 알림을 받을지 설정할 수 있습니다. 저는 개인 쪽지(Direct Messages) 혹은 멘션 등에 대해서만 알림을 받도록 했습니다.



  또한 방해 금지(Do Not Disturb) 모드를 설정하면 특정한 시간에 대해서는 알림(Notification)을 띄우지 않습니다.



728x90
반응형

Comment +0

728x90
반응형

  슬랙(Slack)을 이용하면 다양한 채널에서 사용자들이 서로 대화를 나눌 수 있습니다. 이 때 채널에 보낼 수 있는 메시지는 굉장히 다양한데요. 단순히 문자열만 보낼 수 있는 것이 아니라 소스코드, 멘션(Mention), 이모티콘 등의 다양한 메시지를 전송할 수 있습니다.


  메시지를 전송하는 방법에 대해서 하나씩 알아보도록 하겠습니다.


※ 다른 사용자 언급하기 ※


  다른 사용자를 언급할 때는 @ 기호를 사용합니다.



  메시지 창에서 오른쪽에 있는 멘션 기호 @를 이용하여 특정 대상을 지칭할 수 있습니다. 흔히 말하는 태그(Tag)와 같습니다.


※ 이미지 첨부 ※


  슬랙에서 이미지 첨부는 매우 간단합니다. 단순히 원하는 이미지를 복사하여 클립보드(Clipboard)에 담은 이후에 슬랙 대화 창에서 붙여넣기(Paste)를 진행하시면 됩니다.




※ 코드 붙여넣기 ※


  코드를 붙여넣고자 할 때는 왼쪽의 (+) 버튼을 눌러서 'Code or text snippet' 탭을 누르시면 됩니다.




  소스코드를 올릴 때는 소스코드의 언어 유형 등을 함께 입력하여 소스코드를 안정적으로 기입할 수 있습니다.



  또한 업로드가 된 소스코드에 대해서는 'More actions' 탭에서 'View details'로 들어가면 구체적인 소스코드를 확인할 수 있습니다.




※ 이모티콘 전송하기 ※


  이모티콘을 전송하고자 할 때는 텍스트 입력창의 오른쪽에 있는 이모티콘 버튼을 누르면 됩니다.



  또한 특정한 댓글에 대해서 감정을 표시할 수 있습니다. 좋아요를 누르듯이 감정을 표시하는 거예요.




※ 이모티콘 추가하기 ※


  슬랙(Slack)은 원하는 이미지를 이용하여 특정한 이모티콘을 추가할 수 있습니다. 'add custom emoji here' 버튼을 누르면 됩니다.



  이모티콘 추가 페이지로 이동해서 실제로 특정한 이미지를 추가하면 됩니다.



  저는 한 번 패럿(Parrot) 이미지를 추가해보도록 하겠습니다.




  일단 위와 같이 저는 .gif 형태로 이미지를 저장했습니다.



  업로드 이후에 저장(Save)을 수행하면 다음과 같이 이모티콘이 등록됩니다.



  이후에 슬랙에서 편하게 이모티콘을 사용할 수 있습니다.



728x90
반응형

Comment +0

728x90
반응형

  슬랙(Slack)에서 채널(Channel)을 잘 관리하면 다양한 채널에서 효율적으로 팀원들이 소통하도록 할 수 있습니다. 일반적으로 채널은 다음과 같이 다양하게 생성하여 활용할 수 있습니다. 팀을 막론하고 general 채널, random 채널은 무조건 존재하는데요. 이러한 채널들의 사용 용도는 팀마다 대부분 흡사합니다. 저는 대략 다음과 같이 분류해보겠습니다.


  ▶ general: 일반적인 공지사항을 전달하는 공간

  ▶ random: 자유롭게 대화를 나누는 공간

  ▶ develop: 개발 관련 내용을 다루는 공간

  ▶ recruit: 신입사원 채용 관련 내용을 다루는 공간


  한 번 다음과 같이 새로운 채널을 생성해서 채널을 관리해보도록 하겠습니다.



  기본적으로 위와 같이 'Channels' 탭 오른쪽에 있는 (+) 버튼을 눌러서 채널을 생성할 수 있습니다.



  저는 위와 같이 develop이라는 이름으로 채널을 생성해보았습니다.



  또한 이어서 recruit 채널을 생성해보겠습니다.



  그러면 위와 같이 채널이 구성됩니다. 이 때 우리가 만든 슬랙 워크스페이스에 초대 된 사람은 모든 채널이 다 보이지 않을 수 있습니다. 이럴 때는 'Channels' 탭을 클릭하여 채널을 검색해 원하는 채널로 이동하여 채널에 가입할 수 있습니다.



  한 번 위와 같이 general 채널로 이동해보겠습니다.



  일반적으로 general 채널은 공지사항 전달 등의 목적으로 사용됩니다.



  또한 이어서 채널에 올라 온 첨부 파일 확인, 사용자 초대 등을 하기 위해서는 'View channel details' 버튼을 누르시면 됩니다.



  위와 같이 채널 정보 탭에서 'Invite more people...' 버튼을 눌러서 새로운 사용자를 채널에 초대할 수 있습니다.



  또한 채널 설정 탭에서는 채널 음소거(Mute) 등의 작업도 수행할 수 있습니다.



728x90
반응형

Comment +0

728x90
반응형

  슬랙(Slack)은 굉장히 많은 회사와 동아리 등의 집단에서 사용하고 있는 협업 메신저 도구입니다. 쉽게 말하면 회사용 카카오톡(Kakao Talk) 정도라고 보시면 됩니다. 실제로 카톡은 정말 편하고 익숙한 앱이지만, 회사 용도로 사용하기에는 기능이 매우 한정적입니다. 하지만 슬랙은 정말 프로젝트 단위의 협업을 목적으로 한다면 가장 강력한 메신저 도구가 될 수 있습니다.


  또한 슬랙은 그다지 복잡한 협업 도구가 아니라는 점에서 단순히 사용하고자 한다면 강좌까지 보지 않아도 잘 사용할 수 있습니다. 하지만 슬랙을 보다 완벽히 다루고자 한다면 슬랙에 대한 구체적인 내용을 알수록 유리합니다.


  ▶ 슬랙(Slack) 공식 사이트: https://slack.com/


  슬랙은 위 사이트에 접속하여 이용할 수 있습니다. 슬랙에서 하나의 프로젝트(Project)를 워크스페이스(Workspace)라고 말합니다. 워크스페이스를 생성하고자 한다면 다음의 경로에 접속하면 됩니다.


  ▶ 슬랙(Slack) 워크스페이스 생성 경로: https://slack.com/create



  워크스페이스를 생성할 때는 관리자 이메일 주소를 입력합니다.



  이후에 자신의 이메일 주소로 가면 인증 코드가 보입니다. 이를 슬랙에 기입하면 됩니다.



  저는 팀 이름을 'Slack Tutorial'이라고 지어보았습니다.



  또한 저는 Education이라고 프로젝트의 이름을 지어주었습니다.



  또한 처음에 프로젝트를 생성하면 프로젝트 구성원을 추가하라는 페이지가 나오는데, 저는 스킵(Skip)을 해주겠습니다.



  이후에 기본적으로 채널 정보를 확인할 수 있습니다.



  그러면 위와 같이 기본 채널이 존재하는 걸 확인할 수 있습니다.



  이제 한 번 가상의 사용자를 초대해보도록 하겠습니다. 설정(Setting) 탭에서 초대(Invite)를 진행하시면 됩니다.




  저는 한 번 제 다른 이메일 주소로 초대 메일을 보내보겠습니다. 이제 한 번 메일을 받은 이메일 계정으로 로그인해보도록 하겠습니다.




  저는 위와 같이 새로운 계정으로 가입을 해보았습니다.



  가입 이후에는 위와 같은 화면을 확인할 수 있습니다. 왼쪽과 오른쪽을 서로 다른 브라우저로 로그인 해보았습니다.



  결과적으로 위와 같이 왼쪽과 오른쪽 사용자가 모두 education 채널에서 소통할 수 있었습니다.

728x90
반응형

Comment +0