자료구조는 '데이터를 효과적으로 정리하고 관리하는 방법'입니다. 데이터를 체계적으로 구성해야 빠르고 효율적으로 문제를 해결할 수 있습니다.

리스트, 스택, 큐, 트리, 그래프와 같은 다양한 데이터 정리 방법들을 정리합니다.

컴퓨터가 이해하는 방법

우리가 사용하는 숫자, 글자, 이미지 등 모든 정보는 컴퓨터 내부에서 0과 1의 조합인 이진수(Binary)로 표현됩니다. 컴퓨터의 언어는 오직 0과 1뿐입니다.

  • 숫자 표현 : 우리가 쓰는 10진수를 컴퓨터는 2진수로 바꿔서 이해합니다. 특히 음수를 표현할 때는 '2의 보수'라는 방식을 주로 사용하는데, 이는 계산을 더 간단하게 만들어주기 때문입니다. 실수(소수점이 있는 수)는 '부동 소수점' 방식으로 표현하여 아주 큰 수나 작은 수도 나타낼 수 있습니다.
  • 문자 표현 : 초기에는 영어를 중심으로 한 ASCII(아스키) 코드가 표준이었지만, 전 세계의 다양한 언어를 표현하기에는 한계가 있었습니다. 이를 해결하기 위해 등장한 것이 바로 Unicode(유니코드)입니다. 덕분에 우리는 컴퓨터에서 한글을 포함한 세계 각국의 언어를 자유롭게 사용할 수 있게 되었습니다.

추상화

'추상화'라는 말은 어려운 표현이지만, '핵심만 남기고 나머지는 단순화하는 것'입니다. 우리가 자동차를 운전할 때 엔진의 원리까지 알 필요는 없습니다. 핸들, 엑셀, 브레이크 등 '무엇을' 해야 하는지만 알면 됩니다.

프로그래밍에서도 마찬가지입니다. '추상 자료형(ADT, Abstract Data Type)'은 자료구조의 '사용 설명서'와 같습니다. 이 자료구조가 '무엇을' 할 수 있는지(예: 데이터 추가, 삭제, 검색)에만 집중하고, '어떻게' 구현되는지에 대한 복잡한 내부 구조는 숨겨줍니다. 이를 통해 우리는 더 큰 그림을 보며 문제 해결에 집중할 수 있습니다.

  • 추상화: "무엇(What)을 할 것인가?"에 대한 논리적 정의
  • 구체화: "어떻게(How) 할 것인가?"에 대한 실제적 구현
728x90

'자료구조' 카테고리의 다른 글

연결 자료구조와 연결 리스트(2)  (0) 2025.10.22
연결 자료구조와 연결 리스트(1)  (0) 2025.10.21
순차 자료구조와 선형리스트  (0) 2025.10.20
C언어 문법  (0) 2025.09.26
알고리즘 기초  (0) 2025.09.26