일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ucpc 2024 예선 e번
- HTTP
- insomnia
- Express.js
- JavaScript
- localstorage
- branch
- router
- 게임 서버 아키텍처
- ERD
- 자바스크립트
- html5
- 그리디
- 백준 32029번
- 백준 32028번
- ccw 알고리즘
- ucpc 2023 예선 d번
- 백준 28303번
- Github
- 더 흔한 색칠 타일 문제
- MySQL
- map
- pm2
- MongoDB
- ucpc 2023 예선 i번
- PROJECT
- string
- Prisma
- Next
- 지금 자면 꿈을 꾸지만
- Today
- Total
dh_0e
[Node.js] 강의 내용 개념 정리(4) (웹 프레임워크, Express.js, Module) 본문
웹 프레임워크(Web Framework)
- 웹 서비스를 빠르게 구현할 수 있게 도와주는 도구
- 프로그래밍의 특정 부분을 추상화하여, 개발자가 더 높은 수준에서 프로그램을 작성할 수 있게 도와주는 도구
- '틀'이라는 의미로, 개발하는 동안 준수해야하는 규칙과 구조를 제공해줌
- 만약 프레임워크 없이 서버를 구성한다면, 모든 요청 및 응답 처리 로직을 직접 작성해야 하며 시간이 엄청나게 소모됨
일반적인 웹 서버 vs Node.js로 만들 웹 서버
- 모두 웹 서버의 기본적인 역할으 수행하지만 성능이나 확장성, 사용성 등의 면에서 각각의 특징과 차이점이 존재함
- 각각의 웹 서버나 프레임워크만의 특징과 장점을 파악하고 현재 상황에 가장 적합한 도구를 선택하는 것이 중요함
Express.js
- Node.js로 서버를 빠르고 간편하게 만들 수 있게 도와주는 대표적인 웹 프레임워크
- 미들웨어(Middleware)를 지원 >> 사용자의 요청과 응답 사이에 위치하며, 특정 기능을 수행하는 함수로 생각할 수 있음
- Node.js 환경에서 가장 오래 사용되고 사랑받은 웹 프레임워크이므로, 개발자 커뮤니티가 활발함
웹 서버 vs Express.js
- Express.js는 웹 프레임워크이며 웹 서버와 다름
- Express.js는 웹 서버 자체가 아니라, 서버를 구현하는데 도움을 주는 도구. 즉, Node.js를 위한 웹 프레임워크임
사용중인 포트를 찾아서 종료하고 싶을 때
1. cmd 창을 열어서 아래 명령어를 통해 원하는 포트 정보를 찾는다.
netstat -ano | find <"원하는 포트">
2. 해당 포트를 점유하고 있는 PID를 찾아서 종료시킨다.
taskkill /f /pid PID
Module
- JavaScript(특정한 기능을 가진 여러 함수와 변수들의 집합체)를 파일 단위로 분리된 코드 덩어리
- 하나의 모듈에서 다른 모듈을 호출하여 사용할 수 있음
- 그 자체로도 하나의 프로그램이면서 다른 프로그램의 부품으로도 사용할 수 있음
- 보통 1개의 파일이 1개의 모듈이 됨
모듈이 필요한 이유
1. 코드 베이스를 분리할 수 있고, 이를 통해 코드를 구조적으로 관리할 수 있음
2. 코드를 재사용 가능하게 만들어줌. 즉 모듈화(modularize) 됨
3. 코드의 함수와 변수 중 일부만 외부에서 사용하도록 노출시킬 수 있음
>> 모듈 내부의 코드 세부사항을 외부로부터 은닉하는 정보은닉(information hiding)을 구현
4. 해당 모듈이 참조하고 있는 다른 모듈에 대한 종속성(Dependency)을 관리하는 역할을 담당함
CJS(CommonJS): Node.js 환경에서 기본적으로 사용되는 모듈 시스템
- 설정을 따로 추가하지 않으면 Node.js에서는 CommonJS를 기본으로 사용함
- require 함수를 사용하여 다른 모듈을 불러올 수 있음
- require 함수는 경로 혹은 문자열을 가지고 내부 알고리즘을 통해 모듈을 가져오고 종속성을 처리함
ESM(ECMA Script Module): 최신 JavaScript에서 지원하는 모듈 시스템
- 모든 JavaScript 환경에서 통합적인 인터페이스를 제공하기 위해 시작된 체계
- CommonJS와 다르게 정적(Static)으로 모듈을 가져오며 비동기적 모듈 로딩과 순환 종속을 처리함
- TypeScript도 이로 구현됨
Module의 사용 방법
- export 명령어를 변수나 함수 앞에 붙여 외부 모듈에서 접근할 수 있게끔 해줌
- import, require 명령어를 사용하여 외부 모듈의 기능을 가져옴
import - ESM
- 정적 로딩을 지원하며 코드의 최상위에 위치해야 함
- import { import 할 함수 } from "파일 경로";
- 파일 자체 import 시 {} 안 씀
require - CJS
- 동적 로딩을 지원하며 코드의 어디에서든 사용할 수 있음
default: 해당 모듈의 기본값을 선언하는 것
default 키워드는 하나의 모듈에서 한 번만 사용할 수 있음
'내일배움캠프 > Node.js[입문]' 카테고리의 다른 글
[Node.js] 강의 내용 개념 정리(6) (Request, Response) (0) | 2024.05.15 |
---|---|
[Node.js] 강의 내용 개념 정리(5) (API, REST API, Routing, API Client) (0) | 2024.05.15 |
[Node.js] 강의 내용 개념 정리(3) (Package, Package Manager - npm, yarn) (0) | 2024.05.15 |
[Node.js] 강의 내용 개념 정리(2) (Node.js, 논 블로킹 I/O, 싱글 스레드, 이벤트 루프) (0) | 2024.05.14 |
[Node.js] 강의 내용 개념 정리(1) (web, http, browser) (0) | 2024.05.13 |