[블로깅] Section 2 기술면접 예상질문 & 답변

WAYPIL·2023년 4월 10일
0

코드스테이츠 부트캠프 프론트엔드 44기
Section 2 회고 (Section 2 마지막 날)


JavaScript

1. Promise의 기능과 필요한 이유에 대해서 설명해주세요.

Promise는 비동기 처리를 할 때 사용하는 object를 말합니다.

JavaScript를 비롯한 대부분의 프로그래밍 언어는 싱글 스레드 언어이기 때문에 두 가지 일을 동시에 수행하는 게 불가능합니다. 이때 비동기를 사용함으로써 여러 개의 일을 동시에 수행하는 것처럼 보이게 하는 게 가능합니다.

Promise를 안 쓰면 콜백 지옥이라는 현상이 벌어지는데요, 비동기 함수의 순서를 지정할 때 코드가 피라미드 모양이 되어서 상당히 가독성이 안 좋아집니다. 이때 Promise를 사용하면 콜백 지옥을 예방할 수 있습니다.

2. 순수함수란 무엇인가요? 불변성과 사이드 이펙트와 연결하여 설명해주세요.

순수함수는 함수 중에서도 3가지 조건을 모두 충족하는 함수를 말합니다.

  1. 오직 함수의 입력값(매개변수)만이 함수의 결과에 영향을 준다.
  2. 하나의 입력에 항상 동일한 하나의 출력이 나와야 합니다.
  3. Side Effect가 없다.

대표적으로 함수를 돌렸는데 함수 바깥에 있는 변수가 변경이 되었다, 이것을 Side Effect라고 합니다.


React

1. React의 state와 props에 대해서 설명해주세요.

  • state는 변할 수 있는 값이고, 컴포넌트 내부에서 생성됩니다.
  • props는 변할 수 없는 값이고, 컴포넌트 외부에서 받아져옵니다.

2. React 컴포넌트의 key 속성에 대해서 설명해주세요.

Key는 리스트의 요소에 필수적으로 들어가는 유니크한 값을 말합니다.

Key 속성이 존재하는 이유는 렌더링 최적화 때문입니다. 리액트가 리스트를 렌더링 했을 때 어떤 요소에 변동이 있었는지 알아내기 위해 사용합니다. 변함 없는 요소들까지 한꺼번에 렌더링할 경우 그만큼 속도가 느려지기 때문입니다.

3. useEffect의 dependency array에 대해서 설명해주세요.

일단 useEffect는 렌더링 최적화를 위해서 사용됩니다. useEffect의 2번째 인자로 종속성 배열을 할당하고, 그 배열 안에 있는 변수값이 변경이 되었을 때만 useEffect를 실행합니다. 이렇게 함으로써 하나의 컴포넌트가 업데이트되었을 때 가만히 있던 다른 모든 컴포넌트들이 업데이트되는 것을 방지합니다.


HTTP/네트워크

1. CSR과 SSR의 차이점에 대해서 설명해주세요.

SSR은 사용자에게 먼저 HTML부터 보여주고 JavaScript를 바로 그 뒤에 로드하는 것을 말합니다.

CSR은 HTML과 JavaScript 로딩이 다 완료되면 그제서야 사용자한테 보여주는 것을 말합니다.

이러한 특징 때문에 정적인 사이트에는 SSR이 잘 쓰이고, Web-App 같은 동적이고 상호작용이 많은 사이트에서는 CSR이 잘 쓰입니다.

2. GET 메서드와 POST 메서드의 차이점에 대해 설명해주세요.

GET은 데이터를 받아올 때 사용하고, POST는 데이터를 새로 추가할 때 사용합니다.


웹서버 기초

1. HTTP 메시지 구조에 대해 설명해주세요.

HTTP 메시지는 클라이언트랑 서버 간의 통신 시스템을 말합니다. 여기서 클라이언트가 서버한테 보내는 걸 요청(Request)이라고 하고, 이거에 대해 서버가 클라이언트한테 답장하는 거를 응답(Response)이라고 합니다.

요청과 응답에는 정해진 양식이 있는데요, 대표적으로 Start line, Header, Body가 있습니다.

  • Start line : 메시지의 '장르'가 무엇인지 한 줄 요약으로 명시해주는 역할입니다.
  • Header : 구체적으로 어떤 메시지인가에 대해서 여러 가지 정보들이 적혀 있습니다.
  • Body : Header와 같이 보낼 데이터가 담겨 있는 곳.

2. Same-Origin Policy와 CORS에 대해서 설명해주세요.

먼저 SOP라는 것은, 동일한 Origin의 리소스만 공유가 가능하도록 규제된 정책을 말합니다. 이는 타 사이트로의 리소스 유출을 방지하는 보안을 위해서입니다.

그런데 시대가 흐르면서 외부에서 리소스를 요청해야 하는 경우가 많아졌습니다. 그래서 허용된 출처를 서버가 명시해놓으면, 출처가 다를지라도 접속이 가능하도록 만들어놓은 정책이 바로 CORS라고 합니다.



<주의 사항>

이 게시물은 코드스테이츠의 블로깅 과제로 제작되었습니다.
때문에 설명이 온전치 못하거나 글의 완성도가 낮을 수 있습니다.

profile
Self-improvement Guarantees Future.

0개의 댓글