[FastAPI] 슬랙 봇이 알려주는 심심풀이 불용한자

hukim·2022년 6월 12일
0

Open API

목록 보기
6/11
post-thumbnail

이번에는 슬랙 봇을 이용해서 한자 이름을 입력하면 이 한자가 불용한자 인지 체크해보는 것을 만들어보려고 한다.

🤷‍♂️ 불용한자..?

그냥 어딘가에서 주워들은 얘기이지만 이름에는 쓰면 안되는 한자들이 있다고 한다.
그 한자들이 이름에 들어갈 경우 어쩌고 저쩌고 해서 이렇게 저렇게 부정적으로 된다라는 속설이 있다.

물론, 이름 한번 지었다고하여 태어날때 부터 그 운명을 타고난는 것도 아니고 과학적이나 통계적으로
검증된 것도 없다. 실제로 불용한자가 들어간 사람들 중 크게 성공한 사람도 매우 많다고 알고 있다.

그냥 순수하게 '재미'로 보면 될 거 같다. 마치 심리테스트 하듯이.

🕉 불용한자 모음

블로그 마침 링크의 블로그에 한자 모음들이 잘 정리되어 있다. 여러군데 찾아보았지만 사람들마다 뜻 풀이도
살짝 다르기도 하고, 이유가 명확하게 써있는 곳도 잘 없어서 이 블로그가 최적이라고 생각하였다.
개수도 약 250 ~ 300개 가량 되어 충분할 것 같다.

이제 이 불용한자들을 데이터베이스로 옮겨서 담기 위해 스프레드 시트를 이용해서 복사했다.

데이터베이스에 들어갈 컬럼들을 생각하여 그에 맞춰 일부를 수정하였다.
한자, 뜻과 음, 설명, 그리고 한자의 독음으로 검색할 일이 있을 것 같아서 음을 따로 분리했다.

블로그에 있는 표를 그대로 가져오면 뜻과 음 부분에 괄호와 공백등이 있어
SUBSTITUE, TRIM 함수 등을 이용하여 정리 해주고 RIGHT 함수를 써서 독음을 따로 정리했다.

데이터베이스에 INSERT (MySQL)

데이터베이스에 INSERT하고 잘 나오는지 확인.

슬랙 슬래시 커맨드

슬랙 앱 디렉토리에서 슬래시 커맨드를 생성해주도록 한다.

Short Description 까지 작성하면 슬래시 커맨드가 설정된다.

커맨드 실행

슬랙으로 돌아와서 커맨드가 생겼는지 확인하고 실행시켜본다.

'나의이름은' 이란 커맨드가 만들어졌고 이제 이 커맨드를 실행했을 때
어떤 로직을 실행할 지 정해주면 된다.

Slack API

우선 슬랙 API를 이용하기 위해서 패키지를 설치해준다.

pip install slack_sdk
from slack_sdk import WebClient


class SlackAPI:
    def __init__(self, token):
        self.client = WebClient(token)

    def post_message(self, channel_id, text):
        result = self.client.chat_postMessage(
            channel=channel_id,
            text=text,
        )
        return result

그리고 슬랙 봇을 생성하면서 받았던 Bot Token을 이용하여 특정채널에 메시지를 보내는 로직을 추가해준다.

@app.post("/myname")
async def input_myname():
    channel_id = "U023VKA2PUJ"

    slack_client = SlackAPI(config.slack_bot_token)
    result = slack_client.post_message(
        channel_id=channel_id,
        text="Hello world"
    )

    return "result"

우선은 슬랙 커맨드를 실행했을 때 DM으로 메시지를 보내는 로직을 작성하였다.

채널ID에 채널ID를 넣으면 해당 채널로 메시지가 가고 개인ID를 넣으면 DM으로 메시지가 전송된다.

슬랙 봇 DM 기능

추가로 위 이미지와 같이 슬랙 봇에 DM기능이 꺼져있는 경우

App Home으로 들어가서 스크롤을 내리다 보면 위 이미지와 같은 탭이 나오는데
이 부분에 체크를 하고 슬랙을 껏다가 다시 실행시키면 메시지를 보낼 수 있다.

이 후에는 다음 포스트에서 계속

4개의 댓글

comment-user-thumbnail
2022년 12월 14일

혹시 위 예제 코드 slack_client = SlackAPI(config.slack_bot_token) 해당 부분을 보면 config라는 값이 없는데 어디 명시되어있는건가요??

1개의 답글