[TIL001]

Yongrok·2021년 8월 2일

KDT_TIL

목록 보기
1/5

자바스크립트의 원론적인 부분을 곱씹는 하루였다.
알고 있던 부분도 있었지만, 평소 취약했던 개념적인 부분을 짚어주는 강의를 통해 cs 지식을 쌓을 수 있었다.

1) 호이스팅?

es6에 와서 가장 큰 변화는 변수 선언 방법이 바뀐 것이다.
前) var
新) let(변수), const(상수)

변수 선언 방법이 개선된 이유는 무엇인가?

자바 스크립트는 함수 실행 전, 함수 내부에서 필요한 변수를 모두 모아서 유효범위 최상단에 선언한다.
다시 말해, 함수 내에서 필요한 값을 우선 끌어 올려서 선언을 한 뒤, 이후 원래 값을 지정한 위치에서는 미리 선언된 해당 변수에 값을 할당하는 방식이다.
이러한 현상을 호이스팅이라고 하는데, 이로 인해서 원치 않은 오류가 발생하는 것이다.

호이스팅의 대상: var 변수, 함수 선언식
개선 방법 :

  • var 변수: let과 const를 사용
  • 함수 선언식: 함수 표현식 사용
    • 함수 선언식: function func() { }
    • 함수 표현식: const func = function() { }

2) 메모리(Heap, Call Stack)

자바 스크립트는 Heap과 Call Stack을 통해 메모리를 관리한다. 이후 가비지 컬렉터를 통해 메모리를 정리한다.
Heap: 참조타입을 저장
Call Stack : 원시타입 & 함수 호출의 실행 컨텍스트(heap의 주솟값)를 저장
Garbage Collector : Mark and Sweep Algorithm 하에서, 참조 되지 않는 메모리를 정리

참조타입? 원시타입?

참조타입 : 객체, 배열, 함수. 크기가 동적으로 변함. 메모리 블록의 주소를 저장
원시타입 : string, number, boolean, undefined, null. 메모리 영역에 직접적으로 접근, 저장

3) HTTPS

https = http + 데이터 암호화
http는 암호화 되지 않은 평문 데이터를 전송하는 프로토콜이기에 주요 정보를 타인이 조회 가능. 보안을 위해서 https가 태어났다.

HTTPS의 특징

  • 공개키 암호화 사용
    • 공개키 암호화 : 개인키로만 복호화 가능, 개인키를 가진 사용자만 조회 가능.
    • 개인키 암호화 : 공개키로 복호화 가능, 아무나 조회 가능
  • 443번 포트 사용(http는 80번)
  • 사용자가 데이터를 조회할 수는 있어도, 원본 열람은 불가능
  • 클라이언트가 요청을 보낼 때, 암호화를 위한 공개키를 생성. 일반적으로는 인증된 기관에 공개키를 전송하여 인증서를 발급 받음.

이 외에도 컴퓨터 시간, 암호화에 대해 학습했다.
하지만 아직 그 부분까진 생각이 미치지 않는 지라 그저 받아들이는 수준에서 그쳤다.

참조
https://gmlwjd9405.github.io/2019/04/22/javascript-hoisting.html
https://curryyou.tistory.com/276
https://mangkyu.tistory.com/98

0개의 댓글