프로그래밍/회고 6

DASHI - 뜨거운 순간 업데이트

쉬면서 엉덩이가 무거운 상태로 있더라도 언제나 문제를 풀 방법을 찾았을땐 힘이난다. 카페에서 스트리머의 프로핏을 개선하려면 어떻게 해야할지 고민하면서 책을 읽고있다가 뜬금없이 얼마전에 봤던 슬라이딩 윈도우(Sliding Window) 알고리즘을 이용한 이상현상 감지법이 생각났다. (글로 적고나니까 진짜 ADHD 미쳤다...ㅋㅋㅋㅋㅋ) 즉시 책을 덮고 카페를 떠나 컴퓨터를 켜서 작업을 시작했다.방송을 보다보면 웃긴 장면에는 "ㅋㅋㅋㅋ"가 도배되면서 채팅이 단시간에 폭발한다. 채팅이 버스트하는 구간들을 슬라이딩 윈도우를 이용해 잡아내면 유튜브 편집 영상 당 투입되는 시간을 줄여서 영상 단가를 줄여버릴 수 있을 것 같다는 생각. 편집점을 찾는데 뿐만 아니라 다시보기를 보는 시청자도 놓쳐버린 방송에서 어느 부..

DASHI - 챕터와 속도 개선 업데이트

R2 도입 얼마전, DASHI의 스트리밍 소스를 트위치에서 치지직으로 변경했다. 이미 다른 사람들이 치지직 API를 가지고 만들어 둔 소스를 참고해서 구현한 터라 크게 이슈는 없었지만 한가지 마음에 걸리는 부분이 생겼다. 바로...우리집 인터넷 속도! 영상 서빙을 하면서 100mbps 인터넷을 쓰는 건 애초에 걱정했던 바였지만, 그래도 트위치때는 720p 30프레임이라 세그먼트당 파일 크기가 아주 못볼수준은 아니었다. 하지만 치지직은 60프레임이라 거의 1.5x~2.0x가량 용량이 뛰었고 시청에도 불편함을 줄 정도가 되었다. 이를 해결할 방법을 여러 생각해보았는데... Plan1. 500mbps 인터넷을 가입한다 500메가 인터넷을 가입한다는 플랜을 떠올렸으나, 하루 이용자 7명 정도의 서비스 때문에 월..

DASHI - 트위치 다시보기 부활

2022년 11월 10일 트위치 다시보기 서비스가 사라졌다. 오늘이 19일이니까 1년하고도 정확히 9일지났는데 너무나 불편한게 많아서 견딜 수 없었다 ㅋㅋㅋ 솔직히 1080p 뺏긴건 괜찮다...근데 다시보기는 선 넘었다고 생각함 좋아하는 스트리머가 갑자기 방송을 키거나, 아니면 그 날의 녹화본이 사라지거나 하는 경우가 잦아서 트수는 이 상황을 안타까워하며 분개하며...나만의 다시보기 스트리밍 서비스인 dashi를 어제 하루를 꼬박 투자해서 만들었다. 기능 - Observe하는 스트리머의 방송 녹화: 방송을 한번 켤때마다 하나의 다시보기가 만들어진다. - 지난 방송 리스트: 최대 3일까지의 방송목록을 가지고 있는다. - 최근 잘라보기: 지금은 리밋을 해제에서 처음부터 끝까지 볼 수 있지만, 최근 N시간만 ..

[Python] 국내 주요 음원차트 API

Melon | melon-chart.py Bugs | bugs-chart.py Genie | genie-chart.py Vibe | vibe-chart.py Flo | flo-chart.py Flutter 강의를 막 떼서 음원차트 트래킹 앱을 만들어볼까싶었다. Front는 목록이랑 알림정도라서 난이도가 높지않아 보였지만, Backend는 국내 음원사이트 긁어오는 프로그램부터 만들어야하는데...생각에 현재 배포된 국내음원차트 API들을 살펴보았는데 대부분 웹 크롤링 방식이었다. 봇이라고 거르지도 않고, 음원사이트들이 그래도 몇년에 한번씩 단장하기때문에 꽤 괜찮은 방법이긴하지만 개인적으로는 진짜 API를 따오고 싶었다. 다행히도 내가 안드로이드 개발자이기 때문에 당장 떠오르는 방법이 있었다. 바로, 앱에서 ..

김래일의 애니캐 테스트 - 첫 React 프로젝트 회고

https://rail-otaku.nooks-list.com/ 시작은 충동적으로 나는 웹 개발을 가장 싫어했다. 왜냐면 도전적인 부분이 없어서였다. 모바일 앱 개발을 하다보면 부족한 메모리와 씨름하고, 멀티 스레딩을 하고, 필요에 따라 캐시해둘것도 많이 만나게 된다. 백엔드는 말할 것도 없다. 웹에서는 좀 다르게 느껴진다. 물론 웹도 최적화 같은건 필요하겠지만, CDN쓰냐 마냐나, 파일 용량부분에서 싸우는게 많다. 나는 React, Vue.js 같은 웹 프론트엔드 프레임워크가 만들어지기 전에 웹을 개발하는 방법을 배웠다. jQuery로 DOM element들을 직접 움직이는 방식인데, 지금은 패러다임이 완전히 바뀌었다. 웹을 Component 단위로 조각 조각 나누고, 각 Component들은 상태의 변..

TinyDoge - 하루만에 만든 PNG 손실압축 프로그램 회고

만들게 된 계기 회사에서 안드로이드 앱을 만들때 Lottie 애니메이션을 많이 쓰면서 개발하고 있다. 벡터기반의 Lottie 애니메이션이라면 용량걱정은 없겠지만, 3D 렌더링된 이미지를 프레임별로 재생하는 형식의 Lottie 애니메이션이기 때문에 용량 부담이 컸다. 애니메이션을 줄이고 줄여서 14mb가 되었는데, 이건 좀 아니다 싶어서 결국 시작시에 인터넷 여건이 좋으면 다운로드 받아두는 걸로 구현을 해두긴 했다. 애니메이션이 나에게 처음오면 zip으로 압축했을때 1~2MB 정도의 사이즈다. 보통 이게 3개정도 넣어달라고 우르르 몰려오는데...순식간에 6MB가 앱 용량에 추가되는거다. 디자이너분들도 PINGoo같은 툴을 써서 압축해서 주시지만, TinyPNG만큼은 압축률이 좋지않다. PINGoo가 평균 ..