BackEnd

자료구조와 자료형

sihanni 2024. 10. 9. 12:06

 

공통적으로 자료구조와 자료형은 컴퓨터 과학에서 모두 데이터를 다루기 위한 개념이지만, 서로 다른 목적과 역할을 가지고 있다.

Data Type

 

자료형은 변수나 값의 종류를 정의하는 개념이다. 

컴퓨터 메모리에 어떻게 저장될지와 그 값에 대해 어떤 연산이 가능한지를 결정한다.

 

Primitive Data Type (a.k.a. 원시 자료형, 기본 자료형)

프로그래밍 언어에서 제공하는 기본적인 데이터 형식

  • Number 숫자형 (int, float, double...)
  • BigInt
  • String 문자형 
  • Boolean 불리언 (true, false)
  • Null : 아무런 값 자체가 없는 자료형
  • Undefined : 변수가 정의되어 있지 않거나, 할당되지 않은 상태
  • Symbol

 

Reference Data Types (a.k.a. 참조 자료형)

객체나 배열처럼 메모리 상의 다른 위치를 참조하는 자료형

 

Data Structure

자료구조는 데이터를 저장, 관리, 그리고 효율적으로 접근할 수 있는 방식이나 구조를 의미한다.

자료형은 데이터의 기본적인 형태를 정의하지만, 자료구조는 그 데이터를 어떻게 조직하고 효율적으로 접근할지에 대한 규칙과 방법을 제공하는 개념이다.

 

Linear Data Structures (선형 자료구조)

데이터가 일렬로 배치되어 있는 구조로 되어 있다.

각 요소는 이전 요소와 다음 요소와 *선형 관계를 가진다. 

  • Array (배열)
    인덱스를 통해 데이터에 접근할 수 있는 구조
  • Linked List (연결 리스트)
    포인터를 통해 다음 노드를 가리키는 노드들로 구성된 구조
  • Stack (스택)
    LIFO(Last In First Out) 원칙에 따라 작동하는 구조
  • Queue (큐)
    FIFO(First In First Out) 원칙에 따라 작동하는 구조

 

Non-linear Data Structures (비선형 자료구조)

데이터가 계층적이거나 특정 패턴을 따르는 구조

각 요소 간의 관계가 선형적이지 않다.

  • Tree (트리)
    계층적인 구조로, 루트 노드부터 시작하여 자식 노드가 연결되는 구조
  • Graph (그래프)
    정점과 간선으로 이루어진 복잡한 관계를 표현하는 구조
    관계를 나타내는 데 적합하며, 네트워크, 지도, SNS의 연결 관계 등을 표현할 때 유용하다.
  • Heap (힙)
    트리 기반의 자료구조, 최댓값이나 최솟값을 빠르게 찾는 데 사용

 

Hash Data Structures (해시 자료구조)

https://sihanni.tistory.com/57

  • Hash Table (해시 테이블)
    키 값을 통해 빠르게 데이터를 찾을 수 있도록 하는 구조
  • Map (맵)
    키-값 쌍을 저장하고, 키를 통해 값을 빠르게 조회할 수 있는 구조
구분 Map Hash
구현 방식 일반적으로 트리 또는 리스트로 구현 해싱을 통해 인덱스를 사용하여 저장
순서 유지 삽입 순서를 유지 순서를 보장하지 않음
검색 속도 순차 검색이 필요할 수 있음 해시 함수로 빠른 검색이 가능
키의 자료형 다양한 자료형을 지원 일반적으로 고정된 해시 가능한 자료형

 

 

 

 

정리

구분 자료형 (Data Type) 자료구조 (Data Structure)
정의 데이터 성격(숫자, 문자열, 불리언 등)을 정의 데이터를 저장하고 조직하는 구조와 방식
종류 기본자료형(숫자, 문자열..), 참조 자료형(객체 등) 배열, 연결리스트, 스택, 큐, 트리, 그래프 등
목적 값의 종류와 연산 방식을 결정 데이터의 효율적인 관리 및 검색, 삽입, 삭제 등의 작업을 최적화
연산 가능성 자료형에 따라 가능한 연산이 정해져 있다. 자료구조는 데이터를 저장하고 접근하는 방법을 최적화
메모리 관리 자료형은 메모리 크기를 결정하고, 변수에 맞는 공간을 할당 자료구조는 메모리 관리 및 데이터 저장 방식에 집중

 

왜 알아야 하는가

다양한 자료구조는 서로 다른 데이터 및 상황에서 최적의 성능을 제공한다. 

빠르게 검색이 필요한 경우 해시 테이블이 적합하다던지, 데이터의 순서와 유지나 탐색이 중요하다면 트리 구조가 유리하다는 것을 아는 것과 모르는 것의 차이는 상당할 수 밖에 없다.

따라서 문제를 효율적으로 해결하기 위해 데이터의 특성에 맞는 자료구조를 이해하고 사용할 수 있어야한다.

 

 

주석

*선형적 : 일방향적임을 뜻함

*