코딩/React

JSX는 무엇일까? (Feat. babel)

2023. 10. 11. 18:14
목차
  1. 🐛 도입
  2. 📝 JSX가 뭘까?
  3. 📝 바벨(babel)은 뭘까?
  4. 🌱 결론

🐛 도입

  • 리액트(React)는 보통 HTML과 유사한 JSX 코드로 작성하는 경우가 대부분입니다.
  • 이 JSX의 편리함 때문에 리액트를 좋아하는 사람도 많지만, 이 JSX 때문에 리액트를 싫어한다는 사람도 많다고 합니다.
  • 이번 블로깅에서는 이러한 JSX와 JSX를 변환(transpile) 해주는 babel에 대해서 알아보도록 하겠습니다.

 

📝 JSX가 뭘까?

  • JSX를 설명하는 리액트 문서를 바탕으로 살펴보도록 하겠습니다.
// 아래 변수 선언을 살펴보자
const element = <h1> Hello, world! </h1>;
  • 위 선언문을 보면 문자열도 HTML도 아닙니다.
  • 이 문법을 JSX라고 부르며, JSX는 HTML 태그를 변수로 할당하고, 호출하며, return 할 수 있는 확장 문법이라고 볼 수 있습니다.
  • 이를 통해 HTML 변환을 위한 코드 (React.createElement)를 호출하지 않고도 HTML 태그를 작성하여, 변수에 넣거나 return 할 수 있기 때문에, 간단하고 편리하게 리액트 컴포넌트를 정의하고 UI를 표현할 수 있습니다.

 

📝 바벨(babel)은 뭘까?

  • 바벨의 원래 이름은 '6to5'라는 이름이였으며. 이름에서 짐작 가능하듯이 ES6(ECMAScript 6)를 ES5(ECMAScript 5)로 바꿔주는 역할을 하였습니다.
  • 자바스크립트는 다양한 버전이 존재하며, 과거 브라우저는 당시 최신 문법이었던 ES6를 제대로 호환하지 못하였습니다.

브라우저별 ES6를 지원한 시점

  • 2015년 ES6가 나왔음에도, 크롬이나 파이어폭스 등의 브라우저는 ES6를 지원하지 않았으며, 그러다 보니 바벨과 같이 ES6를 ES5로 바꿔주는 도구가 있어야만 오래된 브라우저에서도 ES6문법을 사용 할 수 있었던 것이죠.
  • 바벨은 위와같은 최신 문법을 이전 세대의 코드로 호환해주는 기능 이외에도 JSX로 작성된 코드를 변환할 때도 사용됩니다.
  • 바벨을 사용하면 JSX를 브라우저가 읽기 쉬운 ES5코드로 변환해주며, 이를 바탕으로 개발자는 최신 문법을 사용하면서 동시에 여러 브라우저에서 작동될 수 있는 코드를 작성 할 수 있습니다.

 

🌱 결론

  • 리액트에게 있어 JSX와 바벨은 뗄레야 뗄수 없는 관계라고 할 수 있습니다.
  • 요약하자면, JSX는 리액트에서 컴포넌트를 정의하는 데 사용되는 특별한 자바스크립트 확장 문법이며, Babel은 이 JSX 코드를 브라우저에서 실행 가능한 JavaScript 코드로 변환시켜주는 도구 라고 할 수 있습니다.

'코딩 > React' 카테고리의 다른 글

useEffect를 이용한 커스텀훅을 만들어보자(feat. useAsyncEffect)  (2) 2024.02.29
리액트의 useState는 동기일까 비동기일까?  (0) 2023.10.05
[React] 실습 1회차 - Counter 구현하기  (0) 2023.05.24
[React] 실습 Preview  (0) 2023.05.22
  1. 🐛 도입
  2. 📝 JSX가 뭘까?
  3. 📝 바벨(babel)은 뭘까?
  4. 🌱 결론
'코딩/React' 카테고리의 다른 글
  • useEffect를 이용한 커스텀훅을 만들어보자(feat. useAsyncEffect)
  • 리액트의 useState는 동기일까 비동기일까?
  • [React] 실습 1회차 - Counter 구현하기
  • [React] 실습 Preview
2워노
2워노
2워노
워노의 코딩 일기
2워노
전체
오늘
어제
  • 분류 전체보기 (40)
    • 코딩 (30)
      • 코드스테이츠 45기(FE) (18)
      • JavaScript (1)
      • React (5)
      • HTTP, 네트워크 (2)
      • 데일리 코딩 (2)
      • Next.js (2)
    • Project (8)
      • 삐삐(BIBI: Best Interior) (4)
      • 점메추(점심메뉴추천) (1)
      • 탑개미자원 (3)
    • UI, UX (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 나만의아고라스테이츠
  • 엑세스토큰
  • 도메인연결
  • 리액트배포
  • Prettier format on save
  • 무한스크롤
  • 404에러
  • 프론트엔드부트캠프
  • 토큰
  • Prettier
  • next.js
  • 토큰재발급
  • sop
  • 비동기
  • Babel
  • CORS
  • 한글도메인
  • å
  • JWT
  • 환경변수
  • JSX
  • 코드스테이츠
  • vercel
  • 임시저장
  • 리프래시토큰
  • cloudtype
  • my agroa states
  • 호스팅케이알
  • useState
  • 정적리소스

최근 댓글

최근 글

hELLO · Designed By 정상우.
2워노
JSX는 무엇일까? (Feat. babel)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.