본문 바로가기

Programming

(47)
Async & Callback & Promise Achievement Goals 어떤 경우에 중첩된 callback이 발생하는지 이해할 수 있다. 중첩된 callback의 단점, Promise 의 장점을 이해할 수 있다. Promise 사용 패턴과 언어적인 특징들을 이해할 수 있다. resolve, reject의 의미와, then, catch와의 관계를 이해할 수 있다. Promise 에서 인자를 넘기는 방법에 대해 이해할 수 있다. Promise의 세가지 상태를 이해할 수 있다. Promise.all 의 사용법을 이해할 수 있다. async/await keyword에 대해 이해하고, 작동 원리를 이해할 수 있다. node.js의 fs 모듈의 사용법을 이해한다. Asynchronous 비동기가 무엇인지에 대해 먼저 알아보자. 비동기는 우리 생활속에서 ..
Data Structure Related 1. medium.com/better-programming/basic-interview-data-structures-in-javascript-graphs-3f9118aeb078 Data Structures in JavaScript: Graphs Learn what you need to know about graphs and their basic algorithms to ace your next coding interview medium.com 2. 자료구조 시각화 : visualgo.net/en/graphds VisuAlgo - Graph Data Structures (Adjacency Matrix, Adjacency List, Edge List) VisuAlgo is free of charge for ..
Data Structure(5) Graph What Is A Graph? Simply put, a graph is a collection of nodes with edges between them. * If a node n1 is connected to another node n2 with an edge, we say n1 is adjacent to n2. 그래프는, 각 노드들이 간선들로 서로 연결되어 있는 자료 구조형으로, 아주 커다란 자료 구조형의 범위 중 하나이다. * Graph > Tree > Linked List 순으로, Graph는 이들을 포괄하고 있는 자료구조형이다. Graph의 기본 용어 : Vertex = Node Edge : 간선. * 노드와 노드를 연결시켜 주는 역할을 한다. Graph의 특징 : - 한 Vertex에서 2개 ..
Data Structure(4) Tree Tree Tree는 노드로 구성된 계층적 자료구조이다. 트리는 우리가 아는 나무를 거꾸로 뒤집어 놓은 형태를 생각하면 쉽다 Tree 자료구조의 구성 : 1. Root - Tree의 최상단에 위치한 뿌리노드. Ex. A 2. Parent Node - 부모 노드들. Ex. A, B, C, D, E 3. Child Node - 자식 노드들. Ex. 'A' Root를 제외한 모든 노드. 4. Siblings - 형제 노드. Ex. "B, C" / "D, E" / "F, G" / "H, I" 5. Leaf Node - 자식들이 더 없는 최하단 노드 Ex. F, G, H, I, J 6. Edge - 노드와 노드를 잇는 선 7. Depth - Root를 기준으로, 다른 노드로 접근하기 위한 거리 Tree 구조에서 사..
Time-Complexity Related 시간 복잡도 관련 참고글 : 1. www.reddit.com/r/learnjavascript/comments/4p968g/what_is_the_time_complexity_of_foreach_of_slice/ What is the time complexity of forEach? of slice? I randomly happened upon someones Github page where he shared some of his algorithm practice problems and solutions. One of the problems... www.reddit.com 2. https://www.pdiniz.com/time-complexity-of-javascripts-built-in-methods/ 3..
Data Structure(3) Hash Table 1. Hash Table 어떤 특정 키값을 받으면 그 값을 해시 함수에 통과시켜 나온 인덱스(index)에 저장하는 자료구조이다. 그렇다면 "해시 함수"는 뭐고 "해시"는 뭘까? 해시 함수 : 임의의 길이를 가지는 임의의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 해시(Hash) : 1. 간단히 말하면, 해시함수가 뱉어내는 결과물이다. 2. 단방향 암호화 기법으로 해시함수(해시 알고리즘)를 이용하여 고정된 길이의 암호화된 문자열로 변환하는 것을 의미한다. 3. 저장소(bucket, slot)에서 값(value)과 매칭되어 저장된다. 해시값(Hash value) : 매핑 후 데이터의 값을 의미한다. 저장소(bucket, slot)에 최종적으로 저장되는 값이다. 해싱(hashing) : 매핑하는 과..
Data Structure(2) Linked List 1. Linked List '"연결 리스트"는 Node들로 구성이 되어있다. Ex. [Node] - [Node] - [Node] - [Node] "연결 리스트" : 강강수월래를 일자로 편 것과 같다. * 사용 예시 : 플레이 리스트, 이미지 뷰어, 등등. * 검색 키워드 : linked list real life example Node : 자료구조를 구성하는 요소 Node의 구성 : 1. value 2. next Node → next Node : 리스트에 다음으로 연결되는 노드이다. Linked List : Methods : * 링크(포인터)를 통해서 데이터 추가/삭제/탐색이 가능하다. * 포인터란 : 각 노드를 연결해주는 화살표 (예시: 강강수월래 할 때 각 사람의 손) 아래 코드는 Linked Lis..
Big O Big O 표기법 Binary Heaps are great for processing data in a specific order — Insertion and removal are both in O(log n) time. Searching is O(n), so if you’re looking for something faster, I would suggest using a Binary Search Tree if possible. Big O 표기법 빠르게 살펴보기 Big O 표기법은 알고리즘이 걸리는데 필요한 시간의 수학적인 표현이라고 할 수 있다. * 일반적으로 최악의 시나리오를 상정했을 때의 복잡도를 의미한다. 알고리즘의 효율성을 판별하는 중요한 기법 크게 네가지 경우가 있다. 1. O(1) 2. O(..