React 신입 개발자 기술면접

React 신입 · 취준 (0~1년) 종합 10문항 조회수 24 · 2026-08-31 (월) 17:41:28
1 React 기초
Easy

Q. React는 무엇이며, 다른 JavaScript 라이브러리나 프레임워크와 비교했을 때 어떤 특징이 있나요?

컴포넌트 기반 구조와 Virtual DOM의 개념을 생각해보세요.

A. 모범답안

React는 Facebook에서 개발한 사용자 인터페이스를 구축하기 위한 JavaScript 라이브러리입니다. 컴포넌트 기반 아키텍처를 통해 재사용 가능한 UI 요소를 만들 수 있습니다. Virtual DOM을 사용하여 실제 DOM 조작을 최소화하고 성능을 최적화합니다. 단방향 데이터 흐름을 채택하여 데이터 관리가 예측 가능하고 디버깅이 쉽습니다. 프레임워크가 아닌 라이브러리이기 때문에 라우팅, 상태관리 등은 별도 라이브러리를 선택할 수 있는 유연성이 있습니다.

핵심 포인트
  • • 컴포넌트 기반 아키텍처
  • • Virtual DOM을 통한 성능 최적화
  • • 단방향 데이터 흐름
  • • 라이브러리로서의 유연성
답변에 넣으면 좋은 키워드
컴포넌트 Virtual DOM 단방향 데이터 흐름 재사용성 라이브러리
실무에서는

대규모 웹 애플리케이션에서 컴포넌트를 재사용하여 개발 생산성을 높이고 유지보수를 용이하게 합니다.

Follow-up 질문

Virtual DOM이 실제 DOM보다 빠른 이유를 설명해주실 수 있나요?

2 네트워크 기초
Easy

Q. HTTP와 HTTPS의 차이점은 무엇이며, 왜 HTTPS를 사용해야 하나요?

보안과 암호화 측면에서 생각해보세요.

A. 모범답안

HTTP는 암호화되지 않은 평문으로 데이터를 전송하는 프로토콜이고, HTTPS는 SSL/TLS를 통해 암호화된 통신을 제공하는 프로토콜입니다. HTTPS는 데이터가 중간에 가로채져도 내용을 알 수 없도록 암호화하여 보안을 강화합니다. 사용자의 개인정보, 로그인 정보, 결제 정보 등 민감한 데이터를 안전하게 전송할 수 있습니다. 최근에는 SEO 순위에도 영향을 미치며, 브라우저에서 HTTP 사이트에 경고를 표시하기도 합니다.

핵심 포인트
  • • HTTP는 평문 전송, HTTPS는 암호화 전송
  • • SSL/TLS 프로토콜 사용
  • • 민감한 데이터 보호
  • • SEO 및 브라우저 신뢰성
답변에 넣으면 좋은 키워드
HTTP HTTPS SSL/TLS 암호화 보안
실무에서는

로그인 기능이 있는 웹사이트에서 사용자 인증 정보를 안전하게 전송하기 위해 반드시 HTTPS를 사용합니다.

Follow-up 질문

React 애플리케이션에서 API 호출 시 HTTPS를 강제하려면 어떻게 해야 하나요?

3 React Hooks
Medium

Q. useState와 useEffect의 역할을 설명하고, 각각 언제 사용하는지 예시를 들어 설명해주세요.

상태 관리와 사이드 이펙트 처리라는 핵심 목적을 생각해보세요.

A. 모범답안

useState는 함수형 컴포넌트에서 상태를 관리하기 위한 Hook으로, 상태 값과 그 값을 업데이트하는 함수를 반환합니다. 예를 들어 버튼 클릭 카운터나 입력 폼의 값을 관리할 때 사용합니다. useEffect는 컴포넌트의 사이드 이펙트를 처리하는 Hook으로, 데이터 fetching, 구독 설정, DOM 직접 조작 등에 사용됩니다. 컴포넌트가 렌더링된 후 실행되며, 의존성 배열을 통해 실행 시점을 제어할 수 있습니다. 빈 배열을 전달하면 컴포넌트 마운트 시 한 번만 실행되고, cleanup 함수를 반환하여 언마운트 시 정리 작업을 수행할 수 있습니다.

