미새문지

24.06.26 day10 코드트리 문제 풀기, require와 import의 차이점 본문

개발 TIL

24.06.26 day10 코드트리 문제 풀기, require와 import의 차이점

문미새 2024. 6. 26. 23:47
728x90

 

특정 규칙의 문자 출력

정수 n을 입력받아 문자를 특정 규칙에 따라 출력하는 프로그램을 아래 예를 참고하여 작성해보세요.

 

예)

n에 3을 입력받는 경우

          @
     @ @
@ @ @
@ @
@

 

a = int(input())

for i in range(1, a+1):
    for j in range(a-i, 0, -1):
        print(' ', end=' ')
    for k in range(i):
        print('@', end=' ')
    print()

for i in range(1, a):
    for j in range(a-i, 0, -1):
        print('@', end=' ')
    for k in range(i):
        print(' ', end=' ')
    print()

별 문제로 익숙해져서 공백을 포함한 규칙으로 금방 풀었던 것 같다.


require와 import 차이점

require와 import는 각각 다른 자바스크립트 모듈 시스템에서 사용되는 키워드로, 모듈을 불러오는 데 사용된다.

require

const module = require('module');
  • 사용되는 모듈 시스템은 CommonJS이며 주로 Node.js 환경에서 사용된다.
  • 동기적으로 모듈을 불러온다.
  • require 호출은 코드가 실행될 때 바로 호출되며, 모듈을 불러오는 즉시 실행하고 반환된 객체를 사용한다.
  • require 호출이 완료될 때까지 다음 줄의 코드가 실행되지 않는 동기적 호출이 이루어진다.

import

import module from 'module';
import { specificFunction } from 'module';
  • 사용되는 모듈 시스템은 ES6 모듈 시스템(ECMAScript 2015)이며 브라우저와 ES 모듈이 지원되는 버전의 Node.js 에서 사용 가능하다.
  • 정적 분석이 가능하며, 비동기적으로 모듈을 불러온다.
  • import 호출은 코드가 실행되기 전에 호출되며, 모듈을 불러오고 평가하는 과정이 비동기적이다.
  • 정적으로 분석되기 때문에, 최적화 및 트리 쉐이킹(tree-shaking)이 가능하다.

트리 쉐이킹(tree-shaking)

웹팩(Webpack)이나 롤업(Rollup)같은 현재 자바스크립트 번들러에서 사용되는 최적화 기법 중 하나이며, 사용되지 않는 코드를 제거하여 최종 번들 크기를 줄이는 기술이다.

 

require, import 주요 차이점

  require import
모듈 시스템 CommonJS ES6 모듈
사용 환경 Node.js 환경 브라우저와 호환되는 버전의 Node.js 전부
동기/비동기 동기적 비동기적
코드 실행 시점 코드 실행 중에 모듈을 불러옴 코드 실행 전에 모듈을 불러옴
정적/동적 분석 동적 분석 정적 분석

 

이러한 차이로 두 키워드는 각각 다른 상황에 사용되며, ES6 모듈 시스템을 사용하면 더 나은 최적화와 모듈관리가 가능하다.

Node.js에서도 ES6 모듈을 지원하기 때문에 두 시스템을 섞어서 사용하는 경우도 많다.

728x90