찌우닝 2023. 4. 3. 15:41

📌require와 import차이점을 설명해주세요. 각각 어떤 상황에서 쓸 수 있나요?

  • 둘 다 모듈 키워드. 외부 파일이나 라이브러리를 불러올 때 사용
  • Babel같은 ES6 코드 변환 도구를 사용할 수 없다면 require 키워드를 사용해야함
  • require
    • NodeJs에서 사용되고 있는 CommonJS 키워드
    • Ruby 언어 스타일과 비슷함
    • 파일에 들어있는 곳에 남아있음
    • 프로그램의 어느 지점에서나 호출 할 수 있음
    • 특정 변수나 그 변수의 속성으로 내보낼 객체를 세팅해줘야 함.
    • 여러개의 객체를 내보낼 경우 -> export.변수의 개별 속성으로 할당, 
      딱 하나의 객체를 내보낼 경우 -> module.exports = 객체 자체에 할당.
    • require로 가져오고, esports/module.exports로 내보낸다.
  • import
    • ES6에서 새롭게 도입된 키워드
    • Java나 Python 언어 방식과 비슷함
    • 항상 맨 위로 이동
    • 파일의 시작 부분에서만 실행할 수 있음, 그러나 import 전용 비동기 문법으로 파일 중간에 모듈을 불러올 수 있음
    • 사용자가 필요한 모듈 부분만 선택하고 로드할 수 있어서 더 선호하며,
      require에 비해 성능이 우수하며 메모리 절약.
    • import로 가져오고, export/export defaults로 내보낸다.

💡참고

더보기

📌배열, 객체를 const로 선언했는데 요소나 속성을 추가할 수 있는 이유에 대해서 설명해주세요

  • 배열, 객체는 참조자료형으로, heap에 데이터가 담기고 stack에는 heap에 담긴 데이터의 주소가 담긴다.
  • 즉, 주소를 참조해 값을 가져온다.
  • 실제 배열 요소들은 push나 pop으로 변경이 가능하고 참조된 주소는 변경되지 않으므로 const 사용이 가능!

💡참고

더보기