자료 구조
이번 Concept은 Data Structure(자료 구조)에 대해서 알아보겠습니다.
예전에는 해당이 되지 않았지만 요즘은 비지니스 로직이 뒤에서 앞으로 이동하면서 프론트 엔지니어의 전문지식이 중요해졌습니다.
최근에 UI 업데이트가 데이터 변경에 따라 반응하는 패러다임이 유행하고 있습니다.
이제 백엔드는 데이터베이스를 전달하는 게 끝으로 프론트에서 컨트롤러 로직을 처리하길 기대합니다.
이것은 GraphQL의 인기가 높아지면서 생긴 일 입니다.
이제 프론트엔드는 특정 데이터 구조를 사용하는 시기와 이유를 구별하는 능력이 필요하게 되었다는 것이죠.
데이터 구조를 크게 3가지로 구별하자면
Stacks or Queue(항목이 삭제 및 삽입되는 방식만 다른 배열)
Linked List | Trees | Graphs(노드가 다른 노드를 참조하는 형식)
Hash Table(해시 함수에 의존)
복잡성 측면에서 바라보자면 스택과 큐가 가장 간단하며
연결리스트, 트리 그리고 그래프가 개념을 확장하기 때문에 가장 복잡하다.
효율성 측면에서 연결 목록 은 데이터 기록 및 저장 에 가장 적합 하며 해시 테이블 은 데이터 검색 및 검색 에 가장 적합 합니다.
Stack
자바스크립트에서 가장 중요한 스택입니다.
Push 는 배열 의 맨 위에 요소를 추가 하고 Pop 은 동일한 위치에서 요소를 제거 합니다. 즉, 스택 은“Last In, First Out”프로토콜 (LIFO)을 따릅니다.Queue
unshift와 pop을 사용
즉, 대기열 은 "선입 선출"프로토콜 (FIFO)을 따릅니다.Linekd List
배열과 마찬가지로 Linked Lists데이터 요소를 순차적으로 저장합니다.
인덱스를 유지하는 대신 연결 목록은 다른 요소에 대한 포인터 를 유지합니다.
첫 번째 노드 를 머리 라고 하고 마지막 노드 를 꼬리 라고합니다.
즉 노드는 다른 노드를 참조하고 꼬리에 꼬리를 무는 형식입니다.Tree
Tree는 계층 구조의 많은 하위 노드 에 대한 참조를 유지한다는 점을 제외하면 연결 목록 과 같습니다
나무 뿌리와 같이 상위 노드는 단 하나만 가질 수 있으며 하위 노드는 자유롭게 가질 수 있습니다.Graph
트리가 둘 이상의 부모를 자유롭게 가질 수있는 경우입니다
가장 자유도가 높음
부족하지만 데이터구조에 대해 간략히 다뤄보았습니다.
나중에 차차 업데이트 해나가겠습니다. ㅠㅠ
Written
Video
Nothing