본문 바로가기

Spoon/스푼 매니저 프로그램

[ 개발 아이디어 ] 스푼 라디오 매니저 프로그램 개발 - (4)

안녕하세요~
그동안 어떻게 지내셨나요?? 근 한 달 만이네요
전 부산, 제주도, 일산 등 여러 곳에서의 힐링을 하다가 왔답니다.
그중 6일간 제주도에 있었는데 좋은 곳이 많더라고요
나중에 혹시 제주도 여행 계획이 있으시다면 숙소, 먹거리는 추천해드릴게요~

물론 중간중간 프로그램상의 변화도 있었답니다.
프로그램에 대해서 얘기를 해볼까요~

처음으로, 저번 포스팅에서 말씀드렸다시피 어떤 아이디어와 어떤 기술을 이용해 개발했는지 말씀드리려고 합니다.
저는 스푼라디오 웹 버전을 사용해보고 크롤링을 이용하면 매니저 프로그램을 개발할 수 있겠다고 생각하여 진행했습니다.
그래서 제가 이용한 것은 파이썬에서의 웹 크롤링입니다.

Python 3.7 버전에서 Selenium을 이용했습니다.
BeautifulSoup와 Selenium 중에 고민했지만 저는 Selenium이 더 사용하기 괜찮았습니다.

1] 채팅 인식
   매니저 프로그램 개발 간 가장 많이 신경을 쓴 부분은 채팅을 얼마나 어떻게 읽을 것인가였습니다.
   어떻게 하면 채팅을 누락하지 않고 읽어오는가에 중점을 맞췄습니다.
       1. 가장 마지막 채팅 1개를 읽어서 처리
           → PC 및 네트워크에 따라 누락되는 채팅 발생
       2. (총 채팅의 개수) - (지금까지 읽은 채팅 개수) 만큼 마지막 채팅을 읽어서 처리
           → 총 채팅이 100개 이상 됨에도 불구하고 최대 99개까지만 인식
       3. 가장 마지막 채팅 5개를 읽어서 처리
           → PC 및 네트워크에 따라 성능의 차이가 발생하지만, 현재까지는 채팅 누락이 발생하지 않음
       4. 읽은 채팅은 flag를 추가하여 flag가 없는 채팅을 읽어서 처리
           → 읽은 채팅에 flag를 추가하는 방법 탐색 및 진행 중
   현재 3번의 방식으로 채팅을 읽어오고 있습니다.

2] 특수문자 처리
   두 번째로 시간이 많이 소요된 부분은 특수문자 처리입니다.
   스푼에서는 생전 처음 보는 희한한 특수문자가 많이 사용되고 있습니다.
   아마 모든 방송플랫폼 중 가장 많은 특수문자가 사용되고 있을 거예요
   (제 닉네임만 해도 글자 사이사이 처음 보는 특수문자가 있죠....)
   비슷한 프로그램을 개발 예정이신 분들은 이 부분을 많이 신경 쓰셔야 할 것 같습니다.

 

 

3] 다중 쓰레드
   다음은 쓰레드인데요
   저는 1개의 쓰레드를 생성하여 채팅을 읽어 들여 전역 큐에 넣는 역할을 하고
   메인 쓰레드에서는 전역 큐에 들어 있는 내용을 처리하여 채팅을 입력하게 하였습니다.
   파이썬에서 쓰레드 생성 및 관리를 쉽게 할 수 있으니 잘 찾아보시면 될 것 같습니다.


추가로 말씀드릴 것은 프로그램 배포에 관한 내용입니다.
스푼라디오 매니저 프로그램에 관심이 있는 분들이 좀 있는 것 같아 다시 말씀드리려고 합니다.

 

2019/09/24 - [Spoon] - [ 배포 받는 방법 ] 스푼 라디오 매니저 프로그램 개발 - (7)

 


작성해서 보내주시면 간단한 판단 후에 며칠 내로 프로그램 배포해드립니다.

다음 포스팅은 추가된 기능과 사용법 설명글을 작성할 예정이에요~
다들 더운 날씨 조심하시고 나중에 봐요~

반응형