[자료구조] 01. 자료구조란 무엇인가?
본 내용은 필자가 학부 자료구조 수업내용을 공부하기 위해 정리한 것임을 알려드립니다.
1-1. 컴퓨터란 무엇인가?
컴퓨터는 ENIAC
- 에니악 (전자식 숫자 적분 및 계산기)를 최초로 (ABC가 최초의 컴퓨터라는 이의로 미국 법원에서 승소, 영국이 발명한 콜로서스가 최초라는 말도 존재한다.) 30년 뒤 Apple 2 컴퓨터, 그 후로 30년 뒤 iPhone 이 발명되었으며 지금에 이르기 까지 존재했다. 그럼 다음 세대가 될 컴퓨터는 무엇일까?
우리는 3 * 4 = 12 이고 13 * 3 = 39 라는 계산 식을 암산으로 쉽게 계산이 가능하다. 하지만 세자리 수 * 세자리 수 계산은 종이에 써보면서 계산하거나 계산기를 이용하여 답을 도출해내는 것이 일반적이다. (암산으로 가능한 사람이 있을 수 있고…) 연산과 기억을 동시에 해야한다 라는 점 때문에 우리는 복잡해지는 연산을 쉽게 계산하기 어려운 것이다.
Computer?
계산하는 사람이라는 뜻의 단어로 요즘은 Desktop, 스마트폰 등 여러가지 전자기기에 붙는 수식어가 되었다. 앞서 말했 듯 계산은 연산과 기억을 동시에 수행해야 한다고 말했다.
- 계산(Computation) = 연산(calculation) + 기억 (Memory)
- 컴퓨터 = CPU + Memory
튜링 머신을 시작으로 좀 더 보완된 폰 노이만 구조
가 요즘 컴퓨터에 까지 쓰이고 있다.
- 연산을 저장하는 Memory
- 연산을 담당하는 Processor
- 컴퓨터의 내부를 담당하는 Control Unit
- 수치, 논리계산을 담당하는 ALU 부분으로 구성되어 있다.
- 메모리와 프로세서가 서로 상호작용하며 연산을 수행한다.
1-2. 자료구조란 무엇인가?
자료구조란 데이터를 효율적으로 관리하는 기법이다.
- 데이터 (Data) : 데이터를 저장하는 기본적인 단위 (int, float, char, class/struct, etc)
- 효율적 (Efficiency) :
solution/resource
- solution을 내기 위해 투입 된 resource 로 나눈 것.
- 공간(Memory) 적게, 시간(CPU)도 적게.
- 관리 : 프로그램을 사용하며 많이 사용하는 연산
- 삽입, 검색, 제거
- 기법 : 구조 (데이터가 저장되어 있는 구조) + 연산 (삽입, 검색, 제거)
- 추상 자료형 (Abstarct data type)
[자료구조] 01. 자료구조란 무엇인가?