본문 바로가기

전체 글

(14)
RemoteCraft 13 - Touchpad UI 작성중... Touchpad 모바일 환경을 지원하기 위해 해야 했던 첫번째 과제.. 끝이 보이는 김에 내용을 공유하고싶다! 참고자료 없이는 힘들 것 같았는데.. 구글링 중 https://jsfiddle.net/aa0et7tr/5/ 를 발견했고, PubSub 이벤트핸들러와 멀티터치에 대한 로직만 추가하면 내 프로젝트에서도 바로 쓸 수 있는 매우 훌륭한 소스였다. (익명의 개발자님 감사합니다!!) 아직 배포는 안되어있다.. 전체적인 UI가 모바일화면에 제대로 배치가 되지 않고,, 가로와 세로모드를 전환할때마다 전체적인 UI가 망가져 pixel 단위로 위치되어있는 버튼 및 컴포넌트들이 제대로 작동을 하지 않고 있다. 모바일 브라우저 환경에 대한 UI사이즈 및 배치를 적용을 쉽게 할 수 있는 방법은 찾아보는 중... ㅠㅠ ..
RemoteCraft 12 - Debugging (feat. Data Race) 실패. 프로젝트가 잘 실행되니... 문제를 찾고 고쳐야 한다! 오늘의 작업은 아직 발견되지 않은 문제점들(?) 중 오늘은 Data-race에 대해 확인해 보았다. Data race란? A data race occurs when: 1. two or more threads in a single process access the same memory location concurrently, and 2. at least one of the accesses is for writing, and 3. the threads are not using any exclusive locks to control their accesses to that memory. data race는 다음과 같은 조건을 모두 만족시키는 상황에서 발생..
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...
RemoteCraft 10 - 호스팅 + 후기 호스팅 호스팅은 AWS보다는 UI에 대한 진입장벽이 낮다고 하는 GCP, 구글 클라우드 플랫폼에 호스팅을 하기로 결정했다. Godaddy에서 도메인도 의외로 저렴하게 구할 수 있었다. 역시 인프라는 어려웠다. 도메인네임서버 등록부터 해당 인스턴스와 도메인에 대한 연결 까지, GCP 측에서는 HTTPS 로드밸런서 부터 트래픽 로드밸런서, VPC(Virtual Private Cloud), 인스턴스 모니터링 등등 정말로 많은 기능을 제공하지만, 그 기능의 늪에서 내가 진정 필요한 기능을 설정하여 쓰기엔 현재는 과한 기능 이라고 판단했다! 거의 3~4일정도를 매뉴얼을 보면서 헤메고.. 일단 HTTP로 웹사이트가 정상적인 작동을 하는지 확인을 했고 이 후 HTTPS 세팅에 대해 알아보기 시작했다. 결과적으론 HT..
RemoteCraft 09 - 클라이언트 GUI (feat. Javascript + HTML + CSS) 한마디로 표현하자면 스트레스의 연속이었다. 기회가 된다면 좀 더 진득하게 프론트엔드 프레임워크에 대해 알아볼 수 있다면 좋을 것 같다. 단순한 1화면 1UI 프론트엔드이기 때문에 프레임워크를 사용하는 것은 불필요한 복잡도 및 꼭 필요 하지 않은 기능들을 덧붙이게 되는 Overkill이라고 생각하였고 내가 필요한 Javscript + HTML + CSS만 이용하여 '최대한 단순하고 깔끔하게 만들자'를 목표로 시작하였다. HTML + CSS 단순 할 수록 사용하기 편하다! 라는 아이디어를 실현 시키기 위해 (사실 복잡해지면 개발하기도 복잡한 것 같다..), 위와 같은 구성으로 SPA, 정말 SPA를 구현해 보았다. CSS의 grid display를 이용하면 윈도우를 커다란 엑셀시트처럼 사용할 수 있었다. 가..
RemoteCraft 08 - Worker 2021.07.19 - [remote-craft] - RemoteCraft 03 - 계획 01 + 비디오 파이프라인 이야기... (작성중) RemoteCraft 03 - 계획 01 + 비디오 파이프라인 이야기... (작성중) 2021.07.13 - [projects.] - RemoteCraft 01 - 계획 00 RemoteCraft 01 - 계획 00 한번도 안해본 기술은 자료를 잘 모아야 계획 및 설계를 하기가 쉽다... 행복회로 돌리는 중.. N유저 N게임 인스턴스 지원 간편.. hellojai.tistory.com Worker! 비디오 파이프라인에 이어 Worker가 작동하는 전체적인 구조에 대해 좀 더 자세히 그려보고 싶다. 워커는 다음과 같은 구성으로 설계되어 있다: Lobby와 Websock..
RemoteCraft 07 - Websocket (feat. Lobby) 웹소켓은 HTTP의 문제를 해결해주는 약속입니다. HTTP에서 원리적으로 해결할 수 없었던 문제는 “클라이언트의 요청이 없음에도, 그 다음 서버로부터 응답을 받는 상황”이었는데요. 웹소켓은 HTTP가 해결할 수 없었던 이 문제를 해결하는 새로운 약속이었습니다. 즉, 브라우저가 서버에 데이터를 요청하고 서버가 브라우저에 데이터를 보내기 위해 별다른 제약이 없습니다. 웹소켓에서는 서버와 브라우저 사이에 양방향 소통이 가능합니다. 브라우저는 서버가 직접 보내는 데이터를 받아들일 수 있고, 사용자가 다른 웹사이트로 이동하지 않아도 최신 데이터가 적용된 웹을 볼 수 있게 해줍니다. 웹페이지를 ‘새로고침’하거나 다른 주소로 이동할 때 덧붙인 부가 정보를 통해서만 새로운 데이터를 제공하는 웹서비스 환경의 빗장을 본질..
RemoteCraft 05 - WebRTC Pion! 2021.07.23 - [projects.] - RemoteCraft 04 - WebRTC 소개 RemoteCraft 04 - WebRTC 소개 WebRTC ㅎㅇ! RemoteCraft는 나만의 작은 플랫폼이지만... 가장 Universal하게 쓸 수 있는 플랫폼에 정착하고 싶었다. 그때 찾은 것이 바로 WebRTC..! WebRTC란 plugin-free web - Real Time Communication의 준.. hellojai.tistory.com WebRTC 클라이언트 개발 Go 커뮤니티에는 정말 없는 것 빼고 다 있다. 다행히 내가 필요한 것은 모두 있어서 고생을 많이 덜었다.. 난 Server-to-Peer 연결을 하는 것인데 이걸 써도 되는 건가..? 싶었지만 곰곰이 생각해 보니 결국 Se..