핵심 포인트
  • • useState는 상태 관리용
  • • useEffect는 사이드 이펙트 처리용
  • • 의존성 배열로 실행 시점 제어
  • • cleanup 함수로 정리 작업
답변에 넣으면 좋은 키워드
useState useEffect 상태 관리 사이드 이펙트 의존성 배열 cleanup
실무에서는

API에서 사용자 목록을 가져와 화면에 표시할 때 useEffect로 데이터를 fetch하고 useState로 결과를 저장합니다.

Follow-up 질문

useEffect의 의존성 배열을 빈 배열로 두는 것과 아예 생략하는 것의 차이는 무엇인가요?

4 자료구조
Easy

Q. 배열(Array)과 객체(Object)의 차이점은 무엇이며, JavaScript에서 각각 언제 사용하는 것이 적절한가요?

데이터 접근 방식과 순서의 중요성을 고려해보세요.

A. 모범답안

배열은 순서가 있는 데이터 집합으로 인덱스를 통해 접근하며, 동일한 타입의 여러 값을 순차적으로 저장할 때 사용합니다. 객체는 키-값 쌍으로 데이터를 저장하며, 의미 있는 이름(키)으로 데이터에 접근할 수 있습니다. 배열은 순서가 중요한 목록 데이터(사용자 목록, 댓글 목록 등)에 적합하고, 객체는 속성이 명확한 단일 엔티티(사용자 정보, 설정 값 등)를 표현할 때 적합합니다. React에서는 리스트 렌더링 시 배열의 map 메서드를 자주 사용하고, 컴포넌트의 props나 state는 주로 객체 형태로 관리합니다.

핵심 포인트
  • • 배열은 순서 있는 데이터 집합
  • • 객체는 키-값 쌍 구조
  • • 배열은 인덱스, 객체는 키로 접근
  • • 사용 목적에 따른 선택
답변에 넣으면 좋은 키워드
배열 객체 인덱스 키-값 map 순서
실무에서는

게시글 목록은 배열로, 각 게시글의 상세 정보는 객체로 관리하여 데이터를 효율적으로 다룹니다.

Follow-up 질문

React에서 배열을 렌더링할 때 key prop이 왜 필요한가요?

5 성능 최적화
Medium

Q. React 애플리케이션에서 리스트를 렌더링했는데 스크롤이 버벅거리는 현상이 발생했습니다. 어떤 원인이 있을 수 있고, 어떻게 개선할 수 있나요?

불필요한 리렌더링과 한 번에 렌더링되는 항목의 수를 생각해보세요.

A. 모범답안

리스트 항목이 너무 많아 한 번에 모든 DOM을 렌더링하면서 성능 문제가 발생할 수 있습니다. React.memo를 사용하여 props가 변경되지 않은 컴포넌트의 리렌더링을 방지할 수 있습니다. 가상 스크롤링(Virtualization)을 적용하여 화면에 보이는 항목만 렌더링하는 react-window나 react-virtualized 라이브러리를 사용할 수 있습니다. key prop을 고유한 값(id)으로 설정하여 React가 항목을 정확하게 식별하도록 해야 합니다. 무거운 연산이 있다면 useMemo를 사용하여 결과를 메모이제이션하는 것도 도움이 됩니다.

핵심 포인트
  • • React.memo로 불필요한 리렌더링 방지
  • • 가상 스크롤링으로 보이는 항목만 렌더링
  • • 고유한 key prop 사용
  • • useMemo로 연산 최적화
답변에 넣으면 좋은 키워드
React.memo 가상 스크롤링 react-window key useMemo 리렌더링
실무에서는

수천 개의 상품 목록을 보여주는 쇼핑몰에서 가상 스크롤링을 적용하여 초기 로딩 속도와 스크롤 성능을 개선합니다.

