[CS지식] 면접대비 목터뷰 질문 정리

😎·2023년 3월 10일
0

CS지식

목록 보기
5/7

📌 해당 포스팅은 제가 이해하고 정리한 대로 기재한 내용입니다 참고만 부탁 드립니다 👍

Q. Promise란 ?

프로미스는 자바스크립트 비동기 처리에 사용되는 객체입니다.
사용시 콜백지옥등의 콜백함수의 단점을 보완할수 있으며,
상태 값으로는
-pending
-fullfilled
-rejected가 있으며
각각 비동기 코드가 실행완료 되기전, 정상 실행 완료 후, 에러발생 의 의미를 나타냅니다.


Q. Hoisting 이란 ?

자바스크립트에서 호이스팅이란, 인터프리터가 변수와 함수의 메모리 공간을 선언전에 미리 할당하여 모든 식별자 선언을 코드의 맨 위로 끌어올리는 것 처럼 동작하는 것을 의미합니다.
var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화합니다. 반면 let과 const로 선언한 변수의 경우 호이스팅 시 변수를 초기화하지 않습니다.
함수의 경우엔 선언과 초기화가 모두 일어나므로 함수의 선언 이전 함수를 호출하여도 이런 호이스팅의 특성으로 호출이 가능합니다.


Q. async / await 란 ?

자바스크립트의 비동기 처리 패턴 문법중 하나입니다.
기존의 비동기 처리 방식인 콜백 함수와 프로미스의 단점을 보완하였으며,
코드의 가독성을 높인 문법입니다.
사용법으로는 함수의 선언시 async 키워드를 function 앞에 붙여주고 비동기로 처리되는
코드 앞에 await를 붙여 사용합니다.
주의할 점은 await를 붙여준 코드는 promise 를 반환하여야 하며,
해당 함수 또한 promise를 반환하여야 합니다


Q. Arrow Function 이란 ?

Arrow Function은 화살표 함수라고도 불리며,
function 키워드 대신 (=>)/화살표 키워드를 사용하여 보다 간략한 방법으로 함수를 선언 할 수있습니다.
이때 선언되는 함수는 익명 함수입니다.


Q. '=='와 '===' 연산자의 차이는 무엇인가 ?

연산자 '==' 는 두개의 피연산자가 동일한지 확인하며, 두 피연산자의 값을 비교하여 Boolean 값을 반환 합니다.
이때 비교하는 대상의 형(타입)이 다르더라도 강제로 비교되며 즉 두 타입의 값이 다르더라도
형변환 된 값이 같다면 true를 반환 합니다.

연산자 '===' 는 두개의 피연산자의 값과 타입까지 동일한지 확인하며, 해당 조건들을 비교하여 Boolean 값을 반환 합니다.


Q. Virtual DOM이란 무엇이고 Real DOM과의 차이는 무엇인가 ?

virtual dom은 dom을 추상화한 가상의 객체를 의미합니다.
기존의 dom은 변경사항이 생길경우 페이지 전체를 변경사항에 맞게 리렌더링 합니다.
이러한 불필요한 리렌더링을 최소화 하고자 virtual dom 을 사용하며,
virtual dom 은 변경사항이 생길경우 이를 확인하여 페이지 내에서 변경해야 할 부분만
확인하여 실제 dom 에 수정사항을 반영 합니다.


Q. useRef 란?

useRef는 저장공간 또는 DOM요소에 접근하기 위해 사용되는 React Hook입니다.
React를 사용하는 프로젝트에서도 가끔씩 DOM 을 직접 선택해야 하는 상황이 필요한데 그럴때
useRef라는 React Hook을 사용 할 수 있습니다.


Q. 리액트 컴포넌트의 라이프 사이클이란 ?

