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 cloud
- Zuul
- 도커
- 구간 트리
- spring boot
- 달팽이
- Logback
- 주울
- 유레카
- dp
- 이분 매칭
- Spring Cloud Config
- docker-compose
- 스프링 시큐리티
- 스택
- BFS
- 비트마스킹
- 백트래킹
- 게이트웨이
- 플로이드 와샬
- ZuulFilter
- 구현
- 트리
- 이분 탐색
- 완전 탐색
- Java
- 다익스트라
- 서비스 디스커버리
- Gradle
- 메모이제이션
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