그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록React
React

JSX는 무엇이며 어떻게 JavaScript로 변환되나요?

실무4/5
설계3/5
인간3/5
기초2/5

면접관의 질문 의도

JSX를 'HTML 비슷한 문법'으로만 보는지, 아니면 트랜스파일 결과인 함수 호출과 React element 모델까지 이어 가는지 가르려는 질문이다.

큐레이션 답변

학습 자료

JSX는 JavaScript 안에서 마크업처럼 UI 구조를 적게 해 주는 문법 확장이라, 브라우저가 직접 실행하지는 못한다. 빌드 단계에서 Babel·SWC 같은 트랜스파일러가 이를 classic runtime에선 React.createElement(type, props, ...children)로, automatic runtime(React 17+)에선 react/jsx-runtime의 jsx/jsxs 호출로 변환한다. 그 결과물은 객체 트리(React element)이고, React는 이 트리를 받아 가상 DOM·실제 DOM 작업을 이어 간다. JSX 식 하나가 단일 표현식으로 풀려야 하기 때문에 컴포넌트가 여러 형제 요소를 반환할 땐 부모나 Fragment로 감싸야 한다는 규칙도 여기서 나온다.

좋은 답변 구조

  1. 01JSX가 문법 확장이며 브라우저가 직접 실행하지 못한다는 점을 짚는다
  2. 02classic·automatic 두 런타임에서 어떤 함수 호출로 풀리는지 설명한다
  3. 03변환 결과가 React element 트리이며 React가 이를 기반으로 렌더링한다는 흐름을 잇는다
  4. 04단일 표현식 반환 규칙·Fragment 같은 제약이 변환 모델에서 어떻게 따라 나오는지 정리한다

자주 실수하는 포인트

JSX가 브라우저에서 직접 실행된다고 본다
HTML과 JSX 속성 규칙(`class` vs `className`, 카멜케이스 이벤트) 차이를 단순 변덕으로 본다
Fragment 규칙을 React만의 임의 규칙으로 외우고 단일 표현식 반환과 연결하지 못한다

실무 맥락

  • JSX 런타임 설정 차이로 빌드가 깨지거나 두 런타임이 섞인 프로젝트
  • TSX에서 제네릭 화살표 함수 문법이 JSX와 충돌해 좁혀 가야 하는 코드
  • Babel·SWC·esbuild 같은 트랜스파일러 설정을 직접 다뤄야 하는 프론트엔드 빌드 환경

본인 경험에 녹이는 힌트

트랜스파일 결과를 직접 열어 보고 빌드 문제를 좁혀 본 경험이 있다면 변환 모델 이해의 효용으로 연결할 수 있다

JSX 런타임을 classic에서 automatic으로 옮기며 import 변화를 정리해 본 적이 있다면 설정 변경 사례로 엮을 수 있다

Fragment 사용 기준을 팀 컨벤션으로 정해 본 경험이 있다면 단일 표현식 규칙을 코드 스타일로 옮긴 사례로 말할 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1automatic JSX runtime과 classic runtime의 차이는 무엇인가요
Q2TSX에서 제네릭 문법과 JSX 충돌은 어떻게 피하나요
Q3JSX를 React 외 라이브러리에서 사용하려면 무엇이 필요한가요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문