📚자료구조란 무엇인가?

📄자료와 정보

  • 자료: 현실 세계에서 관찰이나 측정을 통해 수집된 값이나 사실.
  • 정보: 어떤 상황에 대해 적절한 의사 결정을 할 수 있게 하는 지식. 자료의 유효한 해설이나 자료 상호 간의 관계를 표현하는 내용.

자료가 가공되고 정리된 것이 정보. 자료를 정보로 만들기 위한 첫 단계가 자료구조.

📄추상화

추상화는 공통적인 개념을 통해 같은 종류의 다양한 객체를 정의하는 것이다. 예를 들면 버스, 트럭, 승용차 등의 바퀴가 네 개 달린 탈 것을 자동차라고 부른다. 여기서 자동차가 추상화된 단어이고 우리는 자동차에 대한 세세한 설명이 없어도 다른 사람들과 의사소통할 때 편하고 간결하게 의사를 전달할 수 있다.

자료의 추상화는 다양한 대상을 컴퓨터에서 저장하고 처리하기 위해 대상들의 의미와 구조에 대해 공통의 특징만을 봅아 정의한 것이다. 여기에는 컴퓨터 내부에서 처리되는 이진수 표현 방법이나 메모리 내에서 전자적 저장 위치 등은 포함되지 않는다.

📄자료구조

자료의 추상화를 이용하여 자료의 논리적 관계를 구조화하는 것을 자료구조라고 한다. 자료의 추상화가 잘 이루어지지 못하면 소프트웨어가 비효율적으로 수행될 수 있어 데이터 또는 소프트웨어가 복잡해지고 커질수록 자료구조의 중요성이 강조되고 있다.

자료구조와 알고리즘은 매우 밀접한 관련이 있다. 컴퓨터에게 일을 시키기 위한 명령문을 알고리즘이라고 한다면 알고리즘이 효율적으로 작동하기 위해 필요한 자료의 논리적 구조나 관계를 자료구조라고 한다. 자료구조가 효율적이 못하면 알고리즘이 느리게 수행되거나 결과가 달라질 수 있다.

자료구조는 프로그래밍 언어에서 제공되는 미리 정의된 자료구조와 사용자가 정의하여 사용하는 사용자 정의 자료구조로 구분된다.

  • 미리 정의된 자료구조: 정수, 실수, 문자 등
  • 사용자 정의 자료구조: 스택, 큐, 리스트, 트리, 그래프 등

📄알고리즘

자료구조는 알고리즘의 성능에 영향을 줄 수 있을 정도로 밀접한 관계가 있다. 알고리즘은 컴퓨터가 일을 하는데 필요한 명령어들이 추상화되어 존재하는 것이다.

알고리즘이 지니고 있어야할 조건

  1. 출력: 알고리즘을 수행하고 나면 적어도 한 가지 결과를 생성해야 한다.
  2. 유효성: 알고리즘은 각 연산이 명확한 것만으론 부족하고, 반드시 실행 가능해야 한다.
  3. 입력: 외부에서 제공되는 자료가 있을 수 있다.
  4. 명확성: 각 명령들은 명확하고 모호하지 않아야 한다.
  5. 유한성: 알고리즘의 명령을 수행하다 보면 언젠가는 멈춰야 한다.



Leave a comment