Queue는 컴퓨터 과학에서 중요한 선입선출 자료구조 중 하나이다. 사실 큐의 일상 예시로 설명해 보면, 줄을 서는 개념과 비슷하다. 맛있는 마카롱 집을 가기 위해 줄을 선다고 해보자. 이 경우 먼저 줄을 선 사람이 먼저 마카롱을 사고, 나중에 온 사람이 나중에 마카롱을 사는 것과 같은 원리라고 할 수 있다. 이러한 Quere를 간단한 개념부터 시작해서, 선형 큐(Linear Queue) 원형 큐(Circlar Queue) 등등의 여러 방법으로 구현해 보자. 큐(Queue) 큐는 선입선출(FIFO : First-In-First-Out) 구조의 자료구조로 먼저 넣은 데이터를 먼저 꺼낸다. 이때, 먼저 데이터를 추가하는 작업을 인큐(enqueue)라고 하고, 데이터를 꺼내는 작업을 디큐(dequeue)라고 ..
자료구조에서 가장 중요하고 기초라고 할 수 있는 후입선출(LIFO) 구조의 스택에 대해 알아보자. 기본적으로 자료구조에서 기본적으로 자료를 담을 수 있는 방식에는 배열(Array)과 스택(Stack), 큐(Queue)가 있다. 각각의 기본적인 공통점은 자료를 넣어두고 사용하는 것이다. 여기서 우리가 생각할 수 있는 점은 효율적으로 자료를 관리하기 위해, 자료를 담는 방식에 대한 차이를 이해하는 것이 중요하다. 컴퓨터 과학에서 중요한 자료구조 중 하나인 스택(Stack)에 대해 알아보도록 하자. 스택(Stack)이란 스택은 데이터를 임시 저장할 떄 사용하는 자료구조이다. 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO - Last In First Out)로 되어 있다. 이러한 자료구조를 직관..
자료구조의 첫 번째 정리할 부분은 배열이다. 배열은 사실 우리가 사용 중인 파이썬의 list라고도 할 수 있겠다. 그렇다면 파이썬의 list와 자료구조의 배열은 완전히 같은 개념이라고 할 수 있을까? 배열에 대해 간단히 알아보고 코딩으로 체득하도록 해보자. 자료구조의 배열이란 일반적인 자료구조에서의 배열이란, 순서를 가진 데이터의 집합을 가리키는 추상 자료형(abstract data type)이다. 즉, 순서를 가진 데이터 집합을 모두 배열이라고 할 수 있다. 배열을 종류는 크게 2가지로 나뉜다. - 순차 리스트: 저장소를 배열형태로 만드는 것. 연속적인 메모리 공간에 저장(python에서 list) - 연결 리스트: 저장 할때 마다 메모리를 확보해서 추가시키는 것. 메모리의 동적할당을 기반으로 구현 일..
전반적인 자료구조/알고리즘에 대한 기초 글을 작성하려 한다. 필요한 내용을 참고해서 확인해 보자. 알고리즘 확인하기 Python으로 자료구조 조금 더 알아보기 [자료구조 기초] Data Structure 기초 시작하기 [선형 구조 - Python] 배열 [선형 구조 - Python] 스택 [선형 구조 - Python]큐 [선형 구조 - Python] 연결 리스트 Python으로 알고리즘 조금 더 알아보기 [알고리즘 기초] Algorithm 기초 시작하기 - python [검색 알고리즘] 선형 탐색과 이진탐색 [검색 알고리즘] 해시 [재귀 알고리즘] 재귀 [재귀 알고리즘] DFS [재귀 알고리즘] BFS [정렬 알고리즘] 버블 정렬 [정렬 알고리즘] 선택 정렬 [정렬 알고리즘] 삽입 정렬 [정렬 알고리즘..
우리가 알고리즘에 대해서 대부분 학교 수업이나 코딩 테스트를 위해 처음 접하는 경우가 많다. 그렇다면, 알고리즘이란 무엇이고 왜 알고리즘을 배워야 할까? 좋은 알고리즘이란, 간단하다. 문제를 해결하는 것 문제를 더 잘 해결하는 것 알고리즘을 사용하는 이유는 문제를 더 잘 해결하기 위함이다. 따라서 어떻게 문제를 잘 해결할 수 있을지 같이 고민해볼까 한다. 여기서 제공하는 실습 문제만 암기하여 빠르게 작성할 수 있다면, 알고리즘을 공부하기 위한 기초 코딩은 완성 되었다고 할 수있다. 사실 알고리즘을 공부하고자 하는 우리의 목표는 우리가 만들고자 하는 로직을 작성할 수 있게 함에 있다. 따라서 기초적인 알고리즘을 공부하기 전에 파이썬에 대한 기본적인 숙련도가 필요하다고 생각된다. 기본적으로 for문을 100..
프런트엔드 error를 확인하는 방법은 여러 가지가 있다. 우리는 기본적으로 개발자도구에 console에 발생하는 에러를 통해서 주로 error를 확인한다. 하지만 무작정 error handling을 try catch로 하는 것은 좋은 방식이 아니다. try catch로 해야 하는 부분과 Error boundaries를 활용하는 방법을 알아보고, 리액트라는 선언형 코드에서 사용하는 코드에 대해 알아보자. 이 글을 통해 스스로 내 프로젝트에 error를 넣어주는 방식에 대한 기초를 알아보자. 1. try catch javascript를 배운사람은 다 알 수 있는 에러 처리 방법이다. 보통은 nodejs 백엔드에서 api 호출 시 많이 사용한다. 그러면 react에서도 사용하면 될까? 반은 맞고 반은 아니다..
JavaScript에서 if문과 비슷한 switch 문에 대해 적어보려 한다. 우리는 switch문을 언제 사용하고, 잘 사용하고 있는지에 대해 고민해 보면 좋을 것 같다. 기본적인 문법 설명은 생략한다. eslint관점에서 우선 설명을 풀어본다. 그리고 TypeScript에서 SRP(Single Responsibility Principle) 원칙으로 switch를 어떻게 사용해야 할지에 대한 고민을 함께 해본 후, 추가로 React에서 활용해 보도록 하자. 일반적으로 우리는 switch 문에서 default값을 꼭 넣어줘야 에러가 발생하지 않는다고 생각한다. 왜냐하면, 개발자도 사람이기 때문에 실수로 모든 조건을 넣지 않아 예외가 발생 할 수 도 있기 때문이다. 또한, eslint 관점에서 defau..
잠시 맹목적으로 글을 올리는 것을 잠시 멈추고, 나의 개발을 되돌아보는 시간을 가졌다. 목표한 한 가지가 끝났다. 다시 글을 적을 수 있는 시간이 생겼기에 첫 글을 올리기 전에 글을 남겨본다. 이전과는 다른 방향성을 가지고 글을 적어볼 예정이다. 사실 현 블로그를 삭제하고, 이전 자료를 리빌딩에 대한 고민을 했다. 여러 가지 고민 끝에 현 블로그를 유지하기로 마음먹었고, 다시 다음 스탭으로 나아가려 한다. 부족하지만, 제 글을 읽어주시는 많은 분들께 더욱 좋은 정보를 전달하도록 노력하면서 함께 성장하기는 바라본다.
- Total
- Today
- Yesterday
- Deque
- error:0308010C:digital envelope routines::unsupported
- Python
- next.config.js
- BFS
- NextJS
- mongoDB
- react autoFocus
- JavaScript
- nextjs autoFocus
- 자료구조
- login
- react
- 자연어처리
- django
- pandas
- Queue
- 클라우데라
- nodejs
- UserCreationForm
- Express
- Vue
- useState
- TensorFlow
- DFS
- useHistory 안됨
- vuejs
- read_csv
- typescript
- logout
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |