1️⃣ 렉시컬 스코프(Lexical scope)에 대해 설명해 주세요.
렉시컬 스코프는 변수의 유효 범위가 함수의 정의 위치에 따라 결정되는 규칙입니다. 자바스크립트에서 함수가 어디에 선언되었는지에 따라 해당 함수가 접근할 수 있는 변수가 정해지며, 이는 함수의 호출이 아닌 선언에 따라 결정됩니다.
주요 특징
- 상위 스코프 접근 : 중첩된 함수는 자신이 정의된 상위 함수의 변수에 접근할 수 있습니다.
- 하위 스코프 접근 불가 : 상위 함수는 하위 함수에서 선언된 변수에 접근할 수 없습니다.
- 정의 시점 : 함수가 호출되는 시점이 아닌, 정의된 시점에 따라 변수가 결정됩니다.
// 예시
function outerFunc() {
let outerVar = 'outer';
function innerFunc() {
console.log(outerVar); // 'outer' 출력
}
innerFunc();
}
outerFunc();
위 코드의 innerFunc
함수는 outerFunc
함수 내부에 위치하며 outerVar에 접근할 수 있습니다. 렉시컬 스코프에 따라, innerFunc
함수는 자신의 위치인 outerFunc
함수의 상위 스코프에 있는 변수를 사용할 수 있기 때문에 console.log(outerVar);
가 정상적으로 출력합니다.
// 에러 예시
function outerFunc() {
function innerFunc() {
let outerVar = 'outer';
}
console.log(outerVar); // ReferenceError 발생
innerFunc();
}
outerFunc();
두 번째 예제에서는 outerVar가 innerFunc
함수 내부에 위치하고 있습니다. 하지만 console.log(outerVar);
가 innerFunc
함수 호출 이전에 작성되었기 때문에, outerFunc
함수의 스코프에서 outerVar를 찾을 수 없습니다. 결과적으로 outerVar는 정의되지 않은 상태이므로 ReferenceError가 발생합니다.
2️⃣ HTTP 메소드에 대해 설명해 주세요.
HTTP
메소드란 클라이언트(사용자)와 서버 간에 데이터를 주고받는 방식입니다. 웹에서 정보를 요청하거나 전송할 때, 서버는 각기 다른 HTTP
메소드를 통해 요청을 처리합니다. 예를 들어, 페이지를 불러오거나 데이터를 전송하거나 수정하는 등의 작업을 수행할 때, 특정 메소드를 사용해 서버에 요청할 수 있습니다.
GET
서버에서 데이터를 요청합니다. 주로 리소스의 조회에 사용되며, 요청 시 URL에 쿼리 문자열을 포함할 수 있습니다.
POST
서버에 데이터를 전송하여 새로운 리소스를 생성합니다. 주로 폼 데이터 전송에 사용되며, 요청 본문(body)에 데이터가 포함됩니다.
PUT
지정된 리소스를 업데이트 하거나 새로 생성합니다. 요청 본문에 업데이트할 데이터를 포함하며, 클라이언트가 리소스의 전체 표현을 전송해야 합니다.
PATCH
리소스의 일부를 수정합니다. 요청 본문에 수정할 데이터의 부분적인 표현이 포함됩니다.
DELETE
지정된 리소스를 삭제합니다. 서버에서 해당 리소스를 제거하는 요청을 보냅니다.
HEAD
GET 요청과 유사하지만, 응답 본문 없이 헤더만 요청합니다. 주로 리소스의 메타 데이터를 확인하는 데 사용됩니다.
OPTIONS
서버가 지원하는 HTTP 메소드를 요청합니다. 특정 리소스에 대해 어떤 메소드가 가능한지를 확인할 수 있습니다.
CONNECT
프록시 서버와의 터널링을 위해 사용됩니다. 주로 SSL/TLS 연결을 설정하는 데 사용됩니다.
TRACE
요청이 서버에 도달하는 경로를 추적합니다. 서버는 클라이언트가 보낸 요청을 그대로 되돌려 보냅니다.
주요 메소드는 GET
, POST
, PATCH
, DELETE
이며, 위 메소드들은 웹 애플리케이션에서 데이터 CRUD(Create, Read, Update, Delete) 작업을 수행하는 데 사용됩니다.
'Weekly Paper' 카테고리의 다른 글
[Weekly Paper] Virtual DOM이란? (1) | 2024.10.08 |
---|---|
[Weekly Paper] 실행 컨텍스트(Exexution context)란? (2) | 2024.10.01 |
[Weekly Paper] 이벤트 버블링, 캡쳐링, 위임 (0) | 2024.09.18 |
[Weekly Paper] Git Flow Branch 전략 (3) | 2024.09.10 |
[Weekly Paper] 시맨틱 태그를 사용하면 좋은 점 (3) | 2024.09.07 |