나의 개발일지

기술 면접 준비 본문

면접준비

기술 면접 준비

heew0n 2024. 3. 18. 21:47

useRef에 대해 설명해주세요.

useRef는 React에서 참조(ref)를 생성하고 관리하기 위한 React Hook중 하나입니다. useRef를 사용하면 컴포넌트 내부에서 생성한 변수나 DOM 요소에 대한 참조를 생성하고, 이를 다른 곳에서 사용할 수 있습니다. useRef는 DOM 요소에 직접 접근할 때 사용할 수도 있지만, 그 외에도 여러 상황에서 유용합니다. useRef를 사용하여 생성한 참조는 컴포넌트가 리렌더링될 때마다 새로 생성되지 않으며, 기존에 생성한 참조를 그대로 유지합니다. useRef를 사용하는 상황으로는 다음과 같은 것들이 있습니다. 1) DOM 요소에 직접 접근해야 하는 경우 예를 들어, 특정 DOM 요소의 크기나 위치를 측정하거나, 입력 폼의 값을 가져오거나, 스크롤 위치를 제어하는 등의 작업을 할 때 사용합니다. 2) 컴포넌트 내부에서 생성한 변수나 객체를 관리해야 하는 경우 예를 들어, 특정 상태 값을 저장하고 유지하거나, 이전 값과 새로운 값을 비교해야 하는 경우에 사용합니다. 3) 다른 Hook에서 사용하기 위해 참조를 전달해야 하는 경우 예를 들어, useEffect Hook에서 생성한 함수에서 참조할 변수를 전달하기 위해 사용합니다.

 

 

useEffect의 실행 순서에 대해 설명해주세요.

1. 컴포넌트 랜더링 : React 컴포넌트는 먼저 랜더링 된다. 이때 JSX를 반환시키고 DOM에 반영된다.

2. useEffect 실행: 컴포넌트 렌더링이 완료 된 후 useEffect 내부의 함수가 실행된다. 이 함수는 비동기적으로 실행될 수 있기 때문에 비동기 작업을 수행하는데 유용하다. * Dependency Array가 있을 때는 해당 dependency array의 값이 변경될 때마다 useEffect가 실행된다

3. clear : 컴포넌트가 unMount 될 때 실행되는 함수로 사이드 이펙트를 정리하는데 사용된다.

 

 

Javascript의 호이스팅에 대해 설명해주세요.

javascript에서 호이스팅은 변수 선언과 함수 선언이 그들이 속한 스코프의 최상단으로 끌어올려지는 것을 의미합니다. 호이스팅은 javascript엔진이 런타임 이전에 일어납니다. 호이스팅에의해 변수 선언, 함수 선언 전에 사용할 수 있지만 이는 개발자가 의도한 부분이 아닐것이기에 어플리케이션에 오류를 발생시킬 확률이 높습니다. 하지만 ES6에서 추가된 let, const는 호이스팅이 일어나지만 TDZ(temporal Dead Zone)에의해 변수가 선언되기 전에는 참조오류를 발생시킵니다.

 

 

GET, POST 방식의 차이점에 대해서 설명해주세요.

Get은 가져온다는 개념이고, Post는 수행한다는 개념입니다. GET이 Idempotent하도록 설계되었다는 것은 GET으로 서버에 동일한 요청을 여러 번 전송해도, 동일한 응답이 돌아온다는 것을 의미합니다. 그래서 GET은 서버의 데이터나 상태를 변경시키지 않아야 하기 때문에, 주로 데이터를 조회할 때 사용해야 합니다. 예를 들어, 브라우저에서 웹 페이지를 열거나, 게시글을 읽는 등 조회를 하는 행위는 GET으로 요청합니다. POST는 Non-idempotent하기 때문에, 서버에 동일한 요청을 여러 번 전송해도 각기 다른 응답을 받을 수 있으며 POST는 서버의 상태나 데이터를 변경시킬 때 사용됩니다. 게시글을 쓰면 서버에 게시글이 저장되고, 게시글을 삭제하면 해당 데이터가 삭제되는 등 서버에 변화를 일으키는데 됩니다. 이처럼 POST는 생성, 수정, 삭제에 사용할 수 있지만, 생성에는 POST, 수정은 PUT, 삭제는 DELETE가 용도에 맞는 메소드라고 할 수 있습니다.

 

 

쿠키, 세션, 웹스토리지의 차이를 설명해보세요.

쿠키는 클라이언트의 상태 정보를 로컬에 저장했다가 참조합니다. 작은 데이터 조각을 클라이언트의 브라우저에 저장하여 정보를 유지하거나 추적합니다. 사용자가 따로 요청하지 않아도 모든 HTTP 요청에 자동으로 포함되어 서버로 전송됩니다. 세션은 사용자의 상태를 서버 측에서 유지하기 위해 사용됩니다. 서버에서 클라이언트를 구분하기 위해 세션 ID를 부여하고 브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증상태를 유지합니다. 데이터는 클라이언트로 직접 전송되지 않고, 세션 ID만이 쿠키를 통해 전송됩니다. 웹스토리지는 로컬스토리지, 세션 스토리지 2가지가 있습니다. 클라이언트 측에서 데이터를 임시 또는 영구적으로 저장하기 위해 사용됩니다. 데이터를 어딘가에 저장해야 하지만 저장할 데이터가 별로 중요하지 않는 경우 서버에 데이터를 저장하는 것이 낭비일 수도 있습니다. 이럴 때 웹 스토리지를 사영합니다. 로컬 스토리지는 영구적으로 세션 스토리지는 브라우저 세션이 유지되는 동안만 데이터를 저장합니다. 웹 스토리지 데이터는 자동으로 서버로 전송되지 않고, JavaScript를 사용하여 제어됩니다.

 

 

 

 

 


'면접준비' 카테고리의 다른 글

기술 면접 준비 - CS 공부  (0) 2024.03.21
기술 면접 준비 - CS 공부  (0) 2024.03.19
면접 피드백 정리  (0) 2024.01.25
기술 면접 질문 (공통 질문 + 프로젝트 질문) /W 튜터님  (0) 2024.01.20
면접질문 (1)  (0) 2024.01.07