자료구조(資料構造, 영어: data structure)는
컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미한다.
더 정확히 말해, 자료 구조는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다.
(위키백과)
쉬운 예시로 생활코딩에서의 설명 내 식으로을 적어보자.
자료구조 (Data Structure)란?
A와 B란 사람이 존재합니다.
A는 미니멀리스트라서 집안 살림이 매우 적습니다.
그래서 집에 양말이나 옷가지등의 물건을 흩뿌려 놓아도 쉽게 찾을 수 있습니다.
한편 B는 저장강박증이 있어 온갖 잡동사니가 집에 굴러다닙니다.
B도 마찬가지로 양말이나 옷가지등의 물건이 흩뿌려져 있는데 아침에 출근할 때 마다 이를 찾기가 매우 어렵습니다.
그래서 B는 수납장을 이용해서 양말, 옷가지, 책 등을 카테고리에 맞춰 정리해서 찾기가 매우 수월해졌습니다.
이 물건을 데이터, 수납장을 구조(Structure)라고 생각하면 대강적인 개념이 잡힐 겁니다.
즉 데이터를 사람이 이용하기 편하도록 만들어두는 구조 입니다.
더불어 빠질 수 없는 것이 데이터를 쉽게 꺼내기 위한 방법인데 이것이 알고리즘이 되겠습니다.
자료구조의 분류
컴퓨터에서 사용하는 자료구조를 중심으로 전체 분류를 살펴 보겠습니다.
단순구조(Simple Structure)
True/False, 정수, 실수, 문자 및 문자열과 같이 컴퓨터가 기본적으로 제공하는 자료형
선형구조(Linear Structure)
데이터들이 일렬로 쭉 저장되어 있는 형태
저장되는 자료의 전후관계가 1:1 (리스트, 스택, 큐 등)
비선형구조(Non-Linear Structure)
데이터가 트리 형태로 저장되어 있다고 생각하고 사용하는 자료구조
데이터 항목 사이의 관계가 1:n 또는 n:m (트리, 그래프 등)
파일구조(File Structure)
다양한 자료구조의 데이터를 파일에 저장하는 방식
서로 관련된 필드들로 구성된 레코드의 집합인 파일에 대한 자료구조
자바의 Collections JCF(Java Collection Framework)
Collection(컬렉션)
자바에서 '목록성 데이터를 처리하는 자료구조'의 통칭
자료구조(Data Structure)는 어떤 정보를 담는 것을 의미하여,
하나의 데이터가 아닌 여러 데이터를 담을 때 사용하는 것이다.
배열이 가장 기본적인 자료구조이며, DTO 또한 자료를 담는 하나의 방식이라고 볼 수 있다.
* 자바에서의 자료구조 유형
- 순서가 있는 목록이며 중복을 허용하는 List
- 순서에 구애받지 않으며 중복을 불허하는 목록인 Set
- 먼저 들어온 것이 먼저 나가는(FIFO) Queue
- Key-Value 형태로 저장, 순서무관, key의 중복 불허, value의 중복 허용하는 Map
참조
ko.wikipedia.org/wiki/%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0
'Computer Science > DataStructure' 카테고리의 다른 글
Implement Linked List (0) | 2021.04.26 |
---|---|
Linked List (연결 리스트) (0) | 2021.03.07 |
ArrayList (0) | 2021.02.25 |
List (리스트) (0) | 2021.02.25 |
Array (배열) (0) | 2021.02.25 |