100명의 학생의 성적을 처리한다고 할 때 각각의 성적 값을 변수에 할당하면 100개의 변수가 필요하다.
그러나 배열을 이용하면 1개의 변수명으로 100개의 데이터를 처리할 수 있다.
자료구조는 컴퓨터 프로그램에서 데이터를 처리하기 위해 만든 구조로 Array, List, Map이 대표적다.
그 외 프로그램 언어에 따라 Tuple, Dictionary 등을 사용하기도 한다.
1. Array 배열
- 가장 대표적인 Data Structre.
- 데이터를 순차적으로 저장.
- 0부터 시작하는 인덱스로 접근 가능.
- 일반적으로 선언할 때 크기가 고정됨
- 순차적으로만 접근가능해서 위치를 모를 경우 효율이 떨어짐.
- 배열의 데이터는 모두 동일한 자료형 이어야 함.
- 배열 중간에 값을 추가하려면 기존 데이터를 모두 이동시켜야함.
2. List 리스트
- 순차적인 자료구조 제공
- 객체지향 프로그램언어에는 보통 List 자료구조가 기본적으로 제공되며 그렇지 않는 경우 직접 자료구조를 구현하거나 구현된 라이브러리를 사용해야함.
- 배열과 마찬가지로 인덱스를 사용하지만, 배열의 모든 문제점을 해결하고있음.
- 데이터 크기가 고정되지 않음
- 특정 데이터를 찾기위한 여러 방법이 제공됨
- 서로 다른 타입의 데이터 사용가능. 하지만 일관된 처리가 어려워 보통은 통일함.
- 중간에 값을 추가하거나 삭제하기 쉬움.
* Linked List - 현재 데이터에 다음 혹은 이전 데이터를 읽을 수 있는 정보를 추가한 것으로 객체지향 프로그램언어에서는 보통 Iterator 객체가 있어 이를 사용하면 이전, 다음 데이터를 쉽게 읽어 올 수 있음.
3. Map 맵
- 데이터를 Key:Value(키:값)의 쌍으로 저장하는 방식
- 실제 데이터가 저장되는 형태는 자료구조의 내부구조에 따르며 사용하는 쪽에서는 내부구조에 대해 신경쓸 필요가 없는 형태
- Key 값을 알면 언제든 쉽게 데이터를 찾을 수 있음.
- 객체지향 프로그램언어의 경우 Value에 객체형이 들어갈 수 있어 복잡한 데이터 처리가 가능.
4. Tuple 튜플
- List와 비슷하지만 한번 생성되면 값을 변경할 수 없는(Immutable) 자료구조이다.
- 리스트와 같이 순차적으로 데이터 처리
- 경우이 따라 튜플에 들어가는 데이터에 이름을 붙여 사용가능
- 튜플의 데이터는 변경할 수 없음.
5. Dictionary 딕셔너리
프로그래밍 언어에 따라 Map 대신 사용되기도 한다.
Map : 자바, C++
Dictionary : 파이썬, C#, Swift 등
* Associative array도 비슷한 개념으로 JavaScript, PHP 등에서 사용되고 있다.
'IT > 컴퓨터 기초지식' 카테고리의 다른 글
Cloud database (클라우드 데이터베이스) (0) | 2021.03.21 |
---|---|
Lamda - 프로그래밍언어 (0) | 2021.03.20 |
반복문, 알고리즘 - 프로그래밍 언어 (0) | 2021.03.20 |
Data Type (자료형) - 프로그래밍 언어 (0) | 2021.03.20 |
컴파일러, 개발도구 (0) | 2021.03.20 |