본문 바로가기

remote-craft

RemoteCraft 11 - 브라우저 실험 결과 + 힘들었던 점 + 해야 할것

브라우저! (웨일즈가 빠졌네..)

 

오늘은 Pion Go v2 -> v3 업데이트 작업 및 브라우저 테스트 하는 시간을 가져보았다. 첫 브라우저 테스트부터 계속 실패해서 패닉이 왔었고 두시간 정도 정신없이 이것저것 로그를 찍어보며 코드를 뒤엎는 과정에서... PC가 VPN이 켜져 있는 것을 확인.. 하...

VPN을 쓰게되면 STUN이 호스트를 찾을 수 없어 에러가 발생한다!  git reset! 

VPN에 대해 까맣게 잊고 구글링 중 발견한 깃헙 이슈다. https://github.com/webrtc/samples/issues/1227 크롬 77버전 에서 webRTC 클라이언트를 실행 할 때 지속적으로 701이 발생한다던.. 식은땀이 흘렀지만 괜찮다 이제 괜찮으니까

 

 

브라우저 테스트:

Google Chrome version 92.0.4515.107

Mozilla Firefox version 90.0.2

Apple Safari version  14.1.1

Naver Whale version 2.9.118.38 (아 chromium 기반이지..)

 

 

모두 잘 작동하는 것으로 보인다.. 좋아좋아..

 

 

당장 고민하고 해봐야할 것:

  1. 로깅 개선: 로그를 함수마다 '실행-> 에러가 있다면 에러 로깅 -> 함수완료' 스타일로 로그를 작성했다. 개발 중에는 코드의 흐름을 쉽게 볼 수 있어서 '유용한' 로그였는데... 어느정도 코드량이 늘어나고 자연스럽게 로그양도 많아지니 부작용이 생겼다. 이제는 flow를 확인하는 것이 아닌 문제가 있는 디버깅 포인트를 찾아야 하는데 많은 로그들이 오히려 문제를 진단하는데 방해가 된다. 로깅의 단계를 debug, info, warning, error로 나누어서 레벨별로 조정하여 실행 시킬 수 있도록 조정해야겠다. 코드양은 지속적으로 늘어날테니 더늦기전에 서비스 별, 로그레벨 별 로깅을 지원하도록 리팩토링 하는 작업이 필요하다.
  2. 클라이언트에서 디버깅을 해야하는 경우가 잦을 것 같다. 아마 회원가입, 클라우드 세이브파일 연동, 연결된 워커 및 게임인스턴스를 확인할 수 있는 서버 모니터링 API가 필요하다.. 워커를 현재 6개정도 띄워놓고 있는데 어떤 유저세션과 어떤 워커, 게임인스턴스와 연결되어 있고 현재 연결상태가 어떤지 등등, 일일이 워커를 들어가서 확인하는 것을 멈추고 싶다.
  3.  CI/CD 절실하다.. 그리고  lobby와 워커의 repository를 분리하는 것도 고민해 보고 있다. webrtc v2 -> v3 업데이트도 vm 인스턴스 4개를 직접 돌아다니며 git pull && go build -o worker.exe ./main/worker/worker.go 를 했다. 배포 자동화!!!