나만의 무기 : HIGHLIGHTING/개발 일지

Day 23 (2) : Chat Process 정리

정글러 2022. 2. 26. 04:10

 

먼 옛날 이런 일이 있었다

https://uneducatedjungler.tistory.com/160

 

Day 11 : front에 보낼 Audio 데이터 경량화

오늘할일(이었던것) Chat flow 분석 프로토타입 고치기 chat flow는 오디오나 비디오랑 다르게 그냥 텍스트 형태의 JSON이라 다루기는 쉽다 그래서 주제 고르는 단계에서 대충 구현은 해둔 상태 진짜

uneducatedjungler.tistory.com

옛날옛적부터 개선하려고 생각은 했지만 할일에 치여 못했던 프로세스 정리

 

그동안 워낙 바빠서 주먹구구식 chat Process를 달고 가끔씩 에러터지는걸 피해가면서 개발해왔는데

오늘 목표였던걸 끝내고 시간이 조금 남았으니 지금이 해결할 기회인 것 같다

 

pytchat은 소켓을 열고 json데이터를 pipe처럼 지속적으로 공급해주는 기능을 가진 라이브러리다.

우리 프로젝트 여기저기서 탈 라이브러리를 시도하곤 있지만 얘는 고려 대상이 아닌 것 같다

 

소켓으로 빨대꼽는걸 내가 직접 구현하자니 너무 많은 시간이 걸릴거고,

그냥 쓱 긁어서 방송 전체의 채팅 json파일을 뽑아 파싱하는건 할수있으니까 해봤는데,

무슨 JSON파일 용량이 백메가단위...

빨대꽂아서 조금씩 쓰고 버리는거랑 이 파일을 받고 읽어서 분석하는게 시간차이가 너무 많이난다.

그냥 곱게 라이브러리를 쓰자.

 

 

아무튼 파이프한번 잘못 꼽으면 몇분이 낭비되는 chatProcess인 만큼

빨대 한번만 잘 꼽고도 에러없이 한번에 다 할수 있도록 다시 정리

기왕 하는거 함수형으로

 

유튜브의 버그인지 가끔 json 안에 이상한 값이 들어있을 때가 있고, 라이브러리는 그걸 그대로 뱉어주는데

이젠 각각의 함수가 알아서 흘려주게 됐다

 

chat flow 분포도 작성

chat viewer에 쓸 message를 elapsedTime별로 묶어 dict 만들기

중간중간 superchat 발생시 환율 고려해서 원화로 통계

키워드 검색에 쓸 채팅 로그 파일화까지

 

여긴 이제 완성이야.

 

스트링을 다루는 함수를 만드는건 PS 문제 풀때가 생각나서 재밌다.