본문 바로가기

전체 글70

16 프로퍼티 어트리뷰트 내부 슬롯과 내부 메서드는 JS엔진의 내부 로직이므로 직접적으로 접근하거나 호출할 수 있는 방법을 제공하지 않는다.단, 일부에 한하여 간접적으로 접근할 수 있는 수단을 제공.[[Prototype]] 내부 슬롯의 경우, __proto__를 통해 간접적으로 접근 가능. JS엔진은 프로퍼티를 생성할 때 프로퍼티의 상태를 나타내는 프로퍼티 어트리뷰트를 기본값으로 자동 정의.프로퍼티 상태란 : 프로퍼티의 값(value), 값의 갱신 가능 여부(writerble), 열거 가능 여부(enumerable),재정의 가능 여부(configurable)를 말한다.# [[Value]], [[Writable]], [[Enumerable]], [[Configurable]]Object.getOwnPropertyDescriptor .. 2024. 9. 23.
15 let, const 키워드와 블록 레벨 스코프 let중복 선언하면 문법 에러(SyntaxError)let으로 선언한 변수는 모든 코드 블록(함수, if, for, while, try/catch)를 지역 스코프로 인정하는블록 레벨 스코프(block-level scope)를 따른다let foo = 1; // 전역 변수{ let foo = 2; // 지역 변수 let bar = 3; // 지역 변수}console.log(foo); // 1console.log(bar); // ReferenceError var와 다르게 변수 호이스팅이 발생하지 않는 것처럼 동작함console.log(foo); // ReferenceErrorlet foo; 선언 단계와 초기화 단계가 분리되어 진행된다.런타임 이전에 JS 엔진에 의해 암묵적으로 선언 단계가 실행되지만,.. 2024. 9. 23.
Proxy 서버 웹 프록시는 웹 브라우저와 최정 서버 사이에서 중개 역할을 하는 프로그램.브라우저는 프록시에 연락하고 프록시는 요청을 최종 서버로 전달.최종 서버가 프록시에 응답하면, 프록시는 응답을 브라우저로 전송 사용처방화벽 뒤의 브루어저가 프록시를 통해서만 방화벽 너머의 서버와 접속할 수 있도록 함모든 식별 정보를 제거하여 익명화 도구로 작용할 수 있다웹 객체를 캐시하여 서버로부터의 객체의 로컬 복사본을 저장하고, 이후에 캐시에서 읽어 응답 간단한 HTTP 프록시 구현1. 프록시를 설정하여 들어오는 연결을 수락,    요청을 읽고 파싱,    웹 서버로 요청을 전달    서버의 응답을 읽어 해당 클라이언트로 응답을 전달2. 여러 동시 연결을 처리하도록 업그레이드 ( 동시성 처리 )3. 최근에 접근한 컨텐츠의 간단한.. 2024. 9. 20.
Proxy 서버 웹 프록시는 웹 브라우저와 최정 서버 사이에서 중개 역할을 하는 프로그램.브라우저는 프록시에 연락하고 프록시는 요청을 최종 서버로 전달.최종 서버가 프록시에 응답하면, 프록시는 응답을 브라우저로 전송 사용처방화벽 뒤의 브루어저가 프록시를 통해서만 방화벽 너머의 서버와 접속할 수 있도록 함모든 식별 정보를 제거하여 익명화 도구로 작용할 수 있다웹 객체를 캐시하여 서버로부터의 객체의 로컬 복사본을 저장하고, 이후에 캐시에서 읽어 응답 간단한 HTTP 프록시 구현1. 프록시를 설정하여 들어오는 연결을 수락,    요청을 읽고 파싱,    웹 서버로 요청을 전달    서버의 응답을 읽어 해당 클라이언트로 응답을 전달2. 여러 동시 연결을 처리하도록 업그레이드 ( 동시성 처리 )3. 최근에 접근한 컨텐츠의 간단한.. 2024. 9. 20.
14 전역 변수의 문제점 지역 변수의 생명 주기변수는 자신이 선언된 위치에서 생성되고 소멸한다.함수 내부에 선언한 지역변수는 함수가 호출된 직후에 함수 몸체 코드가 실행되기 이전에 먼저 실행됨지역 변수의 생명 주기는 함수의 생명 주기와 일치 변수의 생명 주기는 메모리 확보(allocate)된 시점부터 해제(release)되어 가용 메모리 풀(memory pool)에 반환되는 시점까지다. 지역 변수는 함수가 생성한 스코프에 등록된다.변수는 자신이 등록된 스코프가 소멸(메모리 해제)될 때까지 유효하다.누군가 스코프를 참조하고 있으면, 소멸하지 않고 생존 호이스팅은 변수 선언이 스코프의 선두로 끌어 올려진 것처럼 동작하는 JS 고유의 특징이다var x = 'global';function foo() { console.log(x); .. 2024. 9. 20.
13 스코프 스코프(scope - 유효범위) : 매개변수는 함수 몸체 내부에서만 참조할 수 있다.매개변수를 참조할 수 있는 유효범위, 매개변수의 스코프가 함수 몸체 내부로 한정되어 있기 때문.var var1 = 1; // 코드 가장 바깥 영역에서 선언한 변수if (true) { var var2 = 2; // 코드 블록 내에서 선언한 변수 if (true) { var var3 = 3; // 중첩된 코드 블록 내에서 선언한 변수 }}function foo() { var var4 = 4; // 함수 내에서 선언한 변수 function bar() { var var5 = 5; // 중첩된 함수 내에서 선언한 변수 }}console.log(var1); // 1console.log(var2); // 2c.. 2024. 9. 20.