반응형
컴퓨터가 자료를 저장하는 방식은 2가지
- 스토리지 : 영구적 저장소
저장속도가 느리고 받아오는 것도 느리다.
정확히 언제 사용할지 모르는 데이터 저장한다. - 메모리 : 임시 저장소
저장속도가 빠르고 받아오는 것도 빠르다.
지금 당장 사용할 데이터 저장한다.
두개로 나눠 사용하는 이유는 효율적인 작업을 위해서이다.
자료구조 공부시엔, 이 중 메모리에서 데이터를 잘 활용하는 방법을 익힌다.
메모리
메모리는 각 주소가 담긴 일종의 긴 띠라고 생각하면 편하다.
긴 띠가 구역별로 나누어져 각각의 구역에 데이터가 저장되는 것이다.
- 우리가 사용할 메모리는 RAM(Random Access Meomory, 임의접근메모리)이기때문에 어떤 주소에 있던 데이터접근에는 일정한 시간이 소요된다. (O(1))
- 바이트란 컴퓨터 저장 공간 용량을 나태내는 단위인데, 메모리 한 칸에 담기는 데이터 용량은 이 1 바이트다.
변수와 레퍼런스
x = 95라고 하면 x 자체가 95인 것이 아니다. x가 95의 데이터를 가르키는 레퍼런스인 것이다.
x는 해당 레퍼런스를 대변해주는 기호정도로 생각하자. 레퍼런스는 데이터에 접근할 수 있게 해주는 값인데,
주소보다 좀 더 포괄적인 표현이다. 하지만 우선 "주소=레퍼런스"로 이해하자.
실제 프로그래밍을 할 때는 x의 레퍼런스 안의 값을 알아서 받아오기 때문에 지금까지 x 자체가 95라고 이해한 것이다.
cf. 파이썬에서는 id(변수)를 통해 해당 변수의 레퍼런스값을 가져올 수 있다.
list1 = [1, 2]
list3 = [1, 2, 3]
# Aliasing을 통해 list1과 list2를 같게 한다
list2 = list1
이렇게 한 다음 list1과 2에 id를 요청하면, list2와 list1은 완전히 같은 주소를 가르킨다.
반응형
'💻 CS > 자료구조 & 알고리즘' 카테고리의 다른 글
[자료구조] 추상자료형 (ft. 큐, 스택, 딕셔너리, 세트) (0) | 2020.01.11 |
---|---|
[자료구조] 해시 테이블 (0) | 2020.01.09 |
[자료구조] 링크드 리스트 (0) | 2020.01.07 |
[자료구조] 배열 (0) | 2020.01.05 |
[자료구조] 자료구조란? (0) | 2020.01.02 |