-
Node.js 프로그래밍 | KOSMOFront-end/개발환경 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 파일 : 컨트롤러
반응형'Front-end > 개발환경' 카테고리의 다른 글
로더 - 웹팩(Webpack) 기본편 | 김정환 (0) 2020.06.04 엔트리/아웃풋 - 웹팩(Webpack) 기본편 | 김정환 (0) 2020.06.02 웹팩이 필요한 이유와 기본 동작 - 웹팩(Webpack) 기본편 | 김정환 (0) 2020.03.19 Node.js에서 Firebase 사용하기 | KOSMO (0) 2020.03.11 프로젝트 생성 -NPM | 김정환 (0) 2020.03.10