Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
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
Archives
Today
Total
관리 메뉴

사고쳤어요

모듈, 라이브러리, 프레임워크와 모듈 사용해보기 본문

웹 풀스택

모듈, 라이브러리, 프레임워크와 모듈 사용해보기

kevinmj12 2025. 2. 10. 14:36

모듈이란

모듈이란, 다른 개발자들이 미리 만들어둔 코드 덩어리들로

특정 기능을 구현해야 할 때 직접 구현하지 않고도 가져다 사용할 수 있는 코드 덩어리이다.

예를 들어 python에서 제곱근 기능을 사용하고 싶을 때, 제곱근 함수를 직접 구현할 필요 없이

import math를 작성 후 math.sqrt()함수를 사용하면 손쉽게 제곱근 기을 사용할 수 있다.

 

라이브러리란

라이브러리는 도서관이라는 뜻으로 우리에게 친숙한 단어이다.

도서관에서는 수많은 종류의 책들이 분류되어 있고 원하는 책을 빌려 읽을 수 있는데,

프로그래밍에서의 라이브러리도 이 의미와 비슷하다.

수많은 모듈들이 분류되어 있고 개발자들은 원하는 모듈을 찾아 사용할 수 있는 것이다.

이런 의미에서 모듈과 라이브러리는 비슷한 뜻을 가지고 있다.

 

프레임워크란

프레임워크란, 내가 만들고 싶은 서비스를 구현하는 데 필요한 모든 일을 틀 안에서 진행하는 것이다.

프레임워크 내에는 개발자들이 필요로 하는 다양한 라이브러리(모듈)들을 포함하고 있다.

예를 들어 Node.js를 사용하면, Node.js에 포함되어 있는 자바스크립트 모듈들을 사용할 수 있고 만들 수도 있다.

 

npm

이렇게 프레임워크를 사용하면 프레임워크에서 제공하는 모듈을 사용하여 편리하게 개발을 진행할 수 있다.

하지만 프레임워크는 수많은 종류가 있고 저마다 사용 방법과 설치 방법이 다르다고 걱정할 수 있다.

아주 다행이도, npm이라는 자바스크립트 모듈들을 모아두고 내 작업환경에 설치를 도와주는 친절한 친구가 있다.

 

https://www.npmjs.com/

 

npm | Home

Bring the best of open source to you, your team, and your company Relied upon by more than 17 million developers worldwide, npm is committed to making JavaScript development elegant, productive, and safe. The free npm Registry has become the center of Java

www.npmjs.com

예를 들어 검색어에 figlet이라는 모듈을 검색해보자.

 

figlet은 아스키 코드만으로 글씨, 그림 등을 그려주는 재밌는 모듈이다.

npm 홈페이지에서는 모듈의 사용 방법, 설치 방법, 깃허브 링크 등이 안내되어 있다.

안내되어있는대로 "npm i figlet"명령어를 통해 figlet을 설치해보자.

 

잘 설치가 되었으며, 이제 Quick Start라 안내되어있는대로 코드를 작성해 실행해보자.

모듈 figlet 사용해보기

var figlet = require("figlet");

figlet("Hello World!!", function (err, data) {
  if (err) {
    console.log("Something went wrong...");
    console.dir(err);
    return;
  }
  console.log(data);
});

 

"Hello World!!" 자리에 다른 텍스트를 넣어도 잘 출력되는 것을 볼 수 있다.

 

이제 figlet() 함수를 조금 더 자세히 뜯어보며 콜백 함수에 대해 알아보자.

먼저 figlet() 함수에는 문자열("Hello World!!")와 함수(function()) 두 가지 매개변수가 들어간다. 

 

figlet() 함수는 첫 번째 매개변수 문자열 "Hello World!!"를 받아서,

아스키 아트를 만든 뒤에,

두 번째 매개변수 function(err, data)를 실행한다.

그리고 에러가 발생하면 "Something went wrong..."을, 그렇지 않다면 "data"를 출력한다.

 

이런 매개변수 양식과 처리 과정은 모듈의 제작자가 설정해둔 것이고, 우리는 이 모듈을 사용하기 위해 위 과정을 따라야 한다.

 

모듈 http 사용해보기

Node.js에서 서버를 열 떄 사용되는 http 모듈을 사용해보자.

let http = require("http");

function onRequest(request, response) {
  response.writeHead(200, { "Content-Type": "text/html" });
  response.write("Hello Node.js");
  response.end();
}

http.createServer(onRequest).listen(8888);

 

let http = require("http");를 통해 http 모듈을 사용할 수 있게 되었다.

그런데 figlet과는 다르게 http를 사용할 때는 npm i figlet과 같은 설치과정 없이도 사용할 수 있는데,

이는 figlet은 외부 모듈이고, http는 내부 모듈로 별도의 설치 과정 없이도 내장되어있기 때문이다.

 

npm 자세히 알아보기

이제 외부 모듈을 관리해주는 npm에 대해 조금 더 자세히 알아보자.

npm을 통해 외부 모듈을 설치하면 작업 환경에 새로운 파일이 두 개 생긴 것을 확인할 수 있다.

  • package.json
  • package-lock.json

먼저 package.json의 내용은 다음과 같다.

{
  "dependencies": {
    "figlet": "^1.8.0"
  }
}

아주 간단하게 내가 설치한 외부 모듈들을 나열하여 이름과 버전을 보여주는 것을 알 수 있다.

 

다음으로 package-lock.json을 살펴보자.

{
  "name": "backend",
  "lockfileVersion": 3,
  "requires": true,
  "packages": {
    "": {
      "dependencies": {
        "figlet": "^1.8.0"
      }
    },
    "node_modules/figlet": {
      "version": "1.8.0",
      "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.8.0.tgz",
      "integrity": "sha512-chzvGjd+Sp7KUvPHZv6EXV5Ir3Q7kYNpCr4aHrRW79qFtTefmQZNny+W1pW9kf5zeE6dikku2W50W/wAH2xWgw==",
      "license": "MIT",
      "bin": {
        "figlet": "bin/index.js"
      },
      "engines": {
        "node": ">= 0.4.0"
      }
    }
  }
}

이전과는 다르게 조금 더 많은 내용들이 복잡하게 적혀있다.

package-lock.json은 작업 환경의 이름, 버전, 설치한 모듈, 그리고 그 모듈에 대한 상세한 설명까지 포함하고 있다.

 

이외에도 설치한 모듈을 확인하고 싶을 때 "npm list" 명령어를 통해 확인할 수 있다.

 

그리고 만약 설치했던 모듈을 제거하고 싶다면 "npm uninstall {모듈명}" 명령어를 통해 제거할 수 있다.

 

'웹 풀스택' 카테고리의 다른 글

JSON과 사용법  (1) 2025.02.12
Express 사용해보기  (0) 2025.02.12
Node.js의 특징  (0) 2025.02.10
API, REST API, URL, HTTP Method  (1) 2025.02.07
쇼핑몰 만들기 - HTML, Node.js, MariaDB 연결  (0) 2025.02.05