Django-Channels와 HTTP 통합해보기 프로젝트로 IoT 애플리케이션을 제작하고 있는데, 처음 시도 해보는 부분이라서 어떻게 구축을 시작해야할지 막막한 부분이 많았습니다. 개인적으로 Python을 주로 사용하고 있고, 중앙 서버를 Django로 구축하기로 했기 때문에, Django에 관한 여러 정보들을 찾아보다가 Channels라는 Django 애드온을 알게 되었습니다. Channels를는 주로 채팅 관련 서비스에 사용 되는것 같은데, Django를 웹소켓 서버로 사용할 수 있도록 도와주는 점에서 잘 활용하면 계속 연결이 유지되어야하고, 양방향 통신이 필요한 IoT 서버로 사용할 수 있다고 판단하여 Channels를 사용 해보게 되었습니다. 하지만 어플리케이션과 IoT 서버가 항상 WebSocket으로 연결되어 있진 않을것 같았고... IoT기기와 서버가 웹소켓을 통해 항상 연결되어 있고, 어플리케이션은 해당 웹소켓 연결에 HTTP로 데이터를 던져주는 방향으로 생각을 해보게 되었습니다. Django-Channels 외부 Consumer에서 접근 Django-Channels 공식 문서에 힌트가 될 부분을 찾았습니다. Channels-Layer를 외부 Consumer에서 접근할 수 있는 방법에 대한 설명이었는데, 이 부분을 잘 활용하면 Django api로 웹소켓에 접근이 가능해보였습니다. ⚠️ 여기서 데이터를 받는 Consumer는 WebsocketConsumer를 통해 생성되었습니다. from channels.layers import get_channel_layer channel_layer = get_channel_layer() 먼저 이렇게 get_channel_layer() 함수로 channels를 조작할 수 있는 객체를 받을 수 있었습니다. await channel_layer.group_send( chat_name, {"type": "chat.system_message", "
2019년 3월 20일에 공개된 구글의 '스타디아'라는 게임 스트리밍 서비로 인해 게임 스트리밍 서비스가 큰 화두가 되었습니다. 게임 스트리밍 서비스란 '클라우드 컴퓨팅'을 이용해 플레이어들이 게임을 따로 설치하지 않고, 기업에서 제공하는 서버가 게임 파일 및 연산 등을 모두 처리합니다. 플레이어의 PC나 플랫폼은 조작에 발생하는 신호 및 화면만 송출하기 때문에 게임의 사양에 관계 없이 게임을 플레이 할 수 있다는 것이 큰 장점입니다. 또한, 불법 복제의 방지, 핵 방지, 설치를 안해도 된다는 점에서 기존의 게임 설치 방식과는 다른 많은 장점이 존재합니다. 'Stadia 공식 Recap 영상' 이런 게임 스트리밍 서비스는 고성능 PC가 충분히 보급되지 않은 대부분의 사람들에게 큰 영향을 끼칠 것으로 보입니다. 또한, NVIDIA나 AMD, INTEL 등 그래픽카드 등의 컴퓨터 부품을 제공하는 업체에도 상당한 영향을 줄 수 있을 것이고, 대부분의 게임 개발 업체에서도 눈 여겨 보고 있을 것입니다. 실제로, 닌텐도, MS, 베데스다 등에서 줄줄히 게임 스트리밍 서비스를 지원하겠다고 발표 하기도 했습니다. 현재 스트리밍 서비스를 제공하는 업체 중 가장 활발한 것이 소니의 'Playstation Now'이기 때문에 PS Now의 예를 한번 보겠습니다. Playstation Now는 현재 한국에선 플레이 할 수 없고 타 주요국에서 제공되고 있는 PS4와 PC에서 제공하는 게임 스트리밍 서비스입니다. PC에서 PS의 독점작들을 플레이 할 수 있다는 점에서 사람들에게 큰 관심을 모았습니다. 또한 저사양 PC에서도 인터넷 회선만 잘 돼있다면 고사양의 게임들을 즐길 수 있고, 생각보다 지연 시간이 적었다는 점에서 많은 호평을 받기도 했습니다. 하지만 PS Now에도 여러가지 단점이 존재 했습니다. 먼저, 720p해상도 고정, PS Now는 1080p이상의 해상도를 지원하지 않