CPU (Central processing unit)
하드 드라이브에 있는 데이터를 토대로 연산 처리하여 출력장치로 결과를 표시할 때 사용된다.
하드 드라이브
비휘발성(non-volatile) 메모리로 가격이 저렴하고 용량이 크고 전원이 꺼져도 Data가 저장되어 있는 대신에 동작속도가 느리다는 특성이 있다.
RAM(Random Access Memory)
휘발성(volatile) 메모리로 가격이 비싸고 용량이 적은 대신 전원이 꺼지면 Data가 사라지지만 동작속도가 빠르다는 특성이 있다.
이론적으로는 CPU와 하드 드라이브만을 가지고도 컴퓨터의 연산처리를 할 수 있지만 하드 드라이브의 속도 문제로 인해서 고성능 CPU를 가졌더라도 전반적인 성능이 떨어지는 현상이 발생할 수 있다. 이를 막기 위해서 생겨난 또 하나의 데이터 기억장치가 RAM이다. 휘발성 메모리이기 때문에 반영구적으로 데이터를 보관할 수는 없지만 CPU의 데이터 처리 속도를 감당할 수 있을만큼 빠르고 데이터 구조의 타깃이 되는 것도 바로 이 RAM이다.
구분 | Array | Linked List |
---|---|---|
Data의 삭제/삽입 | Data를 추가하거나 삭제할 때, 맨 뒤쪽 data를 움직여 공간을 확보하고 data를 추가하거나 삭제해야 하므로 Linked list보다 성능이 좋지 않다. | 앞/뒤 node가 가리키는 주소만 변경하면 되므로 data의 삽입/삭제가 매우 손쉽다. |
Data 접근 | index를 통해서 data의 주소로 바로 접근할 수 있어 속도가 매우 빠르다.(Random Access) | index의 개념이 없어 특정 data로의 접근성이 Array에 비해서 상대적으로 낮다. |
Data의 확장성 | 없다 | 있다 |
출처-YOUTUBE 생활코딩 / IT 동아 / YOUTUBE 노마드 코더