뚠뚜 개발일지

[면접준비] 기술 면접 기초 14일차 본문

일상/취준일지

[면접준비] 기술 면접 기초 14일차

뚠뚜 2024. 3. 21. 22:53

ContextAPI 란 무엇인가요?

핵심 키워드 : 상태 전역 관리, provider, consumer

 

Context API는 리액트(React)에서 상태를 전역적으로 관리하기 위한 도구로 사용되는 API입니다. 이는 컴포넌트 간에 데이터를 효과적으로 전달하고 상태를 공유하는 데 도움을 줍니다. 주로 중첩된 컴포넌트 트리에서 데이터를 전달해야 할 때 유용하게 활용됩니다.ContextAPI를 사용하는 기본적인 과정에 대해 설명을 드리겠습니다.우선 Context를 생성합니다. React.createContext()를 사용하여 새로운 컨텍스트를 생성하고 이 함수는 ‘Provider’ 와 ‘ Consumer’ 컴포넌트를 반환합니다.그런다음 최상위 컴포넌트에서 ‘Provider’를 사용하여 컨텍스트를 제공합ㄴ디ㅏ. ‘value’ porp을 통해 전달하고자 하는 데이터를 설정합니다. 해당 컨텍스트 값을 사용하고자 하는 컴포넌트에서 ‘Consumer’ 컴포넌트를 사용합니다. 함수 컴포넌트 내에서 ‘useContext’를 사용하거나 함수 컴포넌트에서 ‘useContext’ 훅을 사용할 수 있습니다. 이처럼 ContextAPI는 상태를 많이 공유해야하는 컴포넌트 간에 손쉽게 데이터를 전달 할 수 있도록 도와줍니다. 특히 Redux나 MobX와 같은 상태 관리 라이브러리를 사용하지 않고도 간단한 어플리케이션에서 상태 관리에 용이하게 적용될 수 있습니다.

 

Array, LinkedList에 대해 설명해주시고 각각 어떻게 사용하는지 말씀해주세요.

핵심 키워드 : 메모리, 인덱스, 노드, 삽입, 변경, 삭제

 

Array, LinkedList에 대해 설명해주시고 각각 어떻게 사용하는지 말씀해주세요.Array(배열)은 연속된 메모리 공간에 데이터를 저장하는 자료구조입니다.그래서 인덱스를 통한 랜덤 액세스가 굉장히 빠릅니다.예를 들면, arr[2] 같이 쓰면 바로 3번째 요소에 접근할 수 있어요. 하지만 중간에 데이터를 삽입하거나 삭제하려면, 그 뒤에 있는 모든 데이터를 이동시켜야 해서 비용이 많이 듭니다.반면에 LinkedList(연결 리스트)는 각 노드가 데이터와 다음 노드를 가리키는 포인터로 구성되어 있어서요.메모리가 불연속적입니다. 이런 특성 때문에 삽입과 삭제가 아주 빠릅니다.예를 들어, 중간에 노드 하나를 끼워넣으려면 그냥 앞 노드와 뒤 노드의 포인터만 바꿔주면 됩니다.그런데 랜덤 액세스는 처음부터 노드를 하나씩 거쳐가야 해서 느리죠.그래서 실제로 배열은 순차적인 접근이 필요한 경우나, 인덱스를 통한 빠른 조회가 필요할 때 사용하면 좋고,연결 리스트는 데이터의 삽입과 삭제가 빈번하게 일어나는 상황에 유리합니다.