일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 공룡게임
- Nest.js
- Python
- Sequelize
- AWS
- MongoDB
- game
- Queue
- 자료구조
- jest
- class
- MySQL
- TypeScript
- 정렬
- mongoose
- cookie
- nodejs
- flask
- nestjs
- 게임
- OCR
- Express
- dfs
- JavaScript
- GIT
- react
- Dinosaur
- typeORM
- Bull
- Today
- Total
목록Queue (9)
포시코딩
개요 자료구조를 공부할 때 파이썬이 다루기 쉽다해서 자료구조, 알고리즘은 파이썬으로만 해왔는데 얼마전, 토스 코딩테스트에서 node.js 부문에 대해 문제를 봤을 때 오로지 JavaScript로만 풀 수 있게 되있는걸 볼 수 있었다. 문제를 풀 수 있고 없고를 떠나, 앞으로 node.js 관련 개발을 베이스로 깔고 갈텐데 자료구조나 알고리즘을 JavaScript로 다루지 않는다는게 좀 웃긴거 같아서 당분간은 죽이되든 JavaScript로 연습해볼 생각이다. Queue class Node { constructor(data) { this.data = data; this.next = null; } } class Queue { constructor() { this.head = null; this.tail = n..
PriorityQueue 사용법 from queue import PriorityQueue pqueue = PriorityQueue() pqueue.put((5, 'Python')) pqueue.put((15, 'Javascript')) pqueue.put((10, 'Java')) arr = [] while not pqueue.empty(): value, data = pqueue.get() arr.append((value, data)) print(arr) # [(5, 'Python'), (10, 'Java'), (15, 'Javascript')] 선언 from queue import PriorityQueue pqueue = PriorityQueue() 데이터 삽입 pqueue.put((1, 'Python'..
개요 https://4sii.tistory.com/422 https://4sii.tistory.com/423 https://4sii.tistory.com/428 https://4sii.tistory.com/456 이전에 작성됐던 동시성 문제 관련 글들은 적용하며 겪은 시행착오에 대한 내용이라면 이번 글은 성공적으로 완성된 모임 참여 로직에 대한 전체적인 설명이 내용이 되겠다. 흐름을 돕기 위해 코드 중간중간 console.log()로 설명을 추가했다. 들어가기 앞서 이제부터 코드를 볼건데 코드만 보면 이해하기 어렵기 때문에 이해를 돕기 위해 그림으로도 그려봤다. 보다가 흐름이 이해가 가지 않는다면 위로 올라와 어떤 메서드에서 어떤 흐름으로 진행되고 있는지 한번 보고나서 코드를 보면 도움이 될 것이다. 클..
FCM과 Firebase FCM: Firebase Cloud Messaging 이란 뜻으로 구글의 클라우드 메시징 서비스이다. 여기서 Firebase란? Firebase: 구글에서 제공하는 모바일 앱 개발 플랫폼으로 간편하고 빠르게 개발할 수 있게 다양한 기능을 제공하는 백엔드 서비스 플랫폼이라고 한다. 앱 뿐만 아니라 웹 서비스까지 가능하다고 함. 사용되는 언어는 주로 JavaScript라고 하니 나중에 한 번 써봐야 겠다. 다시 돌아가서 그럼 FCM은 뭐냐. Firebase에서 제공하는 메시징 서비스이다. 옛날에는 GCM(Google Cloud Messaging)이었는데 Firebase를 구글이 인수하면서 바뀌었다고 한다. FCM은 Firebase를 통해 다양한 기기와 플랫폼으로 메시지를 보낼 수 있..
개요 https://4sii.tistory.com/423 [Nest.js][동시성 문제] Bull Queue - 작성중 개요 https://4sii.tistory.com/422 [동시성 문제] (1) Transaction 사용과 통 Lock 걸어버리기 코드 Back-End: Nest.js - boards.service.ts async joinGroup(boardId: number, userId: number) { const board = await this.getBoard(boardId); const boar 4sii.tistory.com 위 글에서 이어진다. 프로젝트 시작 전 최대한 생길 수 있는 문제에 대해 기술적인 해답을 얻고 들어가기로 했으나 내가 담당했던 동시성 문제는 끝내 완벽하게 해결하지 못..
Queue FIFO queue = [] def enqueue(data): queue.append(data) def dequeue(): data = queue[0] del queue[0] return data for i in range(1, 10): enqueue(i) print(queue) print('dequeue: ', dequeue()) print('dequeue: ', dequeue()) print(queue) Stack LIFO stack = [] def push(data): stack.append(data) def pop(): data = stack[-1] del stack[-1] return data for i in range(1, 10): push(i) print(stack) print('..
개요 https://4sii.tistory.com/422 [동시성 문제] (1) Transaction 사용과 통 Lock 걸어버리기 코드 Back-End: Nest.js - boards.service.ts async joinGroup(boardId: number, userId: number) { const board = await this.getBoard(boardId); const boardJoinInfo = await this.joinRepository.find({ where: { boardId }, }); if (board.joinLimit { if (join.userId 4sii.tistory.com 이전 포스팅에서 이어진다. 이전에 고민했던 동시성 문제에 대해 Queue 디자인 패턴을 활용해 해..
코드 Back-End: Nest.js - boards.service.ts async joinGroup(boardId: number, userId: number) { const board = await this.getBoard(boardId); const boardJoinInfo = await this.joinRepository.find({ where: { boardId }, }); if (board.joinLimit { if (join.userId === userId) { throw new ConflictException('이미 join 했습니다.'); } }); const queryRunner = this.dataSource.createQueryRunner(); await queryRunner.conn..
큐(Queue)란? FIFO(First In First Out)의 성격을 가진 자료구조. 처음으로 들어간 데이터가 처음으로 빠져 나오는 어찌보면 당연하고 합리적인 자료구조이다. 실생활에서도 많이 접할 수 있는 자료구조 중 하나이다. 사용예시 서버 접속 대기열 큐 롤에서 야 큐 돌려~ 하는것도 이 큐가 맞음 인쇄 대기열 큐 인쇄 하나가 오류로 안되면 그 뒤에 나와야할 인쇄물도 모조리 안나오는 경험이 있을 것이다. 이 때도 큐를 쓴다. 큐의 대표 기능 Peek(픽) 큐의 Top(맨 앞) 데이터를 보는 것 Enqueue(삽입) 큐에 원소를 삽입하는 행위. 원소는 Rear(맨 뒤)에 들어간다. Dequeue(뽑기) 큐에서 원소를 뽑아오는 행위. FIFO 자료구조라 Front에 위치한 원소를 뽑아온다. Peek,..