대만 여행을 가게 되었다. (몇달 됨) 어릴적 부터 꿈이었던 게임 개발자가 되고싶어서 게임디자인에 관한 글을 쓰다가, 어쩌다보니 웹 개발자가 되어 일을 하면서 배우는것들에 관한 글을 썼었는데, 이젠 개발이 지겨워져서 여행 후기에 대한 글을 쓰게 되었다. 대만이라는 나라에 대해서는 정치, 역사적인 내용 외에는 별로 아는것이 없었다. 최근에 위스키에 빠지게 되면서 "카발란"이라는 싱글 몰트 위스키 브랜드에 대해서 알게 되었다. 위스키를 생산하는 국가가 대표적으로 스코틀랜드, 아일랜드, 미국, 일본 정도가 있는데 대만의 카발란이 대만 특유의 덥고 습한 기후를 이용해 특별한 위스키를 만들고 있다고 하더라. 대구도 덥고 습한데다 물 좋기로 유명한데 언젠가 대구를 대표하는 싱글몰트 위스키가 나올지도 모르겠다... 최근에 친구들과 도쿄 여행을 다녀왔는데, 여자친구도 여행이 가고싶어졌는지 해외여행 계획하던거 얼른 가자고 해서 여러 나라를 찾아봤다. 카발란 덕분에 대만이라는 나라에 관심이 생긴 나는 몽골, 태국, 일본 등 여러 고민을 하다가 은근히 대만으로 가는게 어떻냐고 꼬셨는데 성공했다. 야호 나는 해외여행을 5년 전에 베트남으로 다녀온게 처음이자 마지막이었다가 최근 1년 사이에 무려 3번째 해외 여행을 하게 되었다. 그단새 익숙해진건지 아님 별로 기대가 되지 않았던건지 시간이 훌쩍 잘 가버렸다 . 대만 여행이 일주일 정도 남았을 때 날씨를 보니 참나 무슨 일주일 내내 비가 온다고 하더라. 비가 많이 오는 나라라고 듣기는 했는데 정말 이렇게 많이 올 줄은 몰랐다. 비가 계속 온다는 소식에 조금 시무룩한 기분으로 대만으로 출발해서 막상 타오위안 공항에 도착하니 걱정했던 더위 보다 생각보다 시원해서 역시 더운 나라에는 비가 와야 시원하다고 생각했다. 편의점에서 교통카드를 사기 위해 왔다갔다 하는데 와! 이렇게 좋은 냄새가 나는 편의점은 처음이었다. 중화음식이 호불호가 갈린다고 하고 취두부의 그 악명 때문인지 사실 음식에 대해 별로 기대를 하지 않아서 그...
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", ...