Follow-up 질문

React.memo와 useMemo의 차이점은 무엇인가요?

6 컴포넌트 설계
Medium

Q. React에서 Props와 State의 차이점을 설명하고, 각각 어떤 상황에서 사용해야 하나요?

데이터의 출처와 변경 가능성을 기준으로 생각해보세요.

A. 모범답안

Props는 부모 컴포넌트로부터 전달받는 읽기 전용 데이터로, 컴포넌트 내부에서 수정할 수 없습니다. State는 컴포넌트 내부에서 관리하는 변경 가능한 데이터로, setState나 useState를 통해 업데이트할 수 있습니다. Props는 컴포넌트 간 데이터를 전달하거나 재사용 가능한 컴포넌트를 만들 때 사용합니다. State는 사용자 입력, 토글 상태, API 응답 등 시간에 따라 변하는 데이터를 관리할 때 사용합니다. Props가 변경되면 컴포넌트가 리렌더링되고, State가 변경되어도 컴포넌트가 리렌더링됩니다.

핵심 포인트
  • • Props는 읽기 전용, State는 변경 가능
  • • Props는 부모에서 전달, State는 내부에서 관리
  • • Props는 컴포넌트 재사용, State는 동적 데이터 관리
  • • 둘 다 변경 시 리렌더링 발생
답변에 넣으면 좋은 키워드
Props State 읽기 전용 useState 부모 컴포넌트 리렌더링
실무에서는

버튼 컴포넌트는 텍스트와 클릭 핸들러를 Props로 받고, 모달 컴포넌트는 열림/닫힘 상태를 State로 관리합니다.

Follow-up 질문

Props drilling 문제는 무엇이며, 어떻게 해결할 수 있나요?

7 보안
Easy

Q. 웹 애플리케이션에서 XSS(Cross-Site Scripting) 공격이란 무엇이며, React에서는 어떻게 방어하나요?

사용자 입력과 스크립트 실행의 관계를 생각해보세요.

A. 모범답안

XSS는 공격자가 악의적인 스크립트를 웹페이지에 삽입하여 다른 사용자의 브라우저에서 실행시키는 공격입니다. 사용자의 쿠키나 세션을 탈취하거나 악성 행위를 수행할 수 있습니다. React는 기본적으로 JSX에서 모든 값을 렌더링하기 전에 이스케이프 처리하여 XSS를 방지합니다. 하지만 dangerouslySetInnerHTML을 사용하면 이 보호가 우회되므로 신뢰할 수 없는 데이터에는 절대 사용하지 않아야 합니다. 사용자 입력을 받을 때는 서버 측에서도 검증과 sanitization을 수행해야 합니다.

핵심 포인트
  • • XSS는 악의적인 스크립트 삽입 공격
  • • React는 기본적으로 자동 이스케이프 처리
  • • dangerouslySetInnerHTML 사용 주의
  • • 서버 측 검증도 필수
답변에 넣으면 좋은 키워드
XSS 이스케이프 dangerouslySetInnerHTML sanitization 보안
실무에서는

댓글 기능에서 사용자가 입력한 HTML 태그가 그대로 실행되지 않도록 React의 자동 이스케이프를 활용합니다.

Follow-up 질문

CSRF(Cross-Site Request Forgery) 공격은 무엇이며 어떻게 방어하나요?

8 비동기 처리
Medium

Q. JavaScript에서 Promise와 async/await의 차이점을 설명하고, React 컴포넌트에서 비동기 데이터를 가져올 때 어떻게 사용하나요?

코드의 가독성과 에러 처리 방식을 비교해보세요.

A. 모범답안

Promise는 비동기 작업의 결과를 나타내는 객체로, then과 catch 메서드 체이닝으로 처리합니다. async/await는 Promise를 더 동기적인 코드처럼 작성할 수 있게 해주는 문법적 설탕입니다. async/await를 사용하면 코드 가독성이 높아지고 try-catch로 에러를 처리할 수 있어 직관적입니다. React에서는 useEffect 내부에서 async 함수를 정의하고 호출하는 방식으로 데이터를 fetching합니다. useEffect 콜백 자체를 async로 만들 수는 없으므로 내부에 별도 async 함수를 선언해야 합니다.

