JavaScript의 데이터 구조는 무엇입니까?

이봐 이봐! 🤟

오늘 저는 몇 가지 기본적인 JavaScript 데이터 구조를 살펴보고자 합니다. 🧐

네, 알아요, 그다지 매력적으로 들리지는 않지만 아마도 코드 마스터가 되는 유일한 방법일 것입니다(또는 적어도 자신의 코드를 조금 더 이해하려면) 😄 .

일상 업무에서 데이터 구조에 주의를 기울이고 있습니까, 아니면 이런 일을 할 시간이 없어서 가장 간단하고 빠른 솔루션을 선택합니까? 댓글로 알려주세요!

데이터 구조



먼저 데이터 구조가 무엇인지 정의해 봅시다. 이름에서 알 수 있듯이 데이터를 구성/구조화하는 방법일 뿐입니다. 웹을 통해 떠다니는 모든 정보는 일종의 견고하고 논리적인 표현으로 메모리에 존재해야 합니다.
대부분의 경우 올바른 선택이 big O 복잡성을 눈에 띄게 줄이고 앱 속도를 높일 수 있기 때문에 개발자의 관점에서 가장 인기 있는 데이터 구조 간의 차이점을 아는 것이 중요합니다. 그러나 실제로 큰 O는 무엇입니까? 🤔

빅 오



Big O 표기법은 앱의 시간 복잡도를 표현하는 일반적인 방법입니다. 최악의 시나리오(예: 가장 길거나 가장 깊은 배열을 반복하는 것과 같이 알고리즘이 최악의 경우를 처리해야 하는 상황)의 의미로 사용됩니다. 거의 사용되지 않는 두 가지 다른 표기법은 Big Omega(최상의 시나리오)와 Big Theta(평균 시나리오)입니다. 보시다시피, 개발자는 본질적으로 삶의 밝은 면을 그리 자주 보지 않습니다 😔 . 다양한 유형의 주문(복잡성 유형)이 있습니다. 나중에 각각에 대해 자세히 살펴보겠지만 지금은 이 개념에 익숙해지고 첫 번째 데이터 구조인 스택으로 바로 이동하겠습니다.

스택 - 후입선출(LIFO)



스택은 가장 최근에 추가된 순서가 있는 목록입니다.
요소는 제거할 첫 번째 요소입니다.

가장 간단한 구현:

const stack = [ ];
stack.push(2); // stack is now [2]
stack.push(5); // stack is now [2, 5]
stack.pop( ); // stack is now [2]



대기열 - 선입선출(FIFO)



이전 정의를 기반으로 짐작할 수 있듯이 대기열도 순서가 지정된 목록이지만 이번에는 가장 최근에 추가된 요소가 마지막으로 제거되는 요소입니다. 요소는 추가된 순서대로 제거됩니다.

가장 간단한 구현:

const queue = [ ];
queue.push(2); // queue is now [2]
queue.push(5); // queue is now [2, 5]
queue.shift( ); // queue is now [5]




연결된 목록



이제 가장 기본적인 두 가지 데이터 구조에 대한 기본 지식을 갖추었으니 훨씬 더 흥미로운 것에 대해 이야기해 봅시다.

연결된 목록은 각 요소가 다음 노드에 연결(즉, 참조가 있음)되는 구조입니다. 이러한 종류의 데이터 구조는 블록체인과 같은 일부 지점에서 구현됩니다.



해시 테이블



해시 테이블의 기본 아이디어는 요소 검색 및 비교 프로세스의 속도를 높이는 것입니다. 각 요소에는 해시 함수를 사용하여 생성되는 고유한 숫자 표현이 있습니다. 특정 요소를 찾고 싶을 때 인덱스를 통해 검색할 수 있습니다(대부분의 경우 훨씬 빠르고 효율적일 수 있음).



요약



나는 이 주제가 예를 들어 몇 가지 멋진 SEO 트릭보다 훨씬 덜 흥미롭다는 것을 알고 있으며 처음에는 실제 예를 이해하고 적용하기가 훨씬 더 어렵습니다. 때때로 우리 모두는 진정한 마법을 부릴 수 있기 전에 강력한 기초를 만들기 위해 정의를 통해 이것을 거쳐야 한다는 것을 이해해야 합니다 🧙‍♂️. 이 주제가 흥미롭고 추가할 내용이 있으면 댓글로 알려주세요! 🤓

좋은 웹페이지 즐겨찾기