일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- react
- 계명대 이종호
- Hitit
- 호키스
- jest
- 스위프트
- 자료구조
- 자바스크립트 자료구조
- 스벨트
- 자바스크립트
- queue
- 자스민
- Svelte
- IOS
- 리액트 예제
- SWIFT
- 비동기
- 개발자
- 이종호
- 힛잇
- hokidoki
- 개발
- 계명대
- data structure
- TDD
- 리액트
- HTML
- hokeys
- javascript
- 호키도키
- Today
- Total
목록queue (6)
Dog foot print
들어가기 앞서 Dispatch Queue는 어떤 쓰레드로 작업을 보내기 위한 대기행렬을 의미한다. 이 포스팅에서 다뤄볼 내용은 각 쓰레드 마다 어떤 역할을 하고 있고, 작업이 어떻게 이루어 지는지를 다뤄본다. Main Main 쓰레드로 작업을 보내기 위한 Queue이다. 이 Queue의 특징은 다음과 같다. Serial Queue 이다. 작업이 끝나야 다음 작업이 실행된다. Main Thread에게 작업을 요청한다. 유일한 쓰레드인 Main Thread 에게 요청 UI업데이트 작업을 요청 할 수 있다. 유일하게 UI업데이트를 요청 할 수 있다. sync메서드를 사용 할 수가 없다. 이 queue로 작업을 보낼 때 sync 메서드를 사용하여 코드를 처리하면 에러가 발생한다. 사용 예시 DispatchQue..
비동기와 동시의 차이 학생들과 이야기 해보면 비동기 와 동시 의 의미를 헷갈리는 경우가 종종 존재한다. Serial 과 Concurrent를 설명하기 전에 집고 넘어가도록 하자. 비동기는 말그대로 어떤 작업을 기다리지 않는다라는 의미이며, 동시라는 의미는 같은 시간에 어떤 작업이 말 그래도 동시에 일어 날 수 있는 것을 의미한다. Serial Queue SerialQueue는 순서가 중요한 작업들을 처리할 때 사용 되는 큐이다. 아래의 코드를 보도록 하자. let queue = DispatchQueue(label : "serial") queue.async{ sleep(3); print("1") } queue.async{ sleep(2); print("2") } queue.async{ sleep(1); p..
heap 이란 ? heap 은 우선순위 큐를 위해서 만들어진 트리자료구조이다. heap은 부모노드와 자식노드의 대소관계에 따라 최대힙(Max heap)과 최소힙(Min heap)으로 나뉜다. heap의 특징 heap은 완전이진트리의 형태이다. 완전이진트리 설명보러가기 heap은 트리내에서 중복된 값을 허용한다. heap은 느슨한 정렬(반 정렬) 상태를 가진다. 반 정렬 이라는 의미는 자식노드가 부모의 노드보다 무조건 크거나 작다. 그러나 전체트리를 볼 때는 가장 아래에 있는 노드가 가장 작거나 큰 값은 아니라는 의미이다. Max heap 최대 힙 최대힙은 다음과 조건을 항상 만족한다. 자식노드 value >= 부모노드 value Min heap 최소 힙 최소힙은 다음과 같 은 조건을 항상 만족한다. 자식..
해당 포스팅은 큐와 트리를 이해했다는 가정하에 작성되고 있습니다. 큐와 트리에 이해도가 없는 분들은 본 포스팅을 보기 전 큐와 트리에 대한 포스팅을 먼저 읽어주시기 바랍니다. 우선순위 큐란 ? 우선순위 큐는 일반적인 큐와 거의 동일하다. 큐는 해당자료구조에 들어온 순서대로 배출이 된다. 다만 우선순위 큐는 우선순위큐는 먼저나가는 순서를 들어온 순서 뿐만 아니라 다른 조건에 의하여 들어온 데이터에 우선순위를 부여해 순위에 맞게 배출한다. 어찌보면 일반적인 큐도 우선순위큐가 될 수 있는데 배출되는 순서를 해당 큐에 들어온 순서에 의거하여 우선순위를 부여하여 배출하기 때문이다. 우선순위 큐의 사용 예 우선순위 큐는 우리의 일상에서도 친근하게 사용되고 있다. 유니버셜 스튜디오랜드같은 해외 외국 놀이공원에서는 일..
선형큐는 enque로 인하여 rear가 max_size 까지 갔다면 공간이 배열에 빈공간이 있더라도 front와 rear를 초기해주지 않는 이상 enqueue를 할 수 없다. 그런 단점을 극복한 것이 원형큐이다. 원형큐는 선형큐와 달리 원형의 모양을 하고 있으며 이 queue의 공간에 아이템이 꽉 차지 않는 이상 언제든 enque와 deque를 할 수 있다. 원형큐 설명 원형 큐는 enque와 deque의 형태가 조금 다른데 그 이유는 max_size 까지 가면 front와 rear가 0 부터 다시 처음부터 시작해야 하기 때문이다. 또한 front는 항상 item이 있는 곳 앞에 존재한다. 원형큐의 멤버변수 constructor(size){ this.maxQueueSize = size; this.arra..
어제 만들어본 stack은 가장 늦게 넣은 것이 가장 빨리 나오는 LIFO(후입선출) 의 형태를 취하고 있다. 오늘 만들어볼 queue는 FIFO(선입선출)의 형태를 하고 있으며 원시적인 선형큐를 만들어 볼 것이다. Queue 란 ? 큐는 데이터를 선입선출을 하는 자료구조이다. queue는 우리 주변에서도 많이 보이는데 카운터에서 줄을 서고 있는 손님들이나 print의 출력에서도 queue의 형태를 볼 수 있다. 선형 큐란 ? 선형큐는 재사용이 되지 않는 형태의 큐이다. 배열에 공간이 남았더라도 rear가 max_size 까지 도달 했다면 배열 전체를 초기화 하지 않으면 item을 넣지 못한다. queue의 멤버변수 max_size // queue에 저장 가능한 공간을 뜻 한다. front // queu..