[TIL/모던 자바스크립트 Deep Dive] 2023/03/14
6장. 데이터 타입(Data Type) 데이터 타입(data type)은 말 그대로 값의 종류를 말한다. JS의 모든 값은 데이터 타입을 갖는다. 자바스크립트(ES6)는 7개의 데이터 타입을 제공한다. 7개의 데이터 타입은 과 으로 분류할 수 있다. 6-1. 숫자
6장. 데이터 타입(Data Type)
데이터 타입(data type)은 말 그대로 값의 종류를 말한다. JS의 모든 값은 데이터 타입을 갖는다. 자바스크립트(ES6)는 7개의 데이터 타입을 제공한다. 7개의 데이터 타입은 ``원시 타입(primitive type)`과 `객체 타입(object/reference type)``으로 분류할 수 있다.


6-1. 숫자 타입(Number Type)
C 또는 Java의 경우, ``정수와 실수를 구분`하여 int, long, float, double 등, 다양한 숫자 타입을 제공한다고 한다. 자바스크립트는 `하나의 숫자 타입만`` 존재한다.
ECMAScript 사양에 따르면 숫자 타입의 값은 배정밀도 64비트 부동소수점 형식을 따른다.
바로 위의 문장이 오늘의 최대 위기였다.
컴퓨터에서 ``실수`(소수점 이하가 있는 숫자)를 표현하는 방식에는 `고정소수점 방식`과 `부동소수점 방식``이 있다. 소수점을 고정한 상태로 실수를 표현하면 '고정소수점 방식', 소수점을 유동적으로 옮길 수 있는 상태(=부동,floating)로 실수를 표현하면 '부동소수점 방식'이다.
이러한 ``부동소수점 방식`은 `배정밀도(Double Precision)`와 `단정밀도(Single Precision)``로 구분된다.
#### ECMAScript 사양에 따르면 숫자 타입의 값은 배정밀도 64비트 부동소수점 형식을 따른다.
어쨌든 JS에서는 모든 수를 실수로 처리하며, 정수만을 표현하기 위한 데이터 타입은 별도로 존재하지 않는다는 것이 결론이다. 숫자 타입 part 초입에, 자바스크립트는 '하나의 숫자 타입(실수)'만 존재한다고 언급한 것이 바로 위 결론에 해당된다.
정수, 실수, 2진수, 8진수 등의 리터럴은 모두 메모리에 배정밀도 64비트 부동소수점 형식의 ``2진수`로 `저장``된다.
한편 JS는 2진수, 8진수, 16진수를 표현하기 위한 데이터 타입을 제공하지 않기에 이들 값을 참조하면 모두 ``10진수`로 `해석``된다.
추가적인 숫자 타입 개념

6-2. 문자열 타입(String Type)
문자열(string) 타입은 ``text data``를 나타내는 데 사용한다.
문자열은 ``작은따옴표(''), 큰따옴표(""), 또는 백틱()``으로 텍스트를 감싼다.

문자열만 따옴표로 감싸는 이유는 ``키워드 또는 식별자와 같은 토큰과 구분``하기 위해서다. 문자열을 따옴표로 감싸지 않으면 JS 엔진은 문자열이 아니라 키워드나 식별자와 같은 토큰으로 인식한다.

'hello'를 따옴표로 감싸지 않으니까, Reference Error가 등장했다. 정말 식별자로 인식한다는 점을 확인할 수 있다.
primitive type과 obj/ref type의 판단 기준

그러나 JavaScript의 문자열은 ``원시 타입``이며, 이는 곧 immutable value임을 의미한다. '문자열과 불변성'에 관한 내용은 뒤에서 다룬다고 한다.
More to read
프론트엔드와 백엔드 사이
HTTP 상태 코드는 프론트엔드에서 백엔드로 보냈던 요청의 수행 결과를 의미하는 일종의 약속이며, API를 구성하는 핵심 요소 중 하나입니다. 상태 코드와 관련하여, 백엔드는 잘 모르는 프론트엔드의 슬픈 사정이 있습니다.아래는 요청이 실패했음에도, 백엔드에서 상태 코드
JWT토큰 관리 방식 톺아보기
0. 들어가며 🎯 서비스에 접근하려는 사용자가 누구인지 확인하는 과정을 사용자 인증이라고 합니다. 인증된 사용자에게 주어진 권한을 확인하는 작업은 인가라고 부릅니다. 이번 글에서는 인가는 다루지 않습니다. 사용자 인증에는 많은 방식이 있지만, 오늘은 세션 인증 방
A2AA2A / MCP 멀티 에이전트 오케스트레이션
0. 들어가며 ✍️ Google for Developers에, 레스토랑 공급망 시나리오로 엮은 6대 프로토콜(MCP, A2A, UCP, AP2, A2UI, AG-UI)에 대한 가이드가 게시된 이후, MCP와 A2A부터 구현해 보는 것이 좋을 것 같다는 생각이 들었습니