기술 면접 질문

React는 사용자 인터페이스를 만들기 위한 JavaScript 라이브러리입니다. 데이터 변경에 따라 효율적으로 업데이트 및 렌더링할 수 있는 대규모 웹 애플리케이션을 만들 수 있습니다.

생명주기 메서드에는 componentDidMount, componentDidUpdate, componentWillUnmount가 포함됩니다. 이러한 메서드를 사용하면 컴포넌트의 생명주기 특정 시점에 코드를 실행할 수 있습니다.

JSX는 JavaScript XML의 약자입니다. JavaScript의 구문 확장으로, React와 함께 UI가 어떻게 보일지를 설명하는 데 사용됩니다.

React에서는 camelCase 구문을 사용하여 이벤트를 처리합니다. 예를 들어, onclick 대신 onClick을 사용합니다. 이벤트 핸들러는 중괄호 안에 함수로 전달됩니다.

Virtual DOM은 React에서 사용하는 가상 DOM입니다. 실제 DOM의 변경 사항을 최소화하고 성능을 향상시키기 위해 사용됩니다. 변경 사항이 발생하면 Virtual DOM에서 먼저 업데이트를 수행한 후 실제 DOM에 반영합니다.

React Hook은 함수형 컴포넌트에서 상태와 생명주기 기능을 사용할 수 있게 해주는 기능입니다. 대표적인 Hook으로 useState, useEffect, useContext 등이 있습니다.

useState Hook은 함수형 컴포넌트에서 상태를 관리하는 데 사용됩니다. 상태 변수와 해당 상태를 업데이트하는 함수를 반환합니다. const [count, setCount] = useState(0)와 같이 사용합니다.

useEffect Hook은 컴포넌트가 렌더링된 후에 실행할 작업을 정의할 때 사용됩니다. 예를 들어, 데이터 페칭, 구독 설정 등을 수행할 수 있습니다. useEffect(() => { // 작업 }, [의존성 배열]); 과 같이 사용합니다.

React에서 상태 관리는 주로 useState와 useReducer Hook을 사용합니다. 더 큰 애플리케이션에서는 Redux, MobX와 같은 상태 관리 라이브러리를 사용할 수 있습니다.

props는 부모 컴포넌트가 자식 컴포넌트에 전달하는 데이터이며 읽기 전용입니다. state는 컴포넌트 내부에서 관리하는 데이터로, 컴포넌트의 상태를 나타내며 변경 가능합니다.

조건부 렌더링은 JavaScript의 조건문을 사용하여 컴포넌트의 렌더링을 제어하는 방식입니다. 삼항 연산자나 && 연산자를 사용하여 특정 조건에 따라 다른 컴포넌트를 렌더링할 수 있습니다.

리스트를 렌더링할 때는 각 항목에 고유한 key 속성을 부여해야 합니다. key는 React가 각 항목을 식별하고 업데이트할 때 성능을 최적화하는 데 도움을 줍니다.

useContext Hook은 Context API를 사용하여 컴포넌트 트리 전체에 걸쳐 데이터를 전달할 때 사용합니다. 중첩된 컴포넌트들에 props를 통해 데이터를 전달하는 대신, useContext로 컨텍스트 값을 직접 가져올 수 있습니다.

React에서 폼을 처리할 때는 각 폼 요소에 상태를 연결하고, onChange 이벤트 핸들러를 통해 상태를 업데이트합니다. 폼 제출 시 onSubmit 이벤트 핸들러를 사용하여 폼 데이터를 처리합니다.

React에서 스타일링은 여러 가지 방법으로 할 수 있습니다. CSS 파일을 임포트하거나, styled-components와 같은 CSS-in-JS 라이브러리를 사용할 수 있습니다. 또한, 인라인 스타일링도 가능합니다.

React Router는 React 애플리케이션에서 라우팅을 관리하는 라이브러리입니다. URL 경로에 따라 다른 컴포넌트를 렌더링할 수 있게 해줍니다.

Redux는 애플리케이션의 상태를 중앙에서 관리하는 JavaScript 라이브러리입니다. 주로 React 애플리케이션에서 상태 관리 문제를 해결하기 위해 사용됩니다.

Redux는 주로 스토어, 리듀서, 액션 세 가지 주요 구성 요소로 이루어져 있습니다. 스토어는 상태를 저장하고, 리듀서는 상태를 업데이트하며, 액션은 상태 변경을 지시하는 객체입니다.

React에서 비동기 작업은 주로 useEffect Hook과 함께 fetch API 또는 Axios와 같은 라이브러리를 사용하여 처리합니다. 비동기 작업이 완료되면 상태를 업데이트하여 UI를 갱신합니다.

React에서 성능을 최적화하기 위해서는 메모이제이션 기법을 사용할 수 있습니다. useMemo와 useCallback Hook을 사용하여 불필요한 렌더링을 방지할 수 있으며, React.memo를 사용하여 컴포넌트를 메모이제이션할 수 있습니다.

Top Questions