일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자바
- 웹 개발
- 개발
- java
- bytecode
- Python
- django
- JPA
- 스프링 부트
- ORM
- db
- 스프링부트
- Spring Boot
- 장고
- rabbitmq
- Spring
- python3
- node.js
- 보안
- BCI
- 안드로이드
- 웹
- 자료구조
- 스프링
- 파이썬3
- HTTP
- 파이썬
- 디자인 패턴
- mysql
- 데이터베이스
- Today
- Total
목록channel (2)
semtax의 개발 일지
개요 이번 포스팅에서는 지난 포스팅에서 작성한, 웹소켓 Consumer를 비동기방식으로 바꾸어 보도록 하겠다. 왜 비동기로 바꾸는가? 사실, 기존의 동기방식은 비동기 방식에 비해, I/O가 끝날때 까지 계속 기다려야 하므로 비효율 적이라는 단점이 존재한다. 하지만, 비동기로 작성하는 경우 I/O가 끝나지 않아도 즉시 결과값이 리턴된다. 따라서, I/O과 완료되면 완료된거에 따른 콜백함수가 호출되는 방식으로 진행된다. 때문에, 계속 다른일을 할 수 있어서 더 효율적이게 된다. 이제 동기 방식으로된 코드를 비동기 방식으로 바꾸어 보자. 여담으로, Django ORM은 동기방식으로 작동한다. 예제 chat/consumer.py 를 아래 처럼 수정해준다. from channels.generic.websocket..
개요 이번 포스팅에서는 실제로 Channel 라이브러리를 이용해서 웹 소켓 요청을 처리하는 부분을 작성하도록 하겠습니다. 웹 소켓? 웹 소켓은 말 그대로, 웹 브라우저에서 서버와 계속 연결을 유지하면서 소켓 통신을 할 수 있게 해주는 프로토콜을 의미한다. 주로 채팅 서버나, 연결을 계속 유지하면서 메시지를 받거나 전송해야 하는 곳(Ex : 푸시 알림, 게임)에 많이 쓰인다. 보통, HTTP/S 등으로, 웹소켓을 연결한다는 메시지와 기본적인 세션정보들을 전송하고, 그 이후에 실제 웹소켓으로 통신하는 방식으로 이루어져 있다. 사실, 기존의 http나 ajax 같은것들이 있는데 굳이 웹소켓 같은 것을 써야하나? 라고 생각하는 사람들이 있을 수 도 있다. 하지만, 푸시 알림이나 서버와 계속 연결을 유지하면서 데..