▶ Node.js
-Chrome V8 Javascipt 엔진으로 빌드된 JavaScript 런타임
-Javascript로 브라우저 밖에서 서버 구축 등 다양한 코드를 실행할 수 있다.
-내장 HTTP 서버 라이브러리를 포함하고 있어, 웹 서버에서 아파치 등 별도의 소프트웨어 없이 동작하는 것이 가능하다.
-방대한 모듈(npm)들이 존재한다.
Javascript를 서버에서도 사용할 수 있도록 만든 프로그램 (스크립트 언어 x, 프로그램 환경임)
웹서버와 같이 확장성 있는 네트워크 프로그램을 제작하기 위해 만들어졌음
웹 서버에서 아파치 등의 별도 소프트웨어 없이 동작하는 것이 가능
장점:
자바스크립트를 동일하게 사용해서 서버단 로직을 처리할 수 있음
새로운 언어 습득 X, 자바스크립트를 활용해서 서버기술 개발,응용 가능
이벤트 기반 비동기방식이라 서버 무리 적음
Npm 을 통한 다양한 모듈 제공
단점:
이벤트 기반 비동기방식이라 서버단 로직이 복잡한 경우 콜백함수 발생 가능
(콜백함수 – 다른 함수의 인자로써 넘겨진 후 특정 이벤트에 의해 호출되는 함수)
코드를 순차적으로 실행 X, 비동기 방식으로 이벤트 보내고, 응답이 오면 처리
→ JAVA 개발을 했던 방식으로 설계
단일 쓰레드이기 때문에 하나의 작업 자체가 많이 걸리는 웹서비스에는 어울리지 않음
(게시판 같은 I/O가 많은 웹서비스 GOOD)
▶NPM (node package manager)
-자바스크립트 패키지 매니저
-Node.js에서 사용할 수 있는 모듈들을 패키지화하여 모아둔 저장소
-패키지 설치 및 관리를 위한 CLI 를 제공한다.
-각각의 모듈들은 npm 공식 홈페이지에서 찾을 수 있으며, 모듈마다 다운로드부터 사용방법까지 자세히 나와있다.
Npm 웹사이트 : 패키지를 찾을 수 있음 npm<패키지 이름> 검색시 해당 패키지의 저장소 페이지가 나옴
Package – npm에 배포한 코드를 말함 ex. Angular, react
CLI(Command Line Interface) : 터미널에서 cli 작동 가능
저장소 : 패키지들을 모아놓은 공개 저장소가 존재함. 계정 업그레이드 시 비공개 저장소도 사용 가능
<NPM을 사용한 Node Project>
-package.json : 어떤 모듈이 어떤 버전으로 깔렸는지, 버전 명시 파일
-package-lockjson : package.json 으로는 부족한 정보를 도와주는 파일. 정확한 버전이 명시되어져있다.
명령어
|
설명
|
npm init
|
package 초기설정 -> package.json 파일이 생성된다.
|
npm start
|
start로 설정한 js 파일 node로 실행
|
npm install [패키지 명]
|
외부 패키지 설치
|
npm update
|
설치한 패키지들 업데이트
|
npm uninstall [패키지 명]
|
패키지 삭제
|
▶Express
-Express 는 Node.js 를 위한 웹 프레임워크 중 하나
-Node.js 의 사실상 표준 서버 프레임워크
▶EJS 템플릿 엔진 (Embedded JavaScript)
-자바스크립트가 내장되어 있는 html 파일
-html 태그처럼 자바스크립트 내용을 삽입할 수 있음
-서버에서 보낸 변수를 가져와 사용할 수 있어 페이지를 동적으로 구현 가능.
-npm install ejs
문법
|
설명
|
<% %>
|
흐름 제어문 ex) <% if(list %>
|
<%= %>
|
변수 값
|
<%- include(‘view의 상대주소‘) %>
|
다른 view 파일을 불러옴
|
+사담
진짜 php와 html 만을 사용하다가 갑자기 node.js 로 넘어와 처음 배웠을 때의 그 감정이 아직도 생생하다. 내가 제대로 이해하는 게 맞는 건지 매번 의문이 들었고 구글링을 해도 모르는 용어 투성이였다. 그만큼 node.js는 web 부분에서 삽질을 가장 많이 하고 혼자서 공부도 가장 많이 했던 부분이다.
npm과 express 를 머릿속에 이해하는 데에도 시간이 오래 걸렸고 전체적으로 node.js를 구동시키고 코드를 작성하는 기본 부분에서도 정말정말 오래 걸렸다. 이해하는 데에도 시간이 많이 걸렸지만 방명록은 한달 이상 계속 붙잡으면서 만들었던 것 같다. 적어도 2주 동안은 하루에서 절반 이상은 방명록을 붙잡고 실습했던 기억이 난다 ㅜㅜ
'WEB > Node.js' 카테고리의 다른 글
스마트 출석부 구현 (Node.js) (0) | 2023.02.16 |
---|---|
Node.js 파일 업로드 & 다운로드 (0) | 2022.12.29 |
Node.js 방명록 제작 (1) | 2022.12.26 |
Node.js와 MySQL 연동 (express 사용) (0) | 2022.12.26 |
Node.js로 웹페이지 생성(express 사용) (0) | 2022.12.26 |