먼저 컴포넌트의 라이프 사이클이란 해당 컴포넌트의 생명주기를 의미합니다.
컴포넌트가 렌더링을 준비하는 시점부터 언마운트 될 때가지의 사이클을 말하며,
크게 3가지 상태로 구분할 수 있습니다

  • Mount
  • Update
  • Unmount

리액트에서 클래스형 컴포넌트는 라이프 사이클 메서드를 활용하며,
함수형 컴포넌트는 라이프 사이클과 관련된 Hook을 이용 할 수 있습니다.


Q. JSX란 ?

JSX는 자바스크립트에 XML을 추가 확장한 문법입니다.
주로 리액트 프레임워클르 이용한 프로젝트 개발시 사용하며, 공식적인 자바스크립트 문법은 아닙니다.
브라우저에서는 JSX로 작성된 코드를 실행 전 바벨을 사용하여 자바스크립트 형태의 코드로 변환합니다.


Q. 세션과 쿠키란 ?

먼저 쿠키란 클라이언트 로컬에 저장되어 있는 키와 값이 들어있는 데이터 파일입니다.
세션은 쿠키를 기반으로 하지만 데이터 파일을 쿠키와 달리 서버측에 저장하여 관리합니다.
쿠키와 세션 모두 비슷한 역할을 한다고 볼수 있으며, 동작원리 또한 비슷합니다.
다만 큰 차이점은 사용자의 정보가 저장되는 위치라고 볼 수 있습니다.


Q. 브라우저에서 이용할 수 있는 스토리지는 무엇이 있는가 ?

브라우저에서 사용할수 있는 스토리지는
크게 2가지로 LocalStorage와 SessionStorage 가 있습니다.
로컬스토리지는 도메인별로 지속되는 스토리지이며, 시간제한이 없고, 브라우저가 꺼져도 데이터가 사라지지 않습니다
세션스토리지는 세션이(프로세스, 탭, 브라우저) 종료될 때까지 지속되는 스토리지이며,
세션의 종료시 데이터가 삭제 됩니다.


Q. ContextAPI 란 ?

Context API는 위에서 전역 상태 관리를 할 때 사용하는 리액트 내장 기능입니다.
. 주로 프로젝트에서 전역 관리에서 사용되며 새로운 Context를 만들 때는 createContext 함수를 사용합니다.


Q. 이분탐색이 무엇이고 시간복잡도는 어떻게 되며 그 이유는 무엇인가 ?

이분 탐색이란 중간값과 찾으려는 값의 대소를 비교한 뒤 탐색 범위를 반으로 줄여가며 값을 찾는 탐색 알고리즘입니다.
이분탐색을 할수록 1/2의 k번승이 N개 되는 식이 되는데 이를 시간복잡도 Big O 표기법으로 OlogN으로 나타낼 수 있습니다.


Q. 트리, 그래프 란?

트리와 그래프 모두 자료구조의 개념이며, 노드와 노드간을 연결하는 간선으로 구성되어 있습니다.
그래프는 트리와 달리 노드간의 부모-자식 관계라는 개념이 없으며,
노드간의 2개 이상의 경로가 가능하므로 사이클이 존재할수 도, 존재하지 않을 수도 있습니다.
트리는 그래프와 달리 간선을 선분(Branch) 라고도 표현합니다.
노드간 부모-자식 관계라는 개념이 사용되며,
노드 사이의 경로는 트리의 경우 하나의 경로 만 가능하므로 사이클이 존재하지 않습니다.


Q. HTTP에 비해 HTTPS가 더 안전한 원리는 ?

HTTPS 프로토콜이 더 안전한 이유는 데이터 암호화가 추가된 프로토콜 이기 때문입니다.
TTPS는 웹 서버와 클라이언트 간의 데이터 전송을 암호화하여 네트워크 중간자가 전송하는 데이터를 읽거나 조작할 수 없도록 합니다. 이를 위해 HTTPS는 암호화 기술과 인증서(certificate)를 사용합니다.

profile
개발 블로그

0개의 댓글