이번 section3은 유독 어려웠던것 같다. 근데 막상 기술면접 질문들 자체는 쉬웠는데 생각해보면 코드를 짜는 부분이 극악으로 어려웠지 개념 자체는 어려운것은 없었다고 생각이 든다.(몇 개 제외..) 기술면접답변을 자세히는 아니지만 간단히 생각을 해본 것을 적었는데, 일단 무조건 알아야 하는 개념을 외우고 면접에 가서 생각나는 예시나 개념들로 살을 붙이면 되겠다.
Q: 재귀를 활용하기 좋은 상황은 언제인지 예시를 들어 설명해주세요.1
A: 재귀는 자기 자신을 반복적으로 호출하여 문제를 해결하는 방법입니다. 재귀는 순환적인 구조를 갖는 상황에서 활용하기 좋습니다. 컴퓨터에서 어떤 문서의 위치를 찾을 때 그 문서의 위치가 찾기 힘들다면. 재귀적으로 폴더안에 폴더를 탐색하여 들어가 찾는 방식을 이용하면 원하는 문서를 찾을 수 있습니다.
Q: UI, UX의 개념과 두 개념의 관계에 대해서 설명해 주세요.1
A: UI User Interface의 줄임말로, 사용자가 컴퓨터와 상호작용하는 시스템을 의미합니다. 여기에는 화면, 키보드, 마우스등이 포함됩니다.
UX는 User Experience의 줄임말로 사용자가 어떤 서비스를 이용하며 느끼는 모든 경험을 의미합니다.
UI가 좋으면 UX도 좋아지기에 UI는 UX를 포함한다고 볼 수 있습니다.
Q: styled Components를 사용해 보면서 느낀 장점을 이야기해 주세요.
Styled component는 자바스크립트로 css를 작성할 수 있게 도와주는 라이브러리 입니다. 이를 활용하면 따로 클라스 네임을 만들지 않아도 css를 설정할 수 있어서 좋았고, 자바스크립트의 값을 props로 css에 넘겨줄 수 있어서 편리했던 것 같습니다.
Q: useRef가 필요한 상황을 예시를 들어 설명해 주세요.
useRef는 리액트에서 DOM을 이용해 html을 조작할 때에 사용하는 훅입니다. 리액트에서 DOM을 직접 핸들링 하는것은 지양해야 하지만, focus, text selection, media playback등 꼭 DOM을 이용해야 하는 경우에 useRef를 사용해 줄 수 있습니다.
Q:상태관리 라이브러리의 필요성에 대해서 설명해 주세요.1
A: 상태관리 라이브러리란, 큰 프로그램에서 상태를 효율적으로 관리하기위한 라이브러리 입니다. 프로그램 전역에서 사용하는 상태를 관리할 때에 유용하고, 프로그램이 트리구조로 되어있는 리액트에서 자식 컴포넌트가 해당 상태를 사용하기위해 부모 컴포넌트가 해당 상태를 전달해 줘야하는 props drilling문제를 해결 할 수 있습니다.
Q: Redux의 주요 개념들과 연결 관계를 설명해 주세요.
A: Redux는 큰 프로그램에서 상태를 효율적으로 관리하기위한 상태관리 라이브러리 중 하나 입니다. 상태가 변경되어야 하는 상황이 생기면 action객체에 이를 저장하고, dispatch함수로 객체를 reducer함수로 전달한 뒤, reducer함수에서 값을 확인하고 전역변수에 마련된 저장공간인 store에 해당 상태를 저장합니다.
Q: Semantic HTML의 필요성을 예시를 들어 설명해 주세요. 1
A:HTML을 Semantic하게 구성한다는 것은 웹문서의 의미를 잘 표현하는 구조로 html을 만든 것을 의미합니다. 과거에는 div와 span을 이용해 구조를 작성하였지만, header, nav, main등의 시맨틱한 html 태그를 이용하여 작성하면 각 요소가 어떤 역할을 하는지 알아보기 쉽게 됩니다.
Q: IP 프로토콜의 한계에 대해서 설명해 주세요.
A: IP 는 인터넷 프로토콜로 IP를 이용한 통신은 컴퓨터에 주소를 부여하여 패킷단위로 통신하는 방법입니다. IP를 이용하여 통신할 때에는 송신자와 수신자가 서로의 주소는 알지만 상태는 모르기 때문에, 수신자가 패킷을 받을 수 없는 상태여도 IP를 보내고, 중간에 패킷이 유실되어도 송신자는 알 수가 없으며, 패킷단위로 보낼 때 각각의 패킷들이 다른 노드를 통해 전달 되어 순서가 바뀌어 올 수도 있습니다.
Q: HTTP 프로토콜의 특징에 대해 설명해 주세요.
A: HTTP는 클라이언트가 서버에 요청을 보내면, 서버가 답을 보내주는 구조로 되어있습니다. HTTP는 무상태성과 비연결성이라는 특징을 가지는데, 무상태성은 서버가 클라이언트의 상태를 저장하지 않는다는 것이고, 비연결성은 서버와 클라이언트가 요청과 응답을 할때에만 연결된다는 것입니다.
Q: Cookie의 MaxAge, Expires 옵션이 무엇인지, 설정하지 않으면 어떻게 되는지 설명해 주세요. 1
A: 쿠키의 maxAge와 Expires옵션은 해당 쿠키가 클라이언트에 언제까지 저장되어있을 지를 나타내는 옵션입니다. 이를 설정하지 않으면 세션쿠기가 되어 브라우저를 종류하면 삭제된다.