면접 질문 정리하기

오민준·2023년 12월 18일
0

🟥 JavaScript

1. 동기와 비동기

  • 동기적인 코드는 순차적으로 실행되며 한 작업이 끝나야만 실행된다.
  • 비동기적인 코드는 작업이 백그라운드에서도 실행되며 다른 작업이 진행 중 일 때 코드 실행이 멈추지 않고 계속된다.
    • 이때 비동기적인 코드에서는 콜백함수, Promise, async/await 등을 사용하여 코드를 효율적으로 작성하고 유지보수 하기 쉽게 만들 수 있다.

2. 콜백 함수

  • 다른 함수의 인자로서 이용되거나 어떤 이벤트에 의해 호출되는 함수를 말한다.
  • 콜백함수를 중첩하여 사용할 때 코드의 가독성과 유지보수성이 떨어지는 상황이 생기는데 이를 콜백지옥(callback hell)이라 한다.
    • 콜백 지옥을 해결하기 위해서는 Promise나 async/await를 사용하여 코드를 구성한다.

3. Promise

  • Promise는 비동기 작업의 성공 또는 실패를 나타내는 객체로, 비동기 코드를 더 효과적으로 다룰 수 있게 도와준다.
  • Promise 체이닝을 통해 .then() 메서드를 사용하여 연속된 비동기 작업을 간결하게 표현해 가독성을 향상 시키고 콜백 지옥을 방지한다.

4. aysnc/await

  • async/await은 비동기 코드를 동기적으로 작성할 수 있게 해주는 문법이다.
  • async 함수 내에서 await 키워드를 사용하여 Promise가 처리될 때까지 대기할 수 있다.

🟧 Front-End

HTTP

  • HyperText Transfer Protocol로 클라이언트와 서버 간의 통신 규칙이다.
  • 요청-응답의 구조를 띄며 응답에 상태 코드를 포함하여 요청의 성공, 실패등의 상태를 알린다.
상태 코드상태 텍스트설명
200OK요청을 성공적으로 처리했음을 나타낸다.
일반적으로 GET 요청에 대한 성공적인 응답을 의미한다.
201Created새로운 리소스가 성공적으로 생성되었음을 나타낸다.
주로 POST나 PUT 요청에 대한 응답으로 사용된다.
400Bad Request클라이언트의 요청이 잘못되었음을 나타낸다.
서버가 요청을 이해할 수 없거나 유효하지 않은 구문으로 작성되었을 때 발생한다.
401Unauthorized요청한 리소스에 대한 인증이 필요함을 나타낸다.
클라이언트가 인증되지 않았거나, 유효하지 않은 인증 정보를 제공했을 때 발생한다.
403Forbidden클라이언트가 특정 리소스에 접근할 권한이 없음을 나타낸다.
서버가 요청을 이해했으나 거부할 때 발생한다.
404Not Found요청한 리소스를 찾을 수 없음을 나타낸다.
서버가 요청한 URI에 해당하는 리소스를 찾을 수 없을 때 발생한다.
500Internal Server Error서버가 요청을 처리하는 동안 내부 오류가 발생했음을 나타낸다.
서버 측에서 처리 중에 오류가 발생했을 때 사용한다.
503Service Unavailable서버가 현재 요청을 처리할 수 없음을 나타낸다.
일반적으로 서버가 과부하되었거나 유지 보수 중일 때 사용한다.
  • 주요한 특징으로 비연결지향과 상태없음이 있다.
    • 비연결지향 :
    • 상태없음 :

쿠키 / 캐시 / 세션

분류쿠키캐시세션
정의주로 사용자의 상태를 유지하고 추적하기 위해 활용한다.
로그인 상태, 사용자 설정 등을 저장하는 데 사용
리소스 파일을 임시로 저장하여 다시 계산하지 않도록 하기 위해 사용한다.
웹 페이지 로딩 속도를 향상시키고 네트워크 트래픽을 감소시킵니다.
사용자의 상태를 유지하고 관리하는 메커니즘이다.
사용자의 로그인 상태나 웹 애플리케이션에서의 상태를 저장한다.
저장 위치로컬 브라우저로컬 브라우저서버
보안성취약-높음

2. 웹 스토리지

  • 웹 스토리지는

🟨 Project

프로젝트에서 next.js를 선택한 이유

  • SEO를 위한 SSR을 가능하게 하므로 선택하였다.
  • 직관적인 page 기반 라우팅이 가능하므로
  • code splitting
  • image optimization

🟩🟦🟪🟫⬛⬜

PWA

LAZY LOADING

JWT

  • Json Web Token
profile
ChatGPT-Driven Development를 지양합니다.

0개의 댓글