기술 면접 질문에 답변 준비하기
Promise의 기능과 필요한 이유에 대해서 설명해 주세요.
Promise는 JavaScript에서 비동기 작업을 처리하기 위한 객체로,
비동기적으로 실행되는 작업이 완료되었을 때 결과를 반환하거나 오류를 처리할 수 있도록 도와줍니다.
Promise는 성공(resolve)과 실패(reject) 두 가지 상태를 가지며,비동기 작업이 완료되면 이 상태 중 하나로 변경됩니다.
Promise는 then()과 catch() 메서드를 통해 성공과 실패 시의 처리를 할 수 있고,
비동기 작업이 완료될 때까지 대기할 수 있는 기능을 제공합니다.
순수함수란 무엇인가요? 불변성과 사이드 이펙트와 연결하여 설명해 주세요.
순수함수(Pure Function)는 같은 입력에 대해서 항상 같은 출력을 반환하고, 외부의 상태를 변경하지 않는 함수를 말합니다. 즉, 함수의 실행 결과가 입력에만 의존하고, 외부에 영향을 끼치지 않는 함수입니다.
이로써 함수의 동작이 예측 가능하고 테스트가 용이해집니다.
또한, 순수함수는 불변성(Immutability)을 유지할 수 있어,
상태를 변경하는 사이드 이펙트(Side Effect)를 방지하고 코드의 안정성과 가독성을 향상시킵니다.
React의 state와 props에 대해서 설명해 주세요.
React의 state와 props는 React 컴포넌트에서 데이터를 다루는 두 가지 메커니즘입니다.
state는 컴포넌트 내부에서 관리되는 데이터로, 컴포넌트가 동적으로 변하는 상태를 저장하고 관리합니다.
props는 부모 컴포넌트로부터 전달받은 데이터로, 컴포넌트 간에 데이터를 전달하고 통신하는 데 사용됩니다.
React 컴포넌트의 key 속성에 대해서 설명해 주세요.
React 컴포넌트의 key 속성은 컴포넌트의 고유한 식별자로 사용되는 속성입니다.
컴포넌트가 동적으로 생성되거나 리스트 형태로 렌더링될 때 각각의 컴포넌트를 구분하는 역할을 합니다.
key 속성을 사용하면 React가 렌더링을 최적화할 수 있고, 컴포넌트의 상태를 유지하면서 효율적으로 업데이트할 수 있습니다.
useEffect의 dependency array에 대해서 설명해 주세요.
useEffect의 dependency array는 해당 효과가 의존하는 변수들을 배열로 나타내는데,
이 배열에 포함된 변수들 중 하나라도 변경되면 useEffect가 실행되게 됩니다.
이 배열을 통해 useEffect가 어떤 상태나 속성에 의존하고 있는지를 명시하며,
의존성을 갖는 변수가 변경되었을 때에만 효과를 다시 실행하도록 제어할 수 있습니다.
CSR과 SSR의 차이점에 대해서 설명해 주세요.
CSR은 클라이언트 측에서 뷰를 렌더링하는 방식으로, 서버에서는 단순히 데이터만 전달합니다.
SSR은 서버 측에서 뷰를 렌더링하여 완성된 HTML을 클라이언트로 전달하는 방식으로,
초기 로딩 속도가 빠르고 SEO에 유리합니다.
GET 메서드와 POST 메서드의 차이점에 대해 설명해 주세요.
GET은 데이터를 조회할 때 사용되는 메서드로 URL에 데이터를 포함하여 요청하고 캐시될 수 있으며 보안에 취약할 수 있습니다.
POST는 데이터를 전송할 때 사용되는 메서드로 요청 본문에 데이터를 포함하여 전송하고, 캐시되지 않습니다.
데이터의 길이나 형태에 제약이 없고, 보안에 강하며 서버에 변경 사항을 요청할 때 사용됩니다.
HTTP 메세지 구조에 대해 설명해 주세요.
HTTP 메시지 구조는 요청(Request) 메시지와 응답(Response) 메시지로 구성되며,
요청 메시지는 클라이언트가 서버로 보내는 요청 메시지로, 요청 라인, 헤더, 본문(body)의 세 부분으로 구성됩니다.
요청 라인은 요청 메서드(GET, POST 등), 요청 대상 URL, HTTP 프로토콜 버전을 포함합니다.
응답 메시지는 서버가 클라이언트로 보내는 응답 메시지로, 상태 라인, 헤더, 본문의 세 부분으로 구성
상태 라인은 응답의 상태 코드(200 OK, 404 Not Found 등), 상태 메시지를 포함합니다.
Same-Origin Policy와 CORS에 대해서 설명해 주세요.
Same-Origin Policy는 웹 브라우저의 보안 정책으로 동일한 출처에서만 상호작용이 가능하며,
CORS는 서버에서 특정 출처에 대한 접근을 허용하여 웹 브라우저가 다른 출처의 리소스에 접근할 수 있게 허용하는 메커니즘입니다.
'Boot Camp > code states' 카테고리의 다른 글
[ Code States ] Figma 컴포넌트 구현 과제 진행하기 (0) | 2023.04.16 |
---|---|
[ Code States ] Section 2 / KDT 회고 (0) | 2023.04.10 |
[ Code States ] StatesAirline Server 과제 (0) | 2023.04.07 |
[ Code States ] Refactor Express 과제 (0) | 2023.04.06 |
[ Code States ] Mini Node Server 과제 (0) | 2023.04.06 |