[데브코스 TIL] 4주차 Day 2 / Node.js와 NPM - 웹 풀 사이클 데브코스 TIL

김진환·2023년 12월 5일
1

'23.12.05(화) 웹 풀 사이클 데브코스 TIL

Node.js의 특징

Node.js는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 자바스크립트를 활용하며 논블로킹(Non-blocking) I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다. - 위키백과

JS는 기존에 웹 브라우저에 의존하여 사용할 수 있는 웹을 위한 스크립트 언어였으나,
Node.js 라는 플랫폼이 등장하면서 웹 브라우저 외 환경에서 JS를 실행할 수 있게 되었고, 독립적인 프로그래밍 언어의 입지를 가지게 되었다.

Node.js의 특징은 크게 3가지가 있다.

  • 싱글스레드
    -> CPU의 코어 당 하나의 순차적인 흐름으로 Task를 수행
  1. 음식점에 한 명의 요리사가 일을 함
  2. 주문이 들어오면 음식을 만들고, 다른 주문은 앞 주문이 끝날 때까지 대기
  3. 앞 주문이 끝나면 다음 주문을 처리하고 주문이 없으면 쉼

-> 한 명이 순차적으로만 작업을 처리한다면 비효율적일 것
-> 논블로킹 I/O 방식으로 보완

  • 논블로킹I/O
    -> I/O를 시작하자마자 함수를 리턴해 I/O작업 실행의 성공여부를 확인하고 다음 Task를 수행
    -> 라면과 볶음밥 주문이 들어왔을 때 라면 물을 끓이는 동안 밥을 볶아냄
    -> 앞 주문이 끝나는 것을 기다리지 않고 다음 작업을 실행해 비효율성을 극복

  • 이벤트 기반
    -> 특정 이벤트가 발생할 때 지정해 둔 콜백 함수를 실행
    -> 볶음밥 주문이 들어오면 준비해둔 재료로 레시피에 맞게 조리

NPM

라이브러리 vs 프레임워크

라이브러리는 특정 기능 수행을 위해 만들어진 모듈을 말하며,
사용자가 직접 원하는 기능을 찾아 사용할 수 있다.

프레임워크는 개발자들이 소프트웨어를 개발하는 데 사용되는 구조를 제공한다.
특정 목적을 위해 여러 컴포넌트와 라이브러리를 제공하는 구조를 의미한다.

React.js 는 반응형 웹 FE 개발을 목적으로 개발을 위해 다양한 라이브러리와 환경을 제공하는 "구조"이고, React 내에 Router 기능을 위한 라이브러리를 사용할 수 있다.

라이브러리는 여러 개발자가 공유해 사용할 수 있는 코드 모음이고,
프레임워크는 개발환경을 만들기 위한 라이브러리들과 규칙들을 통해 만들어진 구조이다.

NPM

NPM(Node Package Manager)

JS 라이브러리를 포함한 패키지들을 관리하는 도구이다.
https://www.npmjs.com/

NPM 웹 사이트에서 라이브러리들을 찾아볼 수 있으며,
npm 명령어로 node 환경에서 라이브러리들을 프로젝트에 바로 적용할 수 있다.

회고

라이브러리, 모듈, 패키지, 프레임워크 등
비슷하지만 아리송했던 단어들의 의미관계를 알 수 있는 시간이었다.

NPM에 간단한 것부터 복잡한 다양한 라이브러리들이 있는데,
개발 커리어를 쌓으면서 직접 나만의 NPM 라이브러리를 만들어 공유해보고 싶다.

profile
개발자라는 틀에 얽매이지 않는 성장

0개의 댓글