본문 바로가기

TIL

7/26(수) 데일리 과제

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

require : Node.js에서 사용되는 CommonJS스펙에서 모듈을 가져오는 데 사용되는 키워드 입니다. 주로 Node.js환경에서 서버 측 애플리케이션을 개발할 때 사용됩니다. 'require'는 동기적으로 동작하며, 가져오려는 모듈을 로딩한 후 해당 모듈의 내용을 반환합니다.

 

const fs = require('fs');
const express = require('express');
const myModule = require('./myModule'); // 사용자 정의 모듈 가져오기

 

import : 최신 ECMAScript(ES6)에서 도입된 모듈 시스템에서 사용되는 키워드입니다. 브라우저나 Node.js에서 모듈을 가져올 때 사용됩니다. 'import'는 비동기적으로 동작하며, 모듈을 가져온 후에 해당 모듈을 사용할 수 있습니다. 일반저긍로 import문은 파일 상단에 위치해야 합니다.

 

import fs from 'fs';
import express from 'express';
import myModule from './myModule'; // 사용자 정의 모듈 가져오기

 

require는 동기적으로 동작하여 해당 모듈을 가져온 후에만 코드 실행이 실행됩니다. 반면에 import는 비동기적으로 동작하여 모듈을 가져오는 동안에도 코드 실행이 계속 됩니다. require는 Node.js환경에서 주로 사용되고, import는 최신 브라우저와 Node.js환경에서 사용됩니다. 

 

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

const로 선언된 배열과 객체는 변경이 불가능한것이 아니라, 재할당이 불가능한 것을 의미합니다. 즉 const로 선언한 변수에 다른 배열이나 객체를 할당하는 것은 불가능하지만, 해당 배열이나 객체의 요소나 속성은 변경할 수 있습니다.

 

배열

const myArray = [1, 2, 3];

// 요소 추가는 가능합니다.
myArray.push(4); // [1, 2, 3, 4]

// 요소 변경도 가능합니다.
myArray[0] = 10; // [10, 2, 3, 4]

const로 선언한 배열은 다른 배열로 할당하려고 하면 오류가 발생합니다. 하지만 push메소드를 사용하여 요소를 추가하거나 인덱스를 이용해 요소를 변경하는 것은 가능합니다.

 

객체

const myObject = { name: 'John', age: 30 };

// 속성 추가는 가능합니다.
myObject.gender = 'male'; // { name: 'John', age: 30, gender: 'male' }

// 속성 변경도 가능합니다.
myObject.name = 'Alice'; // { name: 'Alice', age: 30, gender: 'male' }

객체 역시 배열과 마찬가지로 const로 선언되었다고 해서 객체 자체를 변경할 수 없고 객체의 속성을 추가하거나 변경하는 것은 가능합니다.

'TIL' 카테고리의 다른 글

7/28(금) 데일리 과제  (0) 2023.07.28
7/27(목) 데일리 과제  (0) 2023.07.27
7/25(화) 데일리 과제  (0) 2023.07.27
7/24(월) 데일리 과제  (0) 2023.07.24
7/21(금) 데일리 과제  (0) 2023.07.21