노드 튜토리얼 보면 어떤 데는 require를 쓰고 어떤 데는 import를 쓰는데 둘이 뭐가 다른지 모르겠어요. 저는 그냥 예제 따라 하다가 섞어 쓰니까 에러가 나더라고요.
이렇게 하면요.
const express = require("express");
잘 되는데 다른 예제 보고 이렇게 바꾸니까
import express from "express";
SyntaxError: Cannot use import statement outside a module 이런 에러가 떠요. package.json에 type module 넣으면 된다는 말도 있고 확장자를 .mjs로 하라는 말도 있고 정보가 너무 제각각이라 혼란스러워요.
궁금한 게요. 첫째로 이 둘이 근본적으로 뭐가 다른 건가요? 그냥 문법 차이인지 아니면 동작 방식 자체가 다른 건지요. 둘째로 지금 새 프로젝트 시작하면 뭘 쓰는 게 맞나요? 셋째로 한 프로젝트 안에서 두 개 섞어 쓰는 것도 되나요? 브라우저에서 쓰는 script type module 이런 거랑도 관련 있는 건지 궁금합니다.