IT 자격증 정보의 모든 것



안녕하세요! 오늘은 자료구조에 대해서 알아봅시다.

찾고자하는 물건이 있을 때, 어지럽혀져 있는 상태에서 찾는 것 보다

정리되어 있는 상태에서 찾는 것이 훨씬 쉽다는 사실 아시죠?

자료구조는 많은 양의 자료를 어떻게 정리하고 효율적으로 활용하기 위한 방법이라고

보시면 될 것 같은데요~ 더 자세하게 자료구조의 개념은 무엇이고 배우기 위해서는 어떻게 해야할지

알아볼까요?




자료구조의 모든 것



자료구조는 컴퓨터에서 처리할 자료를 효율적으로 관리하고 구조화하는 작업인데요.

다시 말해, 자료를 효율적으로 사용하기 위해서 자료의 특성에 따라 분류하여 구성하고

저장 및 처리하는 모든 작업을 의미한답니다.

컴퓨터의 의미를 짚어보자면 

현실 세계에 존재하는 반복적이거나 복잡한 자료처리를 효율적으로 처리하기 위한 전자장치라고

할 수 있는데요. 컴퓨터를 이용하여 자료처리를 하기 위해서는 무엇보다도

먼저 자료를 컴퓨터가 다룰 수 있도록 컴퓨터 내에 표현해 주어야만 합니다.

그리고 이렇게 표현된 자료를 컴퓨터는 일정한 절차를 통해 처리하게 되는 것이죠~






자료구조는 자료 처리의 성능과 효율에 직접적인 영향을 미치는데요.

따라서 자료구조는 현실 세계의 실제 자료들의 관계를 잘 반영할 수 있어야 하고,

효율적으로 자료 처리를 수행할 수 있도록 간단명료해야만 해요.



이렇게 자료구조로 표현된 자료들을 이용하여 자료들을 처리하는 절차들의 모임을

알고리즘이라 하고, 대부분의 언어는 일정 수준의 모듈 개념을 갖고 있으며

이는 자료구조가 검증된 구현은 감춘 채 인터페이스만을 이용하여 다양한 프로그램에서

사용되는 것을 가능하게 해준답니다.


C++나 자바와 같은 객체지향 프로그래밍 언어는 특별히 이러한 목적으로 객체로 사용하는데요.

이러한 자료구조의 중요성 때문에 최근의 프로그래밍 언어 및 개발 환경은

다양한 표준 라이브러리를 제공하고 있어요.

예로, C++의 표준 템플릿 라이브러리나 자바의 자바 API, 마이크로소프트의 .NET과 같은 것을 들 수 있지요~






컴퓨터가 효율적으로 문제를 처리하기 위해서는 자료를 보관하고 정리하는 기술이 필요한데요.

컴퓨터는 자료의 특성에 따라 다양한 자료구조 기법을 사용하고 있습니다.

자료구조에는 단순구조, 선형구조, 비선형구조가 있어요.


단순구조는 정수, 실수, 문자, 문자열 등 자료의 형태를 말하고,

선형 구조는 자료 간의 연결 관계가 [1:1] 관계를 가지는 형태로 자료들이

긴 선처럼 연결되어 있는 구조입니다.

비선형구조는 자료 간의 연결 관계가 [하나:여러 개] 또는 [여러개 : 여러개]의

관계를 가지는 형태로, 나뭇가지 모양이나 그물 모양처럼 얽혀있는 구조입니다.


예를 들어, 엑셀로 각 과목 점수를 정리하는 표를 만들 때 사용하는 자료구조는

선형구조 중에서 '리스트'라는 구조인데요. 

리스트는 순서가 정해져있는 목록의 자료구조랍니다.






지하철 노선도를 정리할 때 사용하는 자료 구조는 비선형 구조의 '그래프'라는 구조예요.

다양하고 복잡한 연결 구조들을 표현할 때 사용하게 된답니다.


대부분의 컴퓨터 프로그램은 알고리즘+자료구조의 형태로 이뤄지는데요.

알고리즘이 특정한 목적을 달성하기 위한 절차라고 한다면,

자료구조는 알고리즘에 필요한 데이터의 집합이에요.

동일한 알고리즘이라도 자료구조가 달라지면 전혀 다른 프로그램이 될 수 있기 때문에

자료에 알맞은 자료구조를 만드는 것이 매우 중요하답니다!