핵심 포인트
  • • Promise는 then/catch 체이닝
  • • async/await는 동기적 코드 스타일
  • • async/await가 가독성과 에러 처리에 유리
  • • useEffect 내부에서 async 함수 사용
답변에 넣으면 좋은 키워드
Promise async/await then catch try-catch useEffect
실무에서는

컴포넌트 마운트 시 API에서 사용자 데이터를 가져와 화면에 표시할 때 useEffect와 async/await를 함께 사용합니다.

Follow-up 질문

여러 개의 비동기 작업을 병렬로 처리하려면 어떻게 해야 하나요?

9 테스트
Easy

Q. React 컴포넌트를 테스트하는 이유는 무엇이며, 어떤 도구들이 주로 사용되나요?

코드 품질과 버그 예방 측면에서 생각해보세요.

A. 모범답안

테스트는 코드 변경 시 기존 기능이 정상 동작하는지 자동으로 검증하여 버그를 조기에 발견할 수 있게 합니다. 리팩토링이나 새 기능 추가 시 안정성을 보장하고, 코드의 의도를 문서화하는 역할도 합니다. React에서는 Jest를 테스트 러너로, React Testing Library를 컴포넌트 테스트 라이브러리로 주로 사용합니다. React Testing Library는 사용자 관점에서 컴포넌트를 테스트하도록 설계되어 실제 사용 시나리오를 검증할 수 있습니다. 렌더링 결과, 이벤트 핸들링, 상태 변화 등을 테스트할 수 있습니다.

핵심 포인트
  • • 테스트로 버그 조기 발견 및 안정성 보장
  • • 리팩토링 시 안전성 제공
  • • Jest와 React Testing Library 주로 사용
  • • 사용자 관점의 테스트
답변에 넣으면 좋은 키워드
Jest React Testing Library 테스트 버그 리팩토링
실무에서는

로그인 버튼 클릭 시 올바른 API가 호출되는지 테스트하여 배포 전 버그를 미리 발견합니다.

Follow-up 질문

단위 테스트와 통합 테스트의 차이는 무엇인가요?

10 인성 · 컬처핏
Easy

Q. React를 학습하면서 가장 어려웠던 개념은 무엇이었고, 어떻게 극복했나요?

구체적인 학습 경험과 문제 해결 과정을 STAR 방식으로 구성해보세요.

A. 모범답안

상황(Situation)을 설명하며 어떤 개념이 어려웠는지 구체적으로 언급합니다. 과제(Task)로 그 개념을 이해하기 위해 무엇을 해야 했는지 설명합니다. 행동(Action)으로 공식 문서 읽기, 토이 프로젝트 만들기, 커뮤니티 질문하기 등 실제로 취한 학습 방법을 상세히 설명합니다. 결과(Result)로 그 개념을 어떻게 이해하게 되었고, 프로젝트에 어떻게 적용했는지 구체적인 성과를 말합니다. 이 경험을 통해 배운 점이나 앞으로의 학습 자세를 덧붙이면 좋습니다.

핵심 포인트
  • • STAR 방식으로 구조화된 답변
  • • 구체적인 학습 방법 제시
  • • 문제 해결 과정 강조
  • • 학습한 내용의 실제 적용 사례
답변에 넣으면 좋은 키워드
학습 경험 문제 해결 공식 문서 토이 프로젝트 성장
실무에서는

신입 개발자의 학습 능력과 자기주도적 문제 해결 역량을 평가하는 중요한 질문입니다.

Follow-up 질문

그 경험을 통해 배운 학습 방법을 다른 새로운 기술을 배울 때도 적용하셨나요?

댓글 0

로그인 후 댓글을 작성할 수 있습니다.

아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!