노드 : 자바스크립트를 실행해주는 실행기
노드가 제공하는 http 서버가 있으나 편하게 서버 개발을 하기 위해서
노드 위에 백엔드용 서버 프레임워크를 하나 올려서 사용한다.
(리액트 위에 넥스트를 하나 올려서 사용하는 것과 같은 개념)
이 강의에서는 그 서버 프레임워크를 EXPRESS로 선택했다.
npm i express - http 요청을 받아서 응답을 하는 서버 역할
npm i axios - http 요청 받을 때 사용
npm i bcrypt - 비밀번호 암호화할 때 사용
(npm i bcrypt@3.0.6)
npm i cookie-parser - 로그인할때 쿠키랑 세션을 사용해서 필요
npm i express-session - 쿠키랑 함께 로그인했을 때 정보를 저장하기 위한 세션
npm i dotenv - 환경변수
npm i cors - 서버랑 프론트랑 주소가 달라 서로간에 요청을 보낼 때 보안 때문에 제약이 걸리는데 그 제약을 풀어주는 것
npm i helmet hpp - 노드와 익스프레스의 보안 담당
npm i morgan - 서버에 로그를 남겨주는 것 (어떤 응답이 보냈다)
npm i multer - 이미지 업로드할 때 사용
npm i passport passport-local - 로그인 관리를 쉽게 처리할 수 있게 도와주는 패키지
npm i sequelize sequelize-cli - MYSQL 관련으로 ORM(Object-Relational Mapping) 이라고 하며, SQL문이랑 자바스크립트랑 연결해줌
npm i -D eslint eslint-config-airbnb
npm i -D eslint-plugin-jsx-a11y
npm i -D nodemon - 서버에서 바뀐 부분을 감지해서 알아서 서버를 껐다 켜줌
npm i express npm i axios npm i bcrypt@3.0.6 npm i cookie-parser npm i express-session npm i dotenv npm i cors npm i helmet hpp npm i morgan npm i multer npm i passport passport-local npm i sequelize sequelize-cli npm i -D nodemon npm i -D eslint
eslint-config-airbnb npm i -D eslint-plugin-jsx-a11y
"scripts": {
"dev": "nodemon"
},
nodemon.json 파일 생성
{
"watch" : [
"index.js",
"routes",
"config",
"passport",
"models",
"nodemon.json"
],
// 변경 사항 주시할 파일 및 폴더
"exec" : "node index.js",
// 노드몬 실행 명령어
"ext" : "js json"
}
REpresentational State Transfer의 약자로
"웹에 존재하는 모든 자원(이미지, 동영상, DB 등...)에 고유한 URL을 부여해 활용하는 것"을 의미한다.
sequelize 란?
ORM(Object-relational Mapping)으로 분류, ORM은 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구이다.
만들어진 폴더 수정 사항
-> 자바스크립트로 db를 컨트롤 할 수 있게 된다.