Po_tta_tt0
콩심콩 팥심팥 🌱
Po_tta_tt0
전체 방문자
오늘
어제
  • 분류 전체보기 (266)
    • 🐛 회고 (14)
    • 💭 생각 (2)
    • 🤸‍♀️ 내 프로젝트 (16)
      • FISH-NEWS (8)
      • MBTI 과몰입 테스트 (2)
      • twitter clonecoding with TS (4)
      • pilzagenda (2)
    • 👨‍👩‍👧‍👦 팀 프로젝트 (2)
      • 피우다 프로젝트 (0)
      • SEMO(세상의 모든 모임) (1)
      • 마음을 전하는 텃밭 (1)
      • Stackticon (0)
    • 👨‍💻 CS지식 (11)
    • ✍ 공부 (94)
      • JavaScript (21)
      • TypeScript (39)
      • Html (0)
      • CSS (2)
      • React (18)
      • NextJS (7)
      • Vue (1)
      • Python (1)
      • Django (0)
      • 개발환경 & 그 외 (2)
    • 🏄‍♀️ 코딩테스트 (99)
      • 🐍 Python (99)
    • 🐙 Git & GitHub (3)
    • 📑 오류기록 (8)
    • 📚 우리를 위한 기록 (9)
    • 수업 (3)
    • 강의 등 (2)
    • 👩‍🎓 SSAFY (0)
    • 👋 우테코 (0)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 이분탐색
  • 문자열
  • 자바스크립트
  • 구현
  • 파이썬 다익스트라
  • react-router-dom
  • BFS + DP
  • 플로이드 워셜
  • 파이썬 감시 피하기
  • DP
  • 백준
  • Next.js
  • 파이썬
  • React
  • bfs
  • 백준 숨바꼭질
  • 백준 파이썬
  • dfs
  • 시뮬레이션
  • js

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Po_tta_tt0

콩심콩 팥심팥 🌱

✍ 공부/JavaScript

Babel이란 무엇일까?

2022. 4. 17. 20:00
반응형

 

0. 바벨이란?

 

바벨은 입출력이 모두 자바스크립트인 컴파일러다. ( 소스 대 소스 컴파일러 ) 

ECMAScript2015+ 코드를 모든 모든 브라우저에서 동작하도록 호환성을 지켜준다.

JSX 문법, 타입스크립트(정적 타입 언어), 코드 압축 등도 포함한다

 

📌 알고 넘어가기

컴파일러

한 언어로 작성된 소스 코드를 다른 언어로 변환한다

 

트랜스파일러

한 언어로 작성된 소스 코드를 다른 소스 코드로 변환하는 것

추상화 수준을 유지한 상태로 코드를 변환한다.

트랜스파일 후에도 여전히 코드를 읽을 수 있다

 

 

1. 사용 이유

  • 브라우저마다 사용 언어가 약간씩 달라서 코드를 이해하지 못하는 브라우저가 있을 수도 있다
  • 컴파일러인 바벨은 ES2015+ 이상의 코드들을 모든 브라우저에 맞게 동작하게 도와준다. 따라서 크로스 브라우징 문제 해결이 가능하다

 

2. 바벨의 동작

바벨은 세 단계를 거쳐 코드를 빌드한다

1. 파싱 (Parsing)

코드를 읽고 추상 구문 트리(AST)로 변화하는 단계

2. 변환 (Transforming)

추상 구문 트리(AST)를 변경하는 단계.

이 단계에서 실제로 코드를 변경한다

3. 출력 (Printing)

변경된 결과물을 출력한다

 

여기서 바벨은 파싱과 출력만 담당하고 변환 작업은 다른 '플러그인'이 처리한다

하지만 코딩할 때 필요한 플러그인을 계속 설치할 수는 없다

따라서 플러그인들을 세트로 묶은 '프리셋'을 이용한다

 

 

 

 

 

🙇‍♀️

https://jeonghwan-kim.github.io/series/2019/12/22/frontend-dev-env-babel.html

https://github.com/vi2920va/FE_interview/blob/main/FrontEnd/Babel.md

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'✍ 공부 > JavaScript' 카테고리의 다른 글

이벤트 제어하기. 쓰로틀링(throttling)과 디바운싱(debouncing)  (0) 2022.06.12
JavaScript 자바스크립트 이벤트 리스너(eventListener)  (0) 2022.06.11
[ JavaScript ] 배열 무작위로 섞기  (0) 2022.02.28
[프론트앤드 공부기록] Javascript 기초 4  (0) 2021.08.16
[프론트앤드 공부기록] Javascript 기초 3  (0) 2021.08.14
    '✍ 공부/JavaScript' 카테고리의 다른 글
    • 이벤트 제어하기. 쓰로틀링(throttling)과 디바운싱(debouncing)
    • JavaScript 자바스크립트 이벤트 리스너(eventListener)
    • [ JavaScript ] 배열 무작위로 섞기
    • [프론트앤드 공부기록] Javascript 기초 4
    Po_tta_tt0
    Po_tta_tt0
    감자의 코딩하는 블로그 콩심은데 콩나고 팥심은데 팥난다

    티스토리툴바