Jungki

Hosting, TDZ (23/03/28) 본문

기술 면접 및 정보

Hosting, TDZ (23/03/28)

Daily정기 2023. 3. 28. 13:08
Hosting
  • Hosting 이란?
    제공자 등의 사업자가 주로 개인 홈페이지의 서버 기능을 대행하는 것을 의미한다. 즉 서버의 일부 or 전체를 이용할 수 있도록 임대해주는 서비스을 일컫는다.
    호스팅에는 웹 호스팅, 서버 호스팅, 클라우드 서버 호스팅이 있으며 이들은 웹, 서버 관리, 비용 부담을 줄일 수 있는 장점을 가지고 있다.
  • 웹호스팅
    웹호스팅은 www 공간을 임대하는 것을 말합니다. 인터넷에서 홈페이지를 운영하려면 인터넷 공간에서 자신의 홈페이지를 올려둬야하는데 그 서버 컴퓨터의 일정 공간을 이용할수 있도록 임대해주는 서비스이며 저렴한 가격에 독자적인 서버 컴퓨터를 가진것과 같은 동일한 서비스를 이용할 수 있다.

  • 서버호스팅
     웹 호스팅이 웹서버를 임대하여 사용하는 것이니 서버 호스팅과 다를게 뭐가 있을까 생각할 수 있다. 그러나 웹호스팅은 호스팅 업체의 서버 중 일부 공간만 임대하여 사용하는 것이라면 서버 호스팅은 호스팅 업체의 물리 서버를 단독으로 임대or구매하여 사용하는 것을 뜻한다. 서버 운영에 필요한 인프라와 기술력까지 제공받아 서버 관리에 대해 직접 권할을 가지고 운영하는 것을 의미한다. 웹 호스팅보다 비용은 많이 들지만 보안력이 좋다는 장점을 가지고 있다.
  • 클라우드 서버 호스팅
     클라우드 서버 호스팅이란 호스팅 업체의 가상 서버를 단독으로 사용하여 단 몇 분만에 서버 생생과 사용이 용이하다. 사용자가 자유롭게 서버를 확장, 축소 가능하고 서버 스펙도 마음대로 조절이 가능하여 사용한 만큼 후불로 비용을 지불하여 경제적으로 이용이 가능하다는 장점이 있다.

 

 

 

TDZ
  • TDZ 란?
    Temporal Dead Zone 이란 뜻으로 직역하면 일시적인 사각지대란 뜻입니다. 스코프의 시작 지점부터 초기화 시작 지점까지의 구간을 TDZ 라고합니다.
  • 설명

JavaScript 에서의 변수는 위의 사진과 같이 선언, 초기화, 할당 이라는 3가지 단계를 거치고 생성됩니다.

-선언 단계 : 변수를 실행 컨텍스트의 변수 객체에 등록하는 단계를 의미합니다. 이 변수 객체는 스코프가 참조하는 대상이됩니다.-초기화 단계 : 실행 컨텍스트에 존재 하는 변수 객체에 선언 단계의 변수를 위한 메모리를 만드는 단계입니다. 이 단계에서 할당된 메모리에는 undefined로 초기화 됩니다.- 할당 단계 : 사용자가 undefined 로 초기화된 메모리의 다른 값을 할당하는 단계입니다.   
var 는 선언과 초기화 단계가 동시에 이루어집니다.
let, const 는 선언, 초기화, 할당 단계가 각각 따로 이루어집니다.
function (함수 선언문) 은 선언, 초기화, 할당 단계가 동시에 이루어집니다.
그렇기 때문에 선언과 초기화 단계가 따로 이루어 지는 let, const 같은 경우는 TDZ에 영향을 받을 수 밖에 없습니다.
     

 

  • 예시
예제 1

const example1 = () => {
console.log('너의 이름은?' , name);
var name = '홍정기';
}

// 함수 스코프안에 name 변수가 선언되기 전에 참조를 하였기 때문에 TDZ 에서 에러가 발생해야하나,
var로 선언한 변수가 호이스팅(선언, 초기화 진행) 되어 에러가 발생하지 않고 undefined 가 표시됨

예제 2

const example 2 = () => {
console.log('너의 이름은?' , name);
let name = '홍정기';
}

// 함수 스코프안에 let 으로 선언된 uname변수가 호이스팅은 되었지만 값이 초기화가 되기전에
name 변수를 사용하려 했기 때문에 에러가 발생함

 

'기술 면접 및 정보' 카테고리의 다른 글

프레임워크 vs 라이브러리 (23/03/29)  (0) 2023.03.29
Parameter vs Argument (23/03/28)  (0) 2023.03.28
RESTful API (23/03/27)  (0) 2023.03.27
웹페이지의 랜더링 (23/03/27)  (0) 2023.03.27
Life Cycle(React) (23/03/23)  (0) 2023.03.23