본 게시물은 프로그램 작성 전 프로젝트의 필요성과 MVP를 제안하기 위함입니다.
(MVP : Minimum Viable Product)
작성자
: Cherish TI 김소령
Cherish 어플 릴리즈 전 MVP 테스트 가능여부 체크를 위한 코드
commit message convention copied from Cherish-iOS
- feat : 기능 (새로운 기능)
- fix : 버그 (버그 수정)
- refactor: 리팩토링
- style : 스타일 (코드 형식, 세미콜론 추가: 비즈니스 로직에 변경 없음)
- docs : 문서 (문서 추가, 수정, 삭제)
- test : 테스트 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없음)
- chore : 기타 변경사항 (빌드 스크립트 수정 등)
아래의 모든 내용은 깃헙에서 확인할 수 있습니다.
소중한 사람들과의 연락을 꾸준히 이어가게 하는 어플 Cherish.
꾸준하게 연락하고 싶은 사람을 주기와 함께 등록하면, 해당 주기에 맞춰서 알림과 함께 연락 수단 연결합니다.
즉, 본 서비스에서 가장 중요한 기능은 사용자가 설정한 주기에 맞춰서 연락 알림을 주는 것
날짜
: 2월 7일 일요일
목표
남쿵둥이
에게 물을 줄 시간이에요! 라는 메세지 보내주기.AWS 가상 머신
에 cron으로 연락 주기를 입력하고 그에 맞추어 코드 실행하기python
을 기본으로 사용하며, 목표 기한 동안은 1일 1커밋
을 목표로 한다~!/post_msg
에서 확인 가능
MVP 참여자들로부터 애칭
연락 주기
알람 시간
을 받는다.
슬랙 API에서 해당 봇에 맞는 token을 받아 secret.py
에 저장한다.
token은 xoxb-
로 시작하는 문자열이며, secret.py
는 .gitignore
에 포함시켜 github에 올라가지 않도록 한다.
(github을 비롯한 각종 플랫폼에 공유될 경우 슬랙 API 차단됨)
slacker
의 chat.post_message(#channel_name, msg)
를 통해 #mvp_test
에 msg
를 보내는 코드를 작성하여 각각의 파일을 만든다. -> main.py
참고
crontab -e
으로 크론을 작성한다.
형식 : * * * * * [command || .sh]
각 *은 분, 시간, 일, 요일을 의미
시간 지정의 경우 인스턴스 환경의 기준시각을 확인(cmd : date, KST : 한국, UCT : 영국)
기준 시각 변경 명령은 sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
크론의 command 작성 시 실행 파일(python3
등)의 경로를 함께 기재해야할 수도 있다.
.sh
로 작성 시에는 chmod
를 통해 권한 설정을 해야 한다.
Cherish mvp cmd : `python3 [route/file_name]
크론 로그를 남기고 싶은 경우 크론 커멘드 뒤에 >> [route/log_file_name.log] 2>&1
를 추가하고, mvp_cron.log
를 경로에 맞추서 생성한 뒤 chmod 777 [file_name]
을 통해 권한을 설정해준다.
/post_thread
에서 확인 가능
slack bot과 관련한 기능은 정우일 블로그를 참고하여 작성했습니다.
(파일별 중복 제거와 변수명 convetion에 맞게 수정 필요)
import json
import requests
from pandas.io.json import json_normalize
import re
= channel search
ChannelName
: 슬랙봇이 위치한 채널의 이름
params
: request에 보낼 파라미터 설정
token
: secret.slack_token
(공개되지 않도록 유의)
channel_list
: 해당 토큰으로 접근 가능한 채널 리스트
channel_id
: channel_list
중 channelName
이 일치하는 channel의 id
= message search
params
: request에 보낼 파라미터 설정
token
: secret.slack_token
(공개되지 않도록 유의)
channel
: search.channel_id
chat_data
: slack_token
과 channel_id
로 추적 가능한 메시지 내용이 담긴 dataframe
msg
: 정규표현식에 해당하는 메시지
ts
: msg
의 time stamp
user
: msg
를 작성한 유저의 id
= post thread
msg
: trace.msg
의 내용을 -
을 기준으로 나눈 list
users
: MVP 사용 신청자의 id와 이름을 저장하는 dictionary
user_id
: trace.user
message
: thread에 들어갈 내용
data
: request 보낼 파라미터 설정
token
: secret.slack_token
(공개되지 않도록 유의)
channel
: trace.channel_id
text
: message
thread_ts
: trace.ts
(정리 중)