
자료구조란 여러 데이터들의 묶음을 저장하고, 사용하는 방법을 정의한 것이다. 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 조직적, 체계적으로 구분하여 표현한 것을 말한다.
데이터를 체계적으로 저장하고, 효율적으로 활용하기 위해서 자료구조를 사용한다.
대부분의 자료구조는 특정한 상황에 놓인 문제를 해결하는 데에 특화되어 있다.
데이터는 문자, 숫자, 소리, 그림, 영상 등 실생활을 구성하고 있는 모든 값이다.
> 이름, 나이, 키, 집 주소, 목소리, 유전자 DNA까지 데이터로 분류할 수 있다.**
데이터는 그 자체만으로 어떤 정보를 가지기 힘들다.
> 예를 들어 나이라는 데이터만 알고 있다면, 사람의 나이인지, 강아지의 나이인지, 나무의 나이인지 알 수 없다.**
데이터는 분석하고 정리하여 활용해야만 의미를 가질 수 있다.
데이터를 사용하려는 목적에 따라 형태를 구분하고, 분류하여 사용한다.
모든 숫자를 전화번호부를 작성할 때처럼, 숫자를 3개 또는 4개씩 묶음짓고 하이픈(-)으로 합치는 것은 잘못된 활용이다.거리를 구하거나 다섯 자리가 넘는 숫자를 보관할 때는 하이픈(-)이 필요하지 않다.
데이터를 정해진 규칙없이 저장하거나, 하나의 구조로만 정리하고 활용하는 것보다데이터를 체계적으로 정리하여 저장해두는 게, 데이터를 활용하는 데 있어 훨씬 유리하다.
선배 개발자들은 무수한 상황에 데이터를 효율적으로 다룰 수 있는 여러 방법들이 연구해두었다.
번호를 다 알지 않아도, 이름을 아는 것만으로 전화를 할 수 있는 방법은 무엇이 있을까?웹 브라우저에서 뒤로 / 앞으로 가는 방법은 무엇이 있을까?게임 매칭을 잡을 때, 수많은 사람들을 통제하는 방법엔 무엇이 있을까? …등등
무수한 상황에서 데이터를 효율적으로 다룰 수 있는 방법을 모두 모아, 자료구조라는 이름을 붙였다.
