본문 바로가기

Data Structure

[Data Structure] 자료구조란?

자료구조(Data Structure)는 컴퓨터 분야에서 여러 가지 문자, 숫자와 같은 자료들을 체계적으로 정리하고 구조화하는 방법을 배우는 이론이다. 자료구조는 컴퓨터 분야를 공부하는 사람이라면 필수적으로 알아야 하는 기초 상식이다. 우리는 컴퓨터를 가지고 현실의 문제를 해결한다. 하지만 컴퓨터와 현실 사이에는 표현하는 방법의 차이가 있다. 우리는 10진법을 사용하지만 컴퓨터는 2진법을 사용한다. 우리는 종이와 펜으로 계산을 하지만 컴퓨터는 전기의 켜짐과 꺼짐으로 데이터를 인식한다. 마찬가지로 자료를 다루는 방법에서도 컴퓨터와 현실에서는 차이를 보인다. 이 현실에서의 데이터를 컴퓨터에서 구조화하고 그 구조 안에서 데이터를 효율적으로 처리하고 각 구조의 효율성을 측정하는 것이 자료구조를 목표이다. 

출처: 이지영, C로 배우는 쉬운 자료구조 3판(한빛아카데미, 2016), p.24

자료구조의 종류


자료구조에는 크게 단순 구조, 선형 구조, 비선형 구조, 파일 구조로 나눌 수 있다. 단순 구조는 기본적으로 프로그래밍 언어에서 제공하는 기본적인 자료구조로 문자, 숫자 등이 이에 해당한다. 선형 구조는 기차와 같은 형태로 순차적으로 나열되어 있는 형태의 자료구조이다. 비선형 구조는 선형 구조와는 반대로 나열되어 있지는 않지만, 하나의 자료가 다른 자료와 연결되는 형태의 자료구조이다. 파일 구조는 같은 성질을 가지는 레코드들끼리 모아 놓은 파일을 일정한 규칙에 따라 저장하는 것을 말한다.

자료구조의 종류

데이터 추상화


우리가 컴퓨터를 통해 문제를 해결할 때는 바로 프로그램을 작성하는 것이 아니라 알고리즘을 작성하는 단계를 거쳐 프로그램을 작성하게 된다. 이때 문제를 둘러쌓고 있는 요소 중 필요한 요소가 있고 필요하지 않은 요소가 있을 수 있다. 알고리즘을 작성할 때는 처리하는 일에 영향이 가는 요소만을 고려하여 작성하게 되는데 이때 필요한 것이 데이터 추상화이다. 데이터 추상화(Data abstraction)는 데이터를 이루는 많은 요소들 중 알고리즘을 작성할 때 필요한 부분만을 표현하는 것을 말한다. 예를 들어, 음식 레시피를 보면 설탕 몇 숟갈, 간장 몇 숟갈, 물을 약불에서 3분 동안 끓이세요 같은 형태로 표현한다. 이것이 알고리즘이다. 만약 이 레시피에 설탕의 화학적 성분이나 물을 끓일 때 '기압이 1인 환경에서 섭씨 100도로 세슘원자가 방출하는 특정 파장의 빛이 9,192,631,700 * 180번 진동할 때까지 끓이세요' 같은 정보가 들어가게 되면 가독성도 떨어질뿐더러 알고리즘을 읽다가 그대로 불태우고 싶을 수도 있다. 그렇기 때문에 알고리즘 단계에서는 데이터의 세세한 부분을 생략하고 대략적인 큰 틀을 잡는 데이터 추상화를 하게 된다. 알고리즘뿐만 아니라 자료구조 또한 기술할 때 데이터 추상화를 거치게 된다.

 

 

출처 : https://limecoding.tistory.com/46

'Data Structure' 카테고리의 다른 글

[Data Structure] Heaps  (0) 2023.08.12
[Python] Linked List vs. Array  (0) 2023.08.07
[Data Structure] 데이터 표현 방법 (Data representation)  (0) 2023.08.07