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
'개발 TIL' 카테고리의 다른 글
24.06.28 day12 코드트리 문제 풀기, 이벤트 전파(Event Propagation) (0) | 2024.06.28 |
---|---|
24.06.27 day11 코드트리 문제 풀기, 리액트의 라이프 사이클 (0) | 2024.06.27 |
24.06.25 day9 코드트리 문제 풀기, falsy values (0) | 2024.06.25 |
24.06.24 day8 코드트리 다중반복문(별문제 학습 중) (0) | 2024.06.24 |
24.06.23 day7 코드트리 반복문(무한 루프까지) 학습 (0) | 2024.06.23 |