본문 바로가기

개발/프로그래머스 데브코스

프로그래머스 데브코스 12일차 with. TS 웹 풀스택

📚요약

지난 시간에는 백엔드의 구조를 다시 살펴보면서 API에 관한 내용을 살펴봤습니다. 오늘은 HTTP Method를 간단하게 알아보고, Node.js가 나오게 된 목적과 특징을 살펴보겠습니다. 추가로 이전 실습을 진행하면서 나왔던 모듈, 그에 관련된 라이브러리와 프레임워크에 대해 알아보고 Javascript의 let과 const, 템플릿 문자열에 대해 알아보겠습니다.

 

📖HTTP Method

지난 시간 URL과 목적을 알아보면서 간단하게 알아봤습니다. 다시 한번 확인하고 넘어가겠습니다.

  • POST : 새로운 데이터를 등록(생성)한다.
  • GET : 존재하는 데이터를 조회한다.
  • PUT : 기존의 데이터를 덮어쓰기 형식으로 수정한다. 만약 기존의 데이터가 없는 경우 새로운 데이터로 등록(생성)한다.
  • PATCH : 기존 데이터를 부분 수정한다. PUT과의 차이점은 일괄 수정이 아닌 변화한 부분만 수정한다. 예를 들어, 개인 정보 중 일부만 바뀐 경우 바뀐 부분만 수정한다. 하지만 요청 시 까다로운 점이 있어 PUT으로 많이 사용한다.
  • DELETE : 기존 데이터를 삭제한다.
  • HEAD, OPTIONS, CONNECT, TRACE

📖Node.js

Node.js의 경우 stackoverflow 기준으로 웹 프레임워크와 기술 분야 중 42%로 1위를 차지하고 있습니다. Node.js의 홈페이지를 통해 설치할 수 있습니다.

Node.js란? 크로스플랫폼 오픈소스 자바스크립트 런타임 환경

Node.js-위키백과

기존 자바스크립트는 웹 브라우저에서만 사용할 수 있었습니다. 그래서 자바스크립트가 스크립트 언어였습니다. 하지만 V8 자바스크립트 엔진으로 구동되는 Node.js가 나온 이후 웹 브라우저 바깥에서 자바스크립트 코드를 실행 가능하게 되었습니다.

 

📄Node.js의 특징

  • 싱글 스레드(Single Thread) : 한 번에 처리할 수 있는 작업이 하나이다.
  • 이벤트 기반 : 이벤트가 발생해야 작업을 시작한다.
  • 논블로킹 I/O(Non-blocking I/O) : A 작업을 진행하던 중 B 작업을 진행시켜야 하면 A작업이 끝나지 않더라도 기다리지 않고 B 작업이 실행될 수 있도록 하는 방식이다.

내장되어 있는 http 모듈을 이용해 서버를 간단하게 열 수 있다.

 

📖모듈(module)

모듈이란 하나의 덩어리를 의미합니다. 어떤 덩어리인가? 하나 이상의 루틴(함수)을 가지고 있는 프로그램의 일부 또는 소프트웨어 구성요소 덩어리입니다. 실제 기업 수준의 소프트웨어 앱에서는 다양한 모듈이 포함되어 있고, 각 모듈들은 유니크하고 분리된 비즈니스 기술입니다. 예시를 들면 앞서 나왔던 http 모듈을 보겠습니다. http 모듈을 사용하면 서버를 열 수 있습니다. 또한 해당 기능을 위한 여러 함수들이 존재합니다. 이와 같이 한 주제(기능)에 따라 묶여 있는 덩어리를 모듈이라고 합니다.

 

모듈은 Node.js에 설치될 때 포함되어 있는 http 모듈과 같은 '내장 모듈'이 있고, 다른 개발자들이 편리하게 사용하기 위해 개발해 놓은 '외부 모듈'들이 있습니다. 내장 모듈은 이름만 알면 사용할 수 있습니다. 그렇다면 외부 모듈은 어떻게 사용할 수 있을까요?

 

📄외부 모듈 가져오기

이미 실습을 통해 외부 모듈을 가져온 적이 있습니다. 10일차에 npm을 이용해 mysql을 설치해서 사용했습니다. 이때 mysql이 외부 모듈입니다. 다른 개발자가 데이터베이스를 조작하기 위해 mysql과 연동할 수 있도록 만들어 놓은 모듈입니다.

 

📄npm

그렇다면 이 외부 모듈을 설치시켜 준 npm은 무엇일까요?

npm이란? node package manager의 약자로 Node.js의 기본 패키지 관리자

npm-위키백과

npm을 통해 모듈을 설치하게 되면 생기는 package.json을 보면 dependencies라고 적힌 부분에 설치한 모듈의 이름과 버전이 나와있습니다. package-lock.json은 해당 모듈을 설치하기 위해 필요한 주소와 버전 등의 정보가 기록되어 있습니다. node_modules에는 필요한 모듈들이 설치되어 있습니다. 이 모듈을 설치하고 사용하기 위한 파일, 폴더, 버전 등을 관리해 주는 것이 바로 패키지 관리자인 npm입니다. npm은 기본 Node.js를 설치할 때 같이 설치되기 때문에 따로 설치는 필요하지 않고, 필요한 모듈을 찾는 경우 npm 홈페이지에서 찾아볼 수 있습니다.

🍯tip! 모듈은 기본적으로 크기가 크기 때문에 필요 없는 모듈은 제거하는 것이 좋습니다.

 

npm 기본 명령어

  • npm -v : 설치된 npm의 버전 확인 명령어
  • npm install 모듈명 / npm i 모듈명 : 해당 모듈 설치 명령어
  • npm uninstall 모듈명 : 해당 모듈 삭제 명령어

연습을 위해 설치해 보면 재미있는 모듈은 figlet(아스키코드로 만든 아트), is-odd(홀수 구분) 등이 있습니다.

 

npm 외에도 yarn, npmd 등 다른 패키지 관리자도 있습니다.

 

📖라이브러리(Library) vs 프레임워크(Framework)

모듈에 대해 찾다보면 라이브러리라는 단어를 볼 수 있습니다. 라이브러리를 공부하다 보면 프레임워크를 볼 수 있는데 간단하게 알아보겠습니다.

Library란? 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원(미리 작성된 코드, 함수, 클래스, 값, 자료형)의 모임

라이브러리-위키백과

Framework란? 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 구조. 구조를 구현하는 클래스와 라이브러리 모임. 개발 보조용.

소프트웨어 프레임워크, 애플리케이션 프레임워크, 웹 프레임워크-위키백과

 

라이브러리와 프레임워크는 모두 개발하는데 시간을 줄여줍니다. 다른 사람들이 개발한 코드라는 것도 공통점입니다. 라이브러리의 경우 개발자가 필요한 경우 설치(외부)하거나 호출(내부)해서 능동적으로 사용할 수 있습니다. 프레임워크는 라이브러리와 다르게 정해진 사용법이 있어 수동적입니다. 사용해 보아야 확실히 느끼겠지만 현실에 있는 예를 들고 넘어가겠습니다. 라이브러리는 연장과 같아서 잘 이용하면 멋진 집을 만들 수 있습니다. 하지만 프레임워크의 경우 만들어진 집을 이용하는 것과 같은 느낌입니다.

 

다음 시간에 계속...

 

출처 & 참고

김소아 강사님의 강의

Module, Margaret Rouse, 2024.04.23