자바스크립트의 원론적인 부분을 곱씹는 하루였다.
알고 있던 부분도 있었지만, 평소 취약했던 개념적인 부분을 짚어주는 강의를 통해 cs 지식을 쌓을 수 있었다.
es6에 와서 가장 큰 변화는 변수 선언 방법이 바뀐 것이다.
前) var
新) let(변수), const(상수)
자바 스크립트는 함수 실행 전, 함수 내부에서 필요한 변수를 모두 모아서 유효범위 최상단에 선언한다.
다시 말해, 함수 내에서 필요한 값을 우선 끌어 올려서 선언을 한 뒤, 이후 원래 값을 지정한 위치에서는 미리 선언된 해당 변수에 값을 할당하는 방식이다.
이러한 현상을 호이스팅이라고 하는데, 이로 인해서 원치 않은 오류가 발생하는 것이다.
호이스팅의 대상: var 변수, 함수 선언식
개선 방법 :
자바 스크립트는 Heap과 Call Stack을 통해 메모리를 관리한다. 이후 가비지 컬렉터를 통해 메모리를 정리한다.
Heap: 참조타입을 저장
Call Stack : 원시타입 & 함수 호출의 실행 컨텍스트(heap의 주솟값)를 저장
Garbage Collector : Mark and Sweep Algorithm 하에서, 참조 되지 않는 메모리를 정리
참조타입 : 객체, 배열, 함수. 크기가 동적으로 변함. 메모리 블록의 주소를 저장
원시타입 : string, number, boolean, undefined, null. 메모리 영역에 직접적으로 접근, 저장
https = http + 데이터 암호화
http는 암호화 되지 않은 평문 데이터를 전송하는 프로토콜이기에 주요 정보를 타인이 조회 가능. 보안을 위해서 https가 태어났다.
이 외에도 컴퓨터 시간, 암호화에 대해 학습했다.
하지만 아직 그 부분까진 생각이 미치지 않는 지라 그저 받아들이는 수준에서 그쳤다.
참조
https://gmlwjd9405.github.io/2019/04/22/javascript-hoisting.html
https://curryyou.tistory.com/276
https://mangkyu.tistory.com/98