한 학기 동안 자료구조를 수강했다.
자료구조를 배우고 난 후 문제 해결을 바라보는 각이 달라져있음을 느꼈다.
한 학기 동안 배운 자료구조의 내용을 되돌아보면서 누군가에게 도움이 될 수 있도록 포스팅을 해보려고 한다.
자료구조란?
자료구조(Data Structure)는 컴퓨터에서 처리할 자료를 효율적으로 관리하고 구조화시키기 위한 학문이다. 즉, 자료를 효율적으로 사용하기 위해서 자료의 특성에 따라서 분류하여 구성하고 저장 및 처리하는 모든 작업을 의미한다.
자료+구조, 말 그대로 자료를 다루는 구조라고 생각하면 편할 것 같다.
굉장히 다양한 자료구조가 있고 각각의 뚜렷한 장단점이 존재한다. 그렇기에 특정한 상황에서 필요한 최고의 자료구조를 생각해낼 수 있는 능력이 중요하다.
자료구조를 배우는 이유?
자료구조를 배움으로써 데이터를 효율적으로 관리하고 저장할 수 있다. 이는 곧 프로그램의 메모리 용량 감소와 빠른 데이터 처리속도로 연결된다. 그렇기에 자료구조는 굉장히 중요한 학문이다.
자료구조의 특징
1. 효율성
먼저 효율성이다. 앞서 설명했듯이 자료구조를 통해 효율적으로 데이터들을 저장, 관리, 사용할 수 있다.
2. 추상화
복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념만 간추려 내는 것을 추상화라고 한다.
나는 이 핵심적인 개념을 자료의 탐색, 삽입, 삭제라고 생각한다.
그래서 앞으로 각 자료구조의 탐색, 삽입, 삭제 연산에 대해 알아볼 예정이다.
3. 재사용성
자료의 형태, 프로그램마다 모든 자료구조를 따로 구현하는 것은 가능하겠지만 적게 쓰고, 많은 곳에 써먹어야 하는 게으른 개발자의 입장에서 이는 옳지 않다. 자료구조를 모듈화 하여 다양한 프로그램 재사용할 수 있도록 설계하는 것이 올바른 자료구조의 지향점이다.
자료구조의 형태
크게 자료구조는 선형구조와 비선형 구조로 나뉜다.
말 그대로 선형구조는 자료들이 선형으로, 즉 연속적으로 연결되어 이루어져 있는 구조이다.
선형구조의 예시
1. 배열
2. 연결리스트
3. 스택
4. 큐
5. 덱
비선형 구조는 자료들이 다양한 형태로 존재할 수 있는 구조이다.
비선형 구조의 예시
1. 트리
2. 그래프
이렇게 이번 포스팅에서 자료구조가 무엇인지 간략하게 다뤄봤다.
각각의 자료구조마다 디테일한 내용은 앞으로의 포스팅에서 다루겠다.
'자료구조(Data Structure)' 카테고리의 다른 글
[자료구조] 스택(Stack) (0) | 2022.07.06 |
---|---|
[자료구조] 배열 (Array) (0) | 2022.07.03 |
[자료구조] 연결 리스트(Linked List) (0) | 2022.07.03 |