JavaScript(62)
-
리엑트의 불변성
리엑트의 가장 중요한 특징이라고 하면 불변성일 것이다. 아래의 궁금증을 가지며 글을 작성해본다.리엑트는 왜 불변성을 가질까?불변성을 지켜 어떤 이점을 가져갈 수 있고, 그에 따른 단점이 무엇일까?불변성 불변성은 메모리에 있는 값을 변경할 수 없는 것을 말한다.하지만 우리는 변수의 값을 곧 잘 변경했었다. 편의상 변경이라고는 하지만 내부적으로는 변하지 않는다.변수는 기존 값을 참조하고, 변수의 값을 변경시 새로운 값이 생성되고 변수는 새로 생성된 값을 참조하게 된다. 아무런 참조가 없는 값은 가비지 콜렉터가 처리하게 된다. 원시 데이터(string, number, boolean, null, undefined, Symbol) : 불변성이 있다. 원시 데이터는 수정시, 메모리에 저장된 값..
2024.04.24 -
자바스크립트의 역사
학습할때 과거, 역사를 아는 것은 굉장히 중요하다. 역사를 모른다면 왜 현재의 Javascript 를 사용하게 되었는지 알 수 없다. Javascript 가 왜 이렇게 발전했고 변화했는지 알아보고자 한다. Javascript 의 등장 (1995~1997) 1990 년대 초중반은 인터넷의 중요한 시기였다. 넷스케이프와 마이크로소프트와 같은 큰 기업들은 브라우저 전쟁을 벌이고 있었다. 이때 사용자들은 동적이고 상호작용적인 웹 페이지를 원하게 되었다. 1995 년에 브랜던 아이크가 브라우저에서 사용할 수 있는 정말 간단한 스크립트 언어를 개발했다. 원래 이름은 mocha 였지만 이를 넷스케이프 커뮤니케이션즈에서 LiveScript 로 릴리즈했고, 1997년 넷스케이프 2.0 에서 Javascript 로 이름이..
2024.04.23 -
UUID (Universally Unique IDentifier)
UUID 는 네트워크 상에서 고유성이 보장되는 ID 를 만들기 위한 표준 규약이다. 왜 UUID 를 ID 로 사용할까? ID 를 넣을때 auto increment 를 사용해 자동으로 숫자가 올라가는 방식으로 사용하는 경우가 있다. ex) 1, 2, 3, 4 이렇게하더라도 노출이 안되는 부분들도 있겠지만, 예를들어 상세조회나 업데이트, 삭제하기 등을 사용할때 파라미터에 ID 를 넣어 주고받는다. 이때 ID 숫자가 노출되는데 이는 유추할수 있어 보안상의 위험을 초래한다. UUID 에는 여러가지 버전이 있는데 그 중에서 많이 사용하는 1, 4 버전에 대해 알아본다. UUID v1 UUID 는 공통적으로 128비트의 숫자이며, 32자리의 16진수로 표현된다. 8-4-4-4-12 글자마다 하이픈을 집어넣어 5개의..
2024.04.19 -
호이스팅
이전에 실행컨텍스트에 대해 다루었었다. https://muyeon95.tistory.com/317 실행 컨텍스트 실행 컨텍스트는 실행할 코드에 제공할 환경 정보들을 모아놓은 객체이다. 이는 자바스크립트의 동적 언어로서의 성격을 가장 잘 파악할 수 있는 개념이다. 자바스크립트는 어떤 실행 컨텍스트 muyeon95.tistory.com 실행 컨텍스트 요약 자바스크립트 코드를 실행하는데 필요한 환경 정보, 즉 변수 객체, 스코프 체인, this 에 관한 내용 등을 담고 있는 객체이다. 실행 컨텍스트는 크게 전역 컨텍스트와 함수 컨텍스트 2가지로 나뉘며, 자바스크립트 코드 실행이 시작되면 무조건 콜 스택에 전역 컨텍스트가 먼저 쌓이고, 그 위로 함수를 호출할 때마다 함수 컨텍스트가 생성된다. 각 컨텍스트가 생성..
2023.12.31 -
실행 컨텍스트
실행 컨텍스트는 실행할 코드에 제공할 환경 정보들을 모아놓은 객체이다. 이는 자바스크립트의 동적 언어로서의 성격을 가장 잘 파악할 수 있는 개념이다. 자바스크립트는 어떤 실행 컨텍스트가 활성화되는 시점에 선언된 변수를 위로 끌어올리고(호이스팅), 외부 환경 정보를 구성하고 this 값을 설정하는 등의 동작을 수행하는데, 이로 인해 다른 언어에서는 없는 특이한 현상이 발생한다. 클로저를 지원하는 대부분의 언어에서 이와 유사하거나 동일한 개념이 적용되어 있다. 실행 컨텍스트란? 실행 컨텍스트는 실행할 코드에 제공할 환경 정보들을 모아놓은 객체이다. 동일한 환경에 있는 코드들을 실행할 때 필요한 환경 정보들을 모아 컨텍스트를 구성하고 이를 콜 스택에 쌓아올렸다가, 가장 위에 쌓여있는 컨텍스트와 관련 있는 코드..
2023.12.26 -
Javascript 데이터 타입
데이터 타입의 종류 데이터 타입은 크게 두가지가 존재한다. 기본형과 참조형이다. 기본형에는 숫자, 문자열, 불리언, null, undefined 등 이 있으며 ES6에서는 심볼이 추가되었다. 참조형은 객체가 있고, 배열, 함수, 날짜, 정규표현식 등과 ES6에서 추가된 Map, WeakMap, Set, WeakSet 등이 객체의 하위 분류에 속한다. 어떤 기준으로 기본형과 참조형을 구분할까? 일반적으로 기본형은 할당이나 연산 시 복제되고 참조형은 참조된다고 알려져 있다. 엄밀히 말하면 둘 모두 복제를 하긴한다. 다만 기본형은 값이 담긴 주소값을 바로 복제하는 반면 참조형은 값이 담긴 주솟값들로 이루어진 묶음을 가리키는 주솟값을 복제한다는 점이 다르다. 기본형은 불변성을 띈다. 혼란스러울 수 있는데 기본형..
2023.12.18