-
모듈이란JavaScript/Node.js 2018. 11. 19. 21:31
모듈이란
Node.js에는 모듈이란 것이 존재한다.
이 모듈이란 것은 개발하는데 필요하고 다양한 기능들을 함축시켜놓은 소스를 의미하는데 공식적으로 개발자들에게 제공하는 기능이기 때문에 이러한 기능들은 개발자가 직접 코드를 만들어서 사용할 필요가 없다.
이런 기술적인 지원은 개발자에게 있어, 또 일을 진행하는데 있어서 매우 효율적이고 빠른 업무적 퍼포먼스로 연결시켜준다.
우리가 이전에 작성했던 webserver.js의 코드를 보며 모듈이 무엇인지, 어떠한 기능을 하는지를 알아보자.
우리는 이 코드에서 이미 모듈이라는 것을 사용했다.
첫번째 코드의 require()함수는 "무언가를 요구하다"라는 의미이다.
require('http') 이 구문은 "http라는 모듈이 필요하다." 라는 뜻이다.
즉 http라는 모듈을 호출하는 역할을 했고 그 모듈의 리턴되는 내용을 *상수인 http라는 변수에 담았다.
*const = constant의 뜻으로 "변하지 않는다"라는 의미로 변수에 값이 한번 할당이 될 경우 그 후로 변경할 수 없는 특징을 가진다.
일단 코드상의 의미는 여기까지만 이해하고 넘어가보자.
http 모듈은 우리가 알지 못하는 내용들이 잔뜩 있다.
공식 홈페이지를 통해 DOCS를 들어가 API문서를 보자.
현재 자신에 맞는 버전의 API메뉴를 선택하고 들어가자.
API문서를 들어가보면 Node.js가 제공하는 다양한 모듈들이 존재한다.
HTTP를 클릭해보자.
이 HTTP란 모듈에는 다양한 클래스들과 기능들이 존재한다.
우리가 이전 시간에 작성했었던 webserver.js의 http.createServer()함수의 API 문서 내용을 보자.
이 함수는 "http.Server의 새로운 인스턴스를 리턴합니다." 라고 설명되어 있다.
아직까지 설명이 부족한 것 같다.
http.Server 링크를 클릭해보자.
"이 클래스는 net.Server를 상속받고 다음과 같은 추가 이벤트들이 있습니다."
아직까지도 http에 대한 설명이 생소한 것 같다.
net.Server 링크를 클릭해보자.
"이 클래스는 TCP 또는 IPC 서버를 생성하는데 사용됩니다."
드디어 원하는 설명에 도달한 것 같다.
http모듈은 TCP 또는 IPC 서버를 생성해주는 함수인 createServer()를 가지고 있다는 것을 API 공식 문서의 설명을 통해 알 수 있다.
이것을 통해 http모듈의 createServer()를 통해 TCP 서버를 생성하는 것을 알게 됬다.
그럼 이번에는 listen()이라는 함수가 어떤 역할을 하는 것인지 알아보자.
http.Server 클래스를 살펴보면 server.listen()이라는 함수가 존재한다. 이 링크를 클릭해보자.
"연결을 수신하는 HTTP 서버를 시작합니다. 이 메소드는 net.Server의 server.listen()메소드와 동일합니다."라고 설명되어 있다.
이번에는 설명을 잘 해줘서 여기까지만 봐도 괜찮을 것 같다.
즉 http.createServer()함수로 TCP 또는 IPC서버를 생성하고 그것을 server.listen()이라는 함수로 실행한다.
다시 처음으로 돌아가보면 HTTP라는 모듈은 서버를 생성하고, 생성한 서버를 실행시켜 웹 서비스로 연결시켜주는 기능들을 내포하고 있다.
이러한 기능들을 내포하고 있는 것을 모듈이라고 칭하며 모듈은 공식으로 제공하는 모듈이 존재하고 어떠한 개발팀 혹은 개인이 만든 커스텀 모듈이 존재한다.
만약 구현해야할 기능이 있는데 이 기능을 처음부터 차근차근 만들어가는데 시간이 오래 걸리게 된다면 모듈로써 존재하는지를 확인해보자.
대부분 모듈로 존재할 가능성이 크다.
'JavaScript > Node.js' 카테고리의 다른 글
npm 소개 및 사용 방법 (0) 2018.11.19 모듈 사용하기 (0) 2018.11.19 웹 애플리케이션 만들기 (0) 2018.11.19 Node.js 실행하기 (0) 2018.11.19 Node.js 설치하기 (0) 2018.11.19