[CS, JS]자료구조

김정현·2022년 5월 27일

개념 정리

목록 보기
2/9
post-thumbnail

자료 구조(Date Structure)

자료 구조의 의미

자료구조란, 사전적으로 자료의 집합을 의미한다
자료구조란, 각 원소들이 논리적으로 정의된 규칙에 의해 나열되며
자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한 것이다
자료구조의 종류로는, Array, Stack, Queue, Heap, deck, Hash table, Graph, Tree, Linked List등이 있다

자료 구조의 목적

자료를 더 효율적으로 저장, 관리하여 메모리 공간을 효율적으로 사용하기 위해 사용한다
각각의 자료구조는 특정한 상황에 놓인 문제를 해결하는데 특화되어 있다
효과적인 자료구조의 사용은 실행시간을 단축시켜주고, 메모리 용량을 절약할 수 있다
다양한 프로그램을 설계할 때, 어떤 자료구조를 선택할지는 가장 우선적으로 고려되어야 한다
모든 목적에 맞는 자료구조는 없으므로 각 자료구조가 갖는 장점과 한계를 잘 아는 것이 중요하다

자료 구조의 특징

효율성

적절한 자료 구조를 선택하여 사용한다면 업무의 효율이 상승한다

추상화

추상화란 복잡한 자료, 모듈 시스템 등으로 부터 핵심적인 개념만 간추려 내는 것이다
다양한 객체를 컴퓨터에서 표현하고 활용하기 위해
필요한 자료의 구조에 대해서 공통의 특징만을 뽑아 정의한 것을 의미한다
이러한 추상화를 통해 자료의 논리적 관계를 구조화한 것을 자료구조라고 한다

재사용성

다양한 프로그램에서 동작할 수 있도록 범용성 있게 설게하기 때문에
다른 프로젝트에서도 사용할 수 있다

자료 구조와 알고리즘의 관계

알고리즘이란 어떤 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것이다
자료 구조가 선택되면 해당 자료 구조에 알맞는 알고리즘을 선택하게 된다
반대로 특정 알고리즘을 사용해야만 하는 프로그램의 경우 알고리즘에 적절한 자료 구조를 선택하게 된다

참고한 글:
https://andrew0409.tistory.com/148
https://bnzn2426.tistory.com/115


JS 자료 구조 비교

배열

인덱스를 기반으로 필요한 정보를 저장할 수 있다
단일 value로 구성되어 있다

const arr = [1, 2, 3];
//출력값: [1, 2, 3]

https://velog.io/@yopi27/JSArray배열-omj79o2h

Set

비순차적으로 데이터를 저장할 수 있다
단일 value로 구성되어 있다
value가 중복 될 수 없다

const set = new Set([1, 2, 3]); 
// 출력값: Set(3) {1, 2, 3}

객체

비순차적으로 데이터를 저장할 수 있다
key와 value로 구성되어 있다
key가 중복 될 수 없다
value가 중복 될 수 있다
key에 변수를 사용할 수 있다(대괄호 표기법)

const obj = {
  key1: "value1",
};

//출력값: { key1: 'value1' }

Map

비순차적으로 데이터가 저장된다
key와 value로 구성되어 있다
key가 중복 될 수 없다
value가 중복 될 수 있다

const map = new Map([
	['key1', 'apple'],
    ['key2', 'banana'],
    ]);
   
//출력값: Map(2) { 'key1' => 'apple', 'key2' => 'banana' }

Symbol

유일한 키를 생성할 때 사용하는, 원시 타입 데이터이다
key로 이루어져 있다(value는 자동 생성되며, 알 수 없다)
key가 중복 될 수 있다(value는 다르므로 key가 같아도 별개의 요소이다)
Symbol.for()을 통해 전역 심벌 레지스토리에 Symbol을 저장할 수 있다
Symbol.jeyFor()을 통해 전역 심벌 레지스토리에 저장된 Symbol을 재사용할 수 있다

profile
개발 공부 블로그

0개의 댓글