원시자료형과 참조자료형

Young Han·2021년 4월 22일
0

기술블로그

목록 보기
5/7
post-thumbnail

원시자료형과 참조 자료형

학습목표

  • 원시 자료형(primitive type)과 참조 자료형(reference type)의 구분이 왜 필요한지에 대해서 영상을 보고 이해할 수 있다.
  • 원시 자료형과 참조 자료형의 차이를 이해하고, 각자 맞는 상황에서 사용할 수 있다.
  • 원시 자료형이 할당될 때에는 변수에 값(value) 자체가 담기고, 참조 자료형이 할당될 때는 보관함의 주소(reference)가 담긴다는 개념을 코드로 설명할 수 있다.
  • 참조 자료형은 기존에 고정된 크기의 보관함이 아니라, 동적으로 크기가 변하는 특별한 보관함을 사용한다는 것을 이해할 수 있다.

원시자료형 이란?

객체가 아니면서 method를 가지지 않는 6가지 타입을 말한다.
string, number, bigint, boolean, undefiend, symbol, (null) 을 말한다.
즉, 변수에 하나의 데이터만 넣을 수 있는 타입을 말한다.

원시자료형을 그림과 같이 표현 하자면 다음과 같다. 출처 ---> 코드스테이츠

 let A = 123;
 let b = 123456789;

이렇게 변수에 크기와 상관 없이 하나의 데이터만 담을 수 있다.

원시 자료형은 값 자체에 대한 변경이 불가능하지만, 변수에 다른 데이터를 할당 할 수는 있습니다.



let result = "hello world!" 
result = "hello coding!" 
//result 라는 변수에 재할당 하여 변수에 다른 데이터를 변경할 수 있다.

const num1 = 123;
num1 = 123456789; // 에러 발생
// 예외로 const키워드로 변수를 선언을 하게 되면, 재할당은 불가하다.

참조 자료형이란?

원시 자료형이 아닌 모든것을 참조 자료형이라 한다.
배열, 객체, 함수가 대표적이다.
원시 자료형과는 다르게 여러 데이터를 담을 수 있다.

참조 자료형을 그림과 같이 표현 하자면 다음과 같다. 출처 ---> 코드스테이츠

참조자료형은 "데이터의 크기가 동적으로 변하는" 특별한 데이터 보관함이 필요, 그리고 이 데이터가 위치한 곳(메모리 상 주소)을 가리키는 주소가 변수에 저장 된다. 즉, 변수에는 특별한 데이터 보관함을 찾아갈 수 있는 주소가 담겨있는 것이고 이 주소를 따라가다보면 특별한 데이터 보관함을 찾을 수 있는 것인데 이 보관함은 자기마음대로 사이즈를 늘렸다 줄였다를 할 수 있다.
그리고 이 특별한 데이터 보관함을 heap이라고 부른다.

그럼 왜 참조자료형이라고 부를까? 바로 데이터 값을 읽는게 아닌 주소를 참조하여 실제 변수가 있는 장소에 도착하고 나서야 그 데이터보관함 안에 있는 정보를 읽을 수 있기 때문이다.

0개의 댓글