Q. Promise의 기능과 필요한 이유에 대해서 설명해주세요.
Q. 순수함수란 무엇인가요? 불변성과 사이드 이펙트와 연결하여 설명해주세요.
순수 함수란 동일한 입력에 대해 항상 동일한 출력을 반환하는 함수이자 외부의 상태를 변경하거나 영향을 받지 않는 함수입니다.
Q. React의 state와 props에 대해서 설명해주세요.
Q. React 컴포넌트의 key 속성에 대해서 설명해주세요.
Q. useEffect의 dependency array에 대해서 설명해주세요.
Q. CSR과 SSR의 차이점에 대해서 설명해주세요.
A.
SSR : Server Side Rendering.
CSR : Client Side Rendering.
SSR과 CSR의 주요 차이점은 페이지가 렌더링되는 위치가 다릅니다.
SSR은 서버에서 페이지를 렌더링하고,
CSR은 브라우저(클라이언트)에서 페이지를 렌더링함.
CSR은 사용자가 다른 경로를 요청할 때마다 페이지를 새로고침 하지 않고, 동적으로 라우팅을 관리함.
네이버처럼 검색엔진 최적화가 꼭 필요한 서비스 일때 는 SSR을 사용하는게 유리하고,
예약사이트처럼 상호작용이 많은 경우에는 서버가 클라이언트에 필요한 데이터만 넘겨주기 때문에 부담이 적은 CSR을 사용하게 좋습니다.
Q. GET 메서드와 POST 메서드의 차이점에 대해 설명해주세요.
Q. HTTP 메세지 구조에 대해 설명해주세요.
A.
HTTP 메세지 구조는 서버와 클라이언트 간에 데이터가 교환되는 방식으로,
요청과 응답으로 이루어져 있습니다.
요청과 응답은 start line, header, body로 구성되어있습니다.
스타트 라인:
요청은 (get, post, put, patch, delete, option)등의 method와 URL로,
응답은 status line 이라고 부르고 상태코드와 상태메시지
헤더:
메시지에 추가적인 정보를 더해줍니다
요청을 지정하거나, 메시지에 포함된 본문을 설명하는 헤더의 집합입니다.
바디:
요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서를 포함하고,
요청과 응답의 유형에 따라 선택적으로 사용합니다.
GET, HEAD, DELETE, OPTIONS처럼 서버에 리소스를 요청하는 경우에는 본문이 필요하지 않고,
POST나 PUT과 같은 일부 요청은 데이터를 업데이트하기 위해 사용합니다.
응답도 201, 204와 같은 상태 코드를 가지는 응답에는 본문이 필요하지 않음.
Q. Same-Origin Policy와 CORS에 대해서 설명해주세요.
A.
SOP은 같은 출처의 리소스만 공유가 가능하다는 동일 출처 정책입니다.
여기서 말하는 출처는 프로토콜, 호스트, 포트를 말하는데,
이 중 하나라도 다르면 동일한 출처로 보지 않습니다.
SOP는 잠재적으로 해로울 수 있는 문서를 분리하기때문에 공격받을 수 있는 경로를 줄여줍니다.
그렇기 때문에 해킹같은 위협에서 좀 더 안전해 질 수 있습니다.
하지만 개발을 하다보면 다른 출처의 리소소를 사용하게 될 일이 많은데
거의 모든 브라우저가 기본적으로 SOP정책을 사용하고 있기 때문에 CORS가 필요합니다.
CORS는 교차 출처 리소스 공유의 줄임말고 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다.
즉 브라우저는 SOP에 의해 기본적으로 다른 출처의 리소스 공유를 막지만,
CORS를 사용하면 접근 권한을 얻을 수 있게 되는 것입니다.