
본 게시물은 프로그램 작성 전 프로젝트의 필요성과 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
(정리 중)