Front-end/개발환경

Node.js 프로그래밍 | KOSMO

AGAL 2020. 3. 4. 23:41
반응형

1. Node.js 시작하기

# Node.js 특징

- 모듈과 패키지

- 비동기 입출력

- 이벤트 기반 입출력

# pakage.json 설치

> npm init  모듈 설치하기 전에 제일 먼저 설치

 

# 외장 모듈 사용하기

> npm install -g nconf --save  글로벌 경로에 설치 * --save : 생략 가능

> num install nconf --save  현재 폴더 경로에 설치

> npm uninstall nconf  외장모듈 삭제

※ npm install (plugin) --save 와 npm install (plugin) --save-dev의 차이

> npm install (plugin) --save

 - 패키지(plugin)를 ./node_moduels 디렉터리에 설치하고 ./package.json 파일의 dependencies 항목에 플러그인 정보가 저장

 - production 빌드시 해당 플러그인이 포함

> npm install (plugin) --save-dev

 - 패키지(plugin)를 ./node_moduels 디렉터리에 설치하고 ./package.json 파일의 devDependencies 항목에 플러그인 정보가 저장

 - production 빌드시 해당 플러그인이 포함되지 않습니다.

※ 도메인의 구성    * ex) https://search.naver.com/search.naver?sm=top_hty&fbm=0

ㆍurl : 주소    

ㆍ? : 쿼리 스트링

ㆍ& : 구분자

ㆍsm : 파라미터 네임

ㆍtop_hty : 값

 

# npm 버전 맞추기

"dependencies": { "express": "^4.17.1", "mongodb": "^3.3.0-beta2" }

1. package.json 의 버전을 수정 후

2. 'node_modules' 폴더와 'package-lock.json' 파일 삭제

3. cdm 창에서 npm install

4. 수정한 버전에 맞게 재설치

※ 기존 서버측 프로그래밍 언어 : JSP&Suervlet(JAVA 기반), PHP(C언어 비슷), ASP(VB 기반)

※ NodeJs 에서 뷰엔진이 동적 페이지를 설정한다.

- 뷰엔진 : EJS, PUG(Jade), 핸들바 등 ...

- 프론트엔드 프레임워크 : Vue.js, React.js, 백본, Angular (Webpack, Babel, CommonJS 등을 이용한 라이브 러리이다)

# MVC (Model-View-Controller)

ㆍModel : 모델의 상태에 변화가 있을 때 컨트롤러와 뷰에 이를 통보한다. 통보를 통해서 뷰는 최신의 결과를 보여줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 추가·제거·수정할 수 있다.   * 몽고디비

ㆍView : 사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 얻어 온다.    * EJS

​ㆍController :  모델에 명령을 보냄으로써 모델의 상태를 변경할 수 있다. 컨트롤러가 관련된 뷰에 명령을 보냄으로써 모델의 표시 방법을 바꿀 수 있다.   * js파일

 

# 쿠키

 : 클라이언트쪽 웹브라우저가 사용하는 Temp 폴더(컴퓨터)에 저장

 - response 로 보내고 request로 받는다

# 세션

 : 웹 서버에 저장

 - 브라우저 한 개당의 정보를 서버가 체크 (브라우저를 닫으면 사라짐)

 - request로 요청하고 request로 받는다

 - cookie-parser 미들웨어와 함께 사용

# multer 모듈

 : 멀티파트 폼 데이터

 - 음악,이미지 파일을 일반 데이터와 함께 서버로 보내는 표준

 - body-parser 미들웨어를 함께 사용

# cors 모듈

: 크로스 도메인 문제 해결

* 크로스 도메인 문제 : 포트만 달라도 서로 다른 서버라서 요청은 받지만 돌려주지 않는다.

 

※ 예제파일 폴더 구조 설명

ㆍpublic : 클라이언트    ㆍviews : 서버사이드    ㆍ그외 .js 파일 : 컨트롤러

반응형