프론트엔드 개발 · 기초
JSX 문법에서 class 대신 className을, for 대신 htmlFor를 쓰는 이유는 무엇인가요?
힌트 · JSX가 결국 자바스크립트라는 점과 일부 단어가 가진 언어적 의미의 관점에서 접근하세요.
HTML 속성JavaScript 예약어충돌 방지React
모범답안
JSX에서 class 대신 className을, for 대신 htmlFor를 사용하는 이유는 JSX가 결국 자바스크립트 문법을 확장한 것이기 때문입니다.
class는 자바스크립트의 예약어이기 때문에, JSX에서 HTML의 class 속성을 그대로 사용하면 자바스크립트 문법과 충돌이 발생합니다. 이를 방지하기 위해 React는 className이라는 다른 이름을 사용하도록 했습니다.
마찬가지로 for도 자바스크립트에서 반복문 등에 사용되는 예약어입니다. 따라서 HTML의 for 속성을 JSX에서 사용하려면 htmlFor라는 이름을 사용해야 합니다.
이러한 규칙 덕분에 JSX는 자바스크립트 코드 안에서 HTML과 유사한 구조를 안전하게 사용할 수 있게 됩니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 React 면접 질문
- React의 Virtual DOM이란 무엇이며, 어떤 이점이 있나요?
- React의 key prop이 필요한 이유와 index를 key로 사용하면 안 되는 이유를 설명해주세요.
- React에서 JSX란 무엇이며, 브라우저가 직접 이해하지 못하는 JSX가 실제로 어떻게 동작할 수 있는지 설명해주세요.
- 함수형 컴포넌트와 클래스 컴포넌트의 차이점은 무엇이며, 최근에는 왜 함수형 컴포넌트가 권장되나요?
- props와 state의 차이점은 무엇인가요? 각각 누가 소유하고 변경할 수 있는지 함께 설명해주세요.
- React에서 props는 왜 읽기 전용(read-only)이어야 하나요? 자식 컴포넌트에서 props를 직접 수정하면 어떤 문제가 생기나요?