코어 자바스크립트

[TIL/코어 자바스크립트] 2024/05/11

✅ 데이터 타입 - 데이터 타입의 종류 데이터 타입의 종류는 으로 나뉜다. 사실 핵심은 기본형과 참조형의 구분 기준, 그러니까 '복제', '참조', '불변성' 등의 개념이다. 그런데 이러면서 아사모사하게 넘어감. 그래서 나도 넘어감. 하여튼, 기본형 또는 참

2024년 5월 11일2min read

✅ 데이터 타입 - 데이터 타입의 종류

데이터 타입의 종류는 <기본형/참조형>으로 나뉜다.

사실 핵심은 기본형과 참조형의 구분 기준, 그러니까 '복제', '참조', '불변성' 등의 개념이다.

그런데 ``개발 서적 특) 뒤에서 알아보자`` 이러면서 아사모사하게 넘어감.

그래서 나도 넘어감.

하여튼, 기본형 또는 참조형으로 데이터 타입을 구분할 수 있다더래요~~~ 가 핵심.

✅ 데이터 타입 - 데이터 타입에 관한 배경지식

비트는 가장 작은 데이터 조각이라고 할 수 있다. 0 또는 1로 표현된다. 콤퓨타는 모든 데이터를 0 또는 1로 바꿔 기억한다.

각 비트는 '식별자'를 통해 위치를 찾을 수 있다. '이름'이라고 생각하면 된다. 8명의 비트 친구들이 모인 하나의 묶음이 바이트다.

8개 비트의 시그마가 바이트고, 바이트의 시그마가 메모리인 것!!

그런데 일반적으로 '메모리 주솟값'이라는 것은 바이트 가장 선두에 위치한 비트의 식별자를 의미한다.

쫄지 말자. 원민관, 침착맨, 빈지노 등 8명으로 구성된 분대의 선두에 있는 원민관, 그러니까 메모리 주솟값이라는 것은 '분대장 이름' 같은 것이다.

✅ 데이터 타입 - 변수 선언과 데이터 할당

변수 선언은 빈 방에 이름 붙이기다. '카네기 홀' 같은 거다. 굉장히 수준 낮은 정의지만, 알게 뭐야... 잘 기억하고 잘 써먹으면 되는 것 아닌가... ~~반박시 님 말이 다 맞음~~

'이름 붙이기'까지가 선언이라면, 할당은 카네기 홀에 원민관, 침착맨, 빈지노 등의 개별 값을 넣어주는 것이다. 여기서 1차 위기가 오는데, 컴퓨터는 그냥 카네기 홀에 보내주지 않는다.

개별 데이터는 '데이터 영역'에 따로 저장된다. 방에 바로 보내주지 않겠다는 것인데, 왜 굳이 한 단계를 더 거치는 것인가.(=> 핵심)

유연성과 효율성 때문이다.

데이터의 종류마다 확보해야 하는 공간의 크기가 다른데, 데이터가 변경될 때마다 공간을 변경하려면 매우 피곤해진다. 서쪽으로 호(壕)를 팠더니, 동쪽으로 다시 파라는 사단장(놈)님의 요구사항을 직면하는 것처럼 상당히 짜증나지게 된다. 그래서 별도로 값을 저장해놓고, 변수 영역에는 '해당 값의 메모리 주소'를 저장하는 것이다.

변수 영역만 사용하면 500개의 숫자 값(8바이트)을 저장할 때 4000바이트가 소모된다. 별도 저장 공간이 2바이트라고 가정하면, 메모리 주소를 변수 영역에 저장하는 방식을 취하면, 1008바이트만 사용하면 된다.

✅ 회고

저명한 통계학 척척석사 서XX 님이 최근에 "필름 카메라의 매력은 색감이 아니라 선물처럼 다가오는 추억임"(워딩이 정확하지 않을 수 있다)이라는 고견을 제시한 바 있다. 맞아, 인간의 기억력은 생각보다 처참해서 '사진'같은 추억의 트리거가 필요하다.

개발을 하다 보면 산출물에 본인의 성취를 대입하는 경우가 많다. 그러니까 어떤 페이지가 구현되어야(= 눈에 보이는 게 있어야) 만족하는 경우가 많다. 그런데 보통 구현 전까지 고민하고 학습하는 시간이 9할에 가까운데, 그 순간에만(= 구현된 순간에만) 만족감을 느끼는 건 너무 불행한 거 아닌가? ~~이런 관점에서 보면 백엔드 개발자들이 존경스럽다~~

아무튼 나는 매일 행복하고 싶기에, 내가 읽는 모든 텍스트를 아키텍처의 형태로 변환한 뒤 벨로그에 누적하기로 결정했다. 내가 누적하는 아키텍처는 개발 여정의 '사진'이 되지 않을까 하는 생각이다. 작은 단위의 '산출물'이기도 하고.

"신은 당신의 성공에는 관심이 없다. 다만 당신의 행복에는 매우 신경 쓰고 있다."

정말. 나도 그렇게 생각한다.