mark340
착하게살자
mark340
전체 방문자
오늘
어제
  • 분류 전체보기 (98)
    • 백준 (11)
    • 알고리즘 (1)
    • Javascript (17)
    • CS (18)
    • 기타 (9)
    • AI (1)
    • Angular (2)
    • Linux (14)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Closure
  • JavaScript
  • parsing
  • MySQL
  • oauth

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
mark340

착하게살자

Javascript

[Javascript] require 와 import 비교

2023. 1. 9. 19:38

공통점

두 가지 모두 외부의 파일이나 라이브러리 등 모듈을 불러오는 목적으로 사용한다.

 

require - exports

  • Node.js에서 사용되고 있는 CommonJS 키워드이고 Ruby 의 언어 스타일과 비슷하다.

import - export

  • ES6(ES2015)에서 새로 도입된 키워드로서 Java나 Python 언어 방식과 비슷하다.

차이점

1. 문법구조

아래 2줄의 코드는 기본적으로 외부 모듈의 코드를 불러오는 동일한 작업을 수행하고 있지만 문법 구조가 다르다.

/* CommonJS  */
const name = require('./module.js');
/* ES6 */
import name from './module.js'
  • require()는 CommonJS를 사용하는 node.js문이지만 import()는 ES6에서만 사용
  • require()는 파일 (어휘가 아님)에 들어있는 곳에 남아 있으며 import()는 항상 맨 위로 이동
  • require()는 프로그램의 어느 지점에서나 호출 할 수 있지만 import()는 파일의 시작 부분에서만 실행할 수 있다. (그렇지만 import 전용 비동기 문법으로 파일 중간에 모듈 불러오기를 할 수 있다.
  • 하나의 프로그램에서 두 키워드를 동시에 사용할 수 없다
  • 일반적으로 import()는 사용자가 필요한 모듈 부분 만 선택하고 로드 할 수 있기 때문에 더 선호된다. 또한 require()보다 성능이 우수하며 메모리를 절약한다.


2. exports  / export

 

/* CommonJS  */
const name = '슈퍼맨';

module.exports = name;
/* ES6 */
const name = '슈퍼맨';

export default name;

 

 

'Javascript' 카테고리의 다른 글

[Javascript] Generator Function  (0) 2023.01.19
[Javascript] 커링(Currying)이란  (0) 2023.01.17
[JS] 중복되지 않는 알파벳으로 이루어진 가장 긴 문자열 찾기  (0) 2022.12.31
[Javascript] Closure  (0) 2022.10.17
[JavaScript] 이진 탐색(Binary Search) 알고리즘  (0) 2022.09.13
    'Javascript' 카테고리의 다른 글
    • [Javascript] Generator Function
    • [Javascript] 커링(Currying)이란
    • [JS] 중복되지 않는 알파벳으로 이루어진 가장 긴 문자열 찾기
    • [Javascript] Closure
    mark340
    mark340
    착하게삽시다

    티스토리툴바