일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- node.js
- 자바
- Spring
- 웹
- 스프링
- java
- 안드로이드
- mysql
- django
- JPA
- BCI
- 파이썬3
- Spring Boot
- Python
- 파이썬
- rabbitmq
- 개발
- python3
- 데이터베이스
- db
- HTTP
- ORM
- 장고
- 디자인 패턴
- 보안
- 스프링부트
- bytecode
- 웹 개발
- 자료구조
- 스프링 부트
- Today
- Total
목록비동기 (4)
semtax의 개발 일지
개요 이번 포스팅에서는 지난 포스팅에서 작성한, 웹소켓 Consumer를 비동기방식으로 바꾸어 보도록 하겠다. 왜 비동기로 바꾸는가? 사실, 기존의 동기방식은 비동기 방식에 비해, I/O가 끝날때 까지 계속 기다려야 하므로 비효율 적이라는 단점이 존재한다. 하지만, 비동기로 작성하는 경우 I/O가 끝나지 않아도 즉시 결과값이 리턴된다. 따라서, I/O과 완료되면 완료된거에 따른 콜백함수가 호출되는 방식으로 진행된다. 때문에, 계속 다른일을 할 수 있어서 더 효율적이게 된다. 이제 동기 방식으로된 코드를 비동기 방식으로 바꾸어 보자. 여담으로, Django ORM은 동기방식으로 작동한다. 예제 chat/consumer.py 를 아래 처럼 수정해준다. from channels.generic.websocket..
개요 이번 시간에는 node.js의 프로세스 관리 도구인 pm2에 대해 소개를 하도록 하겠다. Process Manager 먼저 아래의 상황을 가정해보자. 만약 node app.js나 npm start 만을 이용해서 서비스를 띄운다고 가정을 해보자. 그런데, 예상하지 못한 상황(예를 들어 예상 못한 값이 들어와서 예외처리를 못한다거나, DB 커넥션 풀 개수가 꽉찼다거나, 모르고 에러 핸들러 1개를 깜박하고 처리를 못했다거나 등등)이 와서 서비스가 죽어버렸다. 그런데 당신은 자고 있어서 대처가 불가능 하였다. 이런 슬픈상황이 ㅠㅠ.. 또 아래와 같은 상황을 가정해보자. 당신이 node.js를 기반으로한 동접자 100명의 서비스를 운영한다고 가정해보자. 그런데 운이 좋아서 사용자가 갑자기 500명으로 5배 ..
개요 이번 포스팅에서는, rabbitMQ를 이용해서 작업 큐를 구현해보는 내용을 진행하도록 하겠습니다. 작업 큐(Work Queue) 란? 작업 큐는 쉽게 말해서 은행이나 식당에서 사용하는 번호표 같은것입니다. 사림들이 은행에 왔는데 창구가 꽉 찬 경우 번호표를 받고 대기 한 뒤, 차례가 오면 가서 업무를 처리하는 식이죠. 만약 이러한 번호표가 없다면 손님들이 대기하지 않고 떠나게 되겠죠. 즉, 작업 큐의 핵심은 오래걸리는 작업들의 요청이 허용량 이상으로 쏟아졌을때 큐를 이용해서 대기열을 둔 뒤에 실제 작업하는 사람이 작업을 하나씩 꺼내가서 작업을 한다는 것입니다. 이렇게 하는 경우 실제 작업을 시키는 사람의 입장에서는 요청을 즉시 즉시 받는것 처럼 느껴지는 것이지요. 즉, I/O를 요청하고나서 결과값을..
개요 이번 포스팅에서는 node.js로 메시지 큐 중에 하나인 rabbitmq를 사용하는 법에 대해서 다루도록 하겠습니다. What is Rabbitmq? Rabbitmq는 메시지 브로커 서비스로, 불특정 다수의 사용자가 다른 사람에게 메시지를 전달하려고 메시지 브로커에 메시지를 전달하면 메시지 브로커가 메시지를 받아서 보관하고 있다가 해당 메시지를 받으려는 사람이 보관한 메시지를 꺼내가는 형태의 서비스 입니다. 한마디로, 우체통이나 편지함을 생각해보면 쉽습니다. 편지를 보내려는 사람이 편지를 써서 우체통에 넣으면 받는 사람이 우체통에서 편지를 꺼내가는 구조이지요. 즉 정리하면 아래와 같습니다. 보내는 사람 = 메시지를 보내는 사람 받는 사람 = 메시지를 꺼내가는 사람 우체통 = 메시지 브로커 보통 Ra..