[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

💻 CS/자료구조 & 알고리즘

[자료구조] 컴퓨터가 데이터를 저장하는 방법

inu 2020. 1. 5. 15:41
반응형

컴퓨터가 자료를 저장하는 방식은 2가지

  1. 스토리지 : 영구적 저장소
    저장속도가 느리고 받아오는 것도 느리다.
    정확히 언제 사용할지 모르는 데이터 저장한다.
  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은 완전히 같은 주소를 가르킨다.

반응형