Hah-nna / Tech_Interview

0 stars 0 forks source link

프런트에서 빌드 시스템 #73

Open young-02 opened 8 months ago

young-02 commented 8 months ago

바벨이란?

입력과 출력이 모두 자바스크립트 코드인 컴파일러. 바벨은 최신 버전의 자바스크립트가 실행되지 않는 구 버전의 브라우저에서도 정상적으로 실행되도록 변환해준다. (jsx,타입스크립트 와 같은 정적타입의 언어와 코드 압축 등의 문법을 사용할 수 있다.)

babel 쓰는 이유

폴리필(polyfill)

개발자가 특정 기능이 지원되지 않는 브라우저를 위해 사용할 수 있는 코드 조각이나 플러그인을 의미 프로그램이 처음에 시작될 때 현재 브라우저에서 지원하지 않는 함수를 검사해서 각 object의 prototype에 붙여주는 역할을 한다.

Node.js란?

Node.js는 Chrome V8 Javascript 엔진ㅇ로 빌드된 자바스크립트 런타임이며, 이를 통해 브라우저 외부에서도 자바스크립트 코드를 실행할 수 있다.

Node.js 장점

  1. 높은 처리량 : 입출력 작업을 블로킹 하지 않기 때문에, 작업이 완료되기 전에 다른 작업을 수행할 수 있다.
  2. 확장성 : 이벤트 기반 아키텍처를 사용하므로, 논블로킹 I/O 작업을 수행할 때마다 새로운 이벤트 루프를 생성한다.
  3. 모듈 생태계 : npm(Node Package Manager)을 통해 모듈 생태계를 갖추고 있어 쉽게 사용 할 수 있다.
  4. 빠른 개발: javascript를 사용하기 때문에 프론트와 백엔드에서 동일한 언어를 사용할 수 있다.또한 nodejs는 기본적으로 비동기식 작업을 처리하므로 코드를 간결하고 직관적으로 작성할 수 있다.
  5. 개발 생산성 향상: 다양한 도구와 라이브러리 존재

    Node.js 단점

  6. 단일 스레드 모델: 다중스레드 작업을 병렬적으로 수행할 수 없다. 많은 수의 CPU 바운드 작업을 수행하는 경우 작업 지연 될 수 있다.
  7. 콜백 지옥: 비동기 작업을 처리하기 위해 콜백 패턴을 사용하지만 중첩될 경우 콜백 지옥현상 초래 -> promise 와 async/await 같은 패턴 등장
  8. 모듈 생태계의 불안정성: 모듈 생태계가 불안정하여 라이브러리 버전이라 호환성 문제가 발생할 수 있다. -> 최신버전 모듈 사용 및 버전 관리 시스템사용으로 버전 관리 해야함.
  9. 보안 이슈: 악의적인 공격자들이 해킹을 시도 할수 있다. nodejs 애플리케이션 개발시 보안에 대한 고려 필요.

    NPM(Node Packaged Manager )이란?

    node.js로 만들어진 pagkage(module)을 관리해주는 툴

    ESLInt란?

    ECMaScript 코드에서 문제점을 검사하고 에러가 발생하지 않는 더 나은 코드로 수정해주는 'Lint'도구 중 하나.

    사용 하는 이유

    다른 사람과의 협업을 할때 다른 코드 형식을 맞춰주는 역할을 한다. 자바스크립트는 컴파일 과정이 없는 인터프리터 언어이기 때문에 Linter가 내장되어 있지 않기 때문에 런타임 환경에서 에러가 발생할 수 있다. 그러기 때문에 사전에 에러를 발견하고 해결하는 것이 중요하다.

    Prettier란?

    코드 포맷의 통일성을 유지시켜주는 Javascript 라이브러리이다. 일관적인 코드 스타일을 유지할 수 있게 도와주는 툴이다.

    웹 태스크 매니저란?

    코드가 수정된 뒤 저장하고 브라우저를 새로고침 해야 변경된 내용을 확인할 수 있는데 이러한 일을 자동화 해주는 도구 웹 서비스를 개발하고 배포시 html, css,js등 파일을 압축하거나 변환을 자동화 해주는 도구