본문 바로가기
info

자료구조 알고리즘 차이 자료를 정리하고 문제를 해결한다 Data Structure And Algorithm

by 개코 - 개발과 코딩 2022. 10. 27.

프로그래밍의 중요한 것 중 하나가 자료구조와 알고리즘이다. 차이가 있다면 자료구조는 자료를 정리하고 사용하는 것, 알고리즘은 문제를 해결하는 과정을 의미한다. 기본적으로 알아야할 자료구조와 알고리즘의 갯수는 몇 개 되지 않지만 세부적으로 학습하면 어렵다. 기본적인 것들이라도 학습하고 이해하더라도 프로그램 개발에 도움이 크게 된다.

자료구조 알고리즘 차이
자료구조 알고리즘 차이 자료를 정리하고 문제를 해결한다
Data Structure And Algorithm

프로그래밍의 어려운 부분 중 하나가 자료구조와 알고리즘이다. 이 두가지 단어의 의미도 생소한데 굳이 구분을 하지 않아도 같은 의미로 사용되는 경우들도 많다.

지금은 프로그래밍을 위한 강좌 사이트들도 많고 자료구조와 알고리즘의 차이를 분명히 구분하는 경우들도 있다.

결론부터 언급한다면 자료구조는 데이터를 정리하기 위한 형태를 의미하고, 알고리즘은 문제를 해결하기 위한 절차를 의미한다.

이 2가지 단어는 컴퓨터가 나오기 이전에도 사용된 단어이며, 생활에서 발생하는 여러 문제를 해결하기 위해 자료를 정리하고 해결하기 위한 부분에 기인한다.

사전적 의미

사람들은 살면서 자신에게 필요한 자료를 모으고 학습하고 발생한 문제들을 해결했다.

자료의 수집은 정리와 수납으로 이어지고, 숫자라는 개념은 계산기를 출현시켰다.

인류가 탄생하고 물물교환을 하며 시장이 형성되고 화폐가 생겨났다.

자료의 수집과 정리, 계산과 가격은 시장을 형성하고 자금의 유동성을 자금의 흐름을 파악할 수 있게 되었다.

시간이 지나면서 기록을 위한 종이가 나오고 양식이 출현하며 계산기가 나오면서 회계라는 과목이 생겨났다.

그리고, 지금과 같이 컴퓨터가 일반화된 지금 엑셀이란 프로그램으로 자료를 수집과 정리를 하고 계산을 한다.

일반적인 이야기가 역사적인 이야기가 되어 버렸다.

당연한 흐름이지만 컴퓨터가 나오면서 이런 일련의 자료 수집과 정리, 자료를 기반으로 한 계산 등은 프로그램과 만나 자료구조와 알고리즘이란 부분으로 IT에서 중요한 요소로 자리잡았다.

얘기가 길었다.

이쯤되면 대충 자료구조와 알고리즘이 어떤 의미인지 느낌이 왔을 것이다.

자료구조와 알고리즘의 사전적 의미는 아래와 같다.

  • 자료구조
    수집한 자료 데이터를 구조적인 형태로 표현하고 각각의 데이터의 흐름을 구현한다.
  • 알고리즘
    어떠한 문제를 해결하기 위한 일련의 과정을 말한다.
    수학적으로는 계산하는 절차, 프로그래밍으로는 로직을 구현하는 절차라고 할 수 있다.

차이점

자료구조와 알고리즘의 사전적 의미에서 이미 그 차이를 설명하고 있다.

수집한 자료를 일목요연하게 정리하고 사용할 수 있는 것이 자료구조이고, 어떠한 문제를 해결하기 위해 계산을 하는 절차가 알고리즘이다.

자료구조가 알고리즘이고 알고리즘이 자료구조 이다. 라고 생각할 수도 있지만, 굳이 표현하는 지금까지 설명한 내용과 같다.

프로그래밍 공부에서 자료구조와 알고리즘을 굳이 공부하는 이유는 무엇일까?

문제를 해결하는 방법으로 로직을 만드는 것은 어렵다.

다만, 문제를 해결하기 위한 자료구조와 알고리즘을 이용하면 좀 더 효율적인 프로그램 로직을 구현할 수 있다.

컴퓨터를 이용하여 자료를 빠르게 정리하고 빠르게 가공하며 빠르게 결론을 내기 위한 목적도 있다.

하지만, 굳이 이런 것이 빠지지 않아도 코딩은 할 수 있지만, 공부하는 사람들의 목적은 뚜렷하다.

자신이 만들고자 하는 프로그램을 좀 더 정교하고 빠르고 안전하게 로직을 만들기 위함도 있다.

종류

자료구조나 알고리즘의 종류는 이미 여러 사이트와 책자에 소개되어 있다.

공개된 자료를 공부해도 충분한 지식은 쌓을 수 있다.

이제 종류가 어떤 것이 있는지 찾아볼 필요는 있다.

용어와 의미는 비슷하지만 프로그램언어마다 조금씩 상이한 차이가 있다.

  • 자료구조
    배열 ( Array ), 리스트 ( List ), 스택 ( Stack ), 큐 ( Queue ), 힙 ( Heap ), 트리 ( Tree ), 그래프 ( Graph ) 등
  • 알고리즘
    정렬, 탐색, 그리프, 추적 등

이렇게 보면 갯수는 얼마되지 않고 한달이면 이해할 수 있을 것 같은 자신감이 생긴다.

하지만, 막상 뜯어보면 단어 하나하나마다 깊이 들어가는 과정들이 생기고 종류도 다양한 것을 알 수 있다.

특히, 자료구조와 알고리즘의 경우 새로운 개념들이 생기며, 논문으로 발표되기도 한다.

반응형

댓글