1차(Tric Project) 를 어느정도 완료하며 들었던 생각은
"구독형 서비스"
이제 모두가 사용할 수 있는 SaaS 로 전환하기 위해
- Redis 기반 구조
- TelegramBot 인터랙티브 기능 추가
- 소개 영상 (숏츠, 릴스, 틱톡)
를 우선 추가 했습니다.
진화된 EveryDic 의 목표는?
- Every : 모두에게 모든 사이트의 검색
- D : 전달한다
- I : 정보를
- C : 편하게
= 모든 사이트의 검색된 정보를 편하게 전달한다.
= 해당 채널 모두에게 등록된 검색 카드 조건으로 반복 검색하며 전달 (1일 총 16회, 06~21시)
현재까지 구동/적용내역
1. Hardware
- 라즈베리파이4 (4core 4G)
- Home WiFi
2. Software/Library
- Python:3.x
- Redis:7.0.4
- python-telegram-bot:13.15 : Telegram과 통신을 담당해요
- Selenium/Chromium : 로그인/스크롤링/이미지캡춰 등 다양한 기능을 활용해요
- Crontab : 1시간 간격 검색카드 서치를 수행합니다. (8-20 - 1시간 간격 작업 수행)
- Crontab + ShellScript : EveryDicBot(Telegram) 의 올웨이즈런을 담당해요
- Filmora12 : 이걸로 동영상 편집을 해요 (유일한 지출 - 블프 86,400)
3. Data Processing
- Hash(숫자) 기반 처리 : String -> Number 로 변환. (String 처리는 리소스를 많이 써요)
- 채널별 발송기사 중복방지 : Redis - Sets 을 활용하고, 제목을 Hash로 변환하여 숫자로 처리해요.
- 채널별 검색카드 항목관리 : Redis - Lists 로 채널별 검색카드 목록을 관리해요.
- 검색할 카드 입력관리 : Redis - Hashs 로 개인별 검색카드의 입력/관리해요 (유효시간 셋팅)
- 검색할 카드 구성관리 : Class 에 대문자 변수명으로 구성항목을 설정, 소문자 메서드명을 통해 조회나 필수값 등의 유틸성 체크를 해요. 구성항목이 변경될 때마다 하드코딩을 최소화하기위한 내역이에요.
- 검색할 카드 저장/전달 : Python - dict() 오브젝트로 돌아다니며, Redis 인/출시 encoding(utf-8)과 더불어 마샬/언마샬링 개념으로 '오브젝트<->바이트스트링' 으로 전환/전달 합니다.
향후 계획
- [ing] 소개영상 지속 제작 및 업로드 (숏츠/릴스/틱톡)
- [ing] 검색 카테고리 추가 => 검색포털, 신문사, 오픈정부(서울), ..
- [o] Markdown String 특수문자 치환 펑션
- [o] 분산/멀티프로세스 기반 Search 배분 => Redis 키 분배 + 멀티프로세싱 구조
- [ ] Telegram GUI 기반 전환
- [ ] Kakao Talk Bot 검토
- [o] 채널 별 검색카드 수 제한 => 기능만 구현
- [o] 저비용 Core 기반의 클라우드 VM 찿기 or Mac mini => OCI - 프리티어 4core 24G Aarch64
- [o] 저비용 Redis 전용 VM 찾기 or Mac mini
- [o] 검색 스크린샷 jpeg 압축
- [o] Redis - Hash 기반 채널 채널 정보/상태 저장
- [o] Markdown 기반 치환된 특문 노출 정리
- [o] 삭제된 채널 검색데이터/링크 삭제
- [ ] 중복된 기사 등으로 신규 기사가 없을시 체크메시지 푸시는 옵션으로 채널정보에 관리 및 처리
- [o] 쉬운 커맨드 매핑기능
- [ ] 내부 명령어 매핑기능 추가
- [o] 동일URL 캐싱된 데이터로 처리
- [ ] Telegram -> 검색시 비동기 처리
- [o] ChatGPT 연동 (openai)
- [o] RaspberryPi (4core 4G) -> Cloud 기반 (4core 24G) 서비스로 전환
- [o] 자동 검색 시간 및 주기 설정 기능 추가
- [o] TelegramBot 기능을 crontab+shell -> pm2 로 관리

< TikTok >
< YouTube - 숏츠 >

< Instagram - 릴스 >
'EveryDic Project' 카테고리의 다른 글
| EveryDic Project 정리 + 리팩토링 시작 (1) | 2023.02.19 |
|---|---|
| [초기] TRIC : 정보를 편리하게 반복적으로 전달하자 (4) | 2022.09.18 |