Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 달팽이
- 플로이드 와샬
- spring boot
- 구현
- 트리
- 완전 탐색
- spring cloud
- Java
- 게이트웨이
- 다익스트라
- Logback
- Gradle
- BFS
- ZuulFilter
- 비트마스킹
- 구간 트리
- 이분 매칭
- 서비스 디스커버리
- 백트래킹
- Zuul
- 주울
- 도커
- 이분 탐색
- 스프링 시큐리티
- docker-compose
- 스택
- 유레카
- 메모이제이션
- dp
- Spring Cloud Config
Archives
- Today
- Total
Hello, Freakin world!
[Node.js] 모듈로 만들기 본문
모듈이란?
특정한 기능을 하는 함수나 변수들의 집합입니다.
모듈로 만들어두면 여러 프로그램에 해당 모듈을 재사용할 수 있습니다.
보통 파일 하나가 모듈 하나가 됩니다. 파일별로 코드를 모듈화할 수 있어 관리하기 편리합니다.
예제
목표
stringUtils.js , main.js 파일을 만들고 main에서 stringUtils의 메서드를 import해서 쓸 수 있도록 해보자.
stringUtils.js
function reverse(str) {
return str.split("").reverse().join("");
}
function wrapBracket(str) {
return `{${str}}`;
}
module.exports = {reverse, wrapBracket};
main.js
const stringUtils = require('./stringUtils');
let str = 'hello, world!';
console.log(stringUtils.wrapBracket(str));
console.log(stringUtils.reverse(str));
예제 설명
위의 예제에서 주목할 만한 부분은 module.exports와 require 메서드입니다.
그리고 module 객체는 Node에서 제공하는 내장 객체로 위의 코드는 IDE에서 실행한다면 환경에 Node.js가 설치돼있어야 합니다.
require 메서드 역시 Node에서 제공하는 내장 객체 중 하나인 global의 메서드입니다.
exports 프로퍼티에 모듈화할 메서드나 변수등을 포함한 객체를 할당합니다.
require 메서드의 인수로는 모듈화를 선언한 파일명의 경로를 건네줍니다. 그러면 반환받은 객체의 프로퍼티로 export한 변수나 메서드에 접근해 사용할 수 있습니다.
참고: ES2015 모듈
ES2015가 도입되면서 자바스크립트도 자체 모듈 시스템 문법이 생겼습니다. 노드의 모듈 시스템과는 문법이 조금 다릅니다.
hello.mjs <- 임의의 자바스크립트 파일
import { alias, alias } from '모듈 파일 경로명';
...
export default 메서드 or 객체 or 변수등;
노드에서도 9버전부터 ES2015의 모듈 시스템을 사용할 수 있습니다. 하지만 파일의 확장자를 mjs로 지정해야 하는 등의 번거로움이 있습니다. 그냥 module 객체를 이용하는게 더 편할듯 합니다.
출처 : Node.js 교과서 - 조현영
'프로그래밍 언어 > Javascript' 카테고리의 다른 글
call(), apply(), bind()에 대해서 (0) | 2020.01.17 |
---|
Comments