Posts 원사자료 vs 참조자료
원사자료 vs 참조자료
Cancel

원사자료 vs 참조자료

1. 원시자료

자바스크립트에서 원시 타입의 데이터(primitive type data; 원시 자료형)는 객체가 아니면서 method를 가지지 않는 6가지의 타입

string, number, bigint, boolean, undefined, symbol, (null)

원시 자료형의 특징

  • “하나”의 정보를 담고 있다.
  • 옛날에 코드를 작성하려면 데이터 저장소의 용량이 제한되어 있어 데이터 한 칸에 하나의 데이터만 담을 수 밖에 없었다. 그래서 단순한 데이터인 ‘원시적인’이 된 것.
  • 원시 자료형은 보관함의 크기가 모두 같다. 참조는 조금 특별한 보관함.
  • 변수에 담기는 값의 크기는 다르지만, 원시 자료형 값이 담기는 보관함의 크기는 동일
1
2
let a = 999;
let b = 99999999;

예시를 보면 a와 b의 값은 다르지만, 보관함의 크기는 동일.

  • 원시 자료는 값 자체에 대한 변경이 불가능(immutable)하지만, 다른 값을 할당할 수는 있다.
1
2
let a = "hi"; // -> 여기서 a의 값은 "hi"
a = "oh"; // -> 여기서는 "oh"

2. null

null은 원시 타입에 속한다고 하지만 조금 다르다.
우선, null은 개체 값의 의도적인 부재를 나타내기 위해 사용한다.

1
typeof null === "object"; // true

로 뜬다. 이유가 뭘까
null이 객체에서 자주 사용되었기 떄문이라고 한다. null은 객체에서 빈 참조를 나타내는데 자주 사용된다.
null === 객체의 부재를 나타내는 원시 값

3. 참조 자료

참조 자료의 특징

  • 원시 자료와는 다른 특별한 데이터 보관함에 저장이 된다.
  • 보관함의 크기는 자유자재. 그래서 동적(dynamice)
  • 우리가 값을 넣어주는 변수에는 주소라는 것이 저장된다. 데이터 보관함을 heap이라고도 부름.
  • 데이터 보관함의 크기가 바뀌는 이유는, 수만가지의 데이터가 들어갈 때도 있고, 조금의 데이터가 들어갈 때도 있어서 들어가는 데이터의 양 만큼 보관함의 크기를 줄였다가 늘였다가 하는 것.
  • 보관함의 크기를 고정시킨다면, 안에 들어가는 데이터의 양도 고정시켜야 하기 떄문.
This post is licensed under CC BY 4.0 by the author.

데이터 자료구조. Stack / Queue

TIL 39일차

Comments powered by Disqus.