Web
[ Next.js - DeepDive ] -미들웨어 ( Middlewares )
https://nextjs.org/docs/advanced-features/middleware Advanced Features: Middleware | Next.js Learn how to use Middleware to run code before a request is completed. nextjs.org 미들웨어는 request가 완료되기 전에 실행시킬 코드에 대해 정의할 수 있습니다. 그리고 우리는 이를 활용하여 들어오는 request에 대해 response를 덮어쓸 수도, redirecting할 수도, header를 추가할 수도 그리고 cookie를 설정할 수도 있게 됩니다. 그리고 이 미들웨어는 캐시된 파일 이전에 돌아갑니다. 그래서 우리가 static한 파일과 페이지를 만들 떄, 이미 인증..
Advanced Web Programming - Closure
클로저 함수 클로저 함수는 외부 함수의 실행이 끝나더라도 외부 함수 내 변수를 사용할 수 있습니다. 클로저는 이처럼 특정 데이터를 스코프 안에 가두어 둔 채로 계속 사용할 수 있게 하는 폐쇄성을 갖습니다. // 클로저를 만드는 형태 1. - 중첩함수 function outerFn() { let x = 10; return function innerFn(y) { // innerFn 함수는 클로저다. return x = x + y; } } let a = outerFn(); // 외부함수 호출은 한번만. 이제 a 변수는 innerFn 함수를 참조한다. a(5); // 15; a(5); // 20; a(5); // 25; // 클로저를 만드는 형태 2. - 전역에 선언한 변수를 박스 안에서 함수로 정의하고 전역에..
Advanced Web Programming - lexical scope ( 2 )
var name = 'zero'; // (1)변수 선언 (6)변수 대입 function wow(word) { // (2)변수 선언 (3)변수 대입 console.log(word + ' ' + name); // (11) } function say () { // (4)변수 선언 (5)변수 대입 var name = 'nero'; // (8) console.log(name); // (9) wow('hello'); // (10) } say(); // (7) 일단 처음 코드를 실행(여기서 실행은 브라우저가 스크립트를 로딩해서 실행하는 걸 말합니다..)하는 순간 모든 것을 포함하여 전역 컨텍스트가 생깁니다. 모든 것을 관리하는 환경입니다. 페이지가 종료될 때까지 유지됩니다. 전역 컨텍스트 말고도 함수 컨텍스트가 있습..
Advanced Web Programming - lexical scope
전역 변수와 지역 변수 자바스크립트에서 주로 변수를 사용해 데이터를 저장했었습니다. var로 선언했었습니다. 물론 변수를 만드는 일은 문제가 되지 않았지만. 전역(global)변수를 만드는 일은 최대한 지양해야 합니다. 전역변수란 자바스크립트에서 제일 바깥 범위(함수 안에 포함되지 않은)에 변수를 만드는 겁니다. window객체나 global객체에 변수를 만드는 것입니다. var x = 'global' function ex() { var x = 'local'; x = 'change'; } ex(); alert(x); 다음을 보시면 같은 x여도 ex함수 바깥의 x는 전역변수이고 ex함수 안의 x는 ex함수의 지역변수가 됩니다. 지역 변수는 함수 안에 들어있는 변수를 의미합니다. 스코프 위의 상황에서 지역변..