
1. package.json 만들기 $ npm init 2. Node와 mysql을 연결해주는 드라이버 다운로드 $ npm i sequelize mysql2 sequelize-cli 3. npx $ npx sequelize init 4. 폴더구조 생성 5. 라이브러리 설치, 개발용 서버 설치(파일 변경 탐지하여 재시작) $ npm i express cookie-parser express-session morgan multer dotenv nunjuncks $ npm i -D nodemon

1) MongoDB NoSQL의 대표주자인 mongoDB 자유로운 데이터 입력 컬렉션 간 JOIN 미지원 확장성, 가용성 용어 차이(컬렉션, 다큐먼트, 필드) 빅데이터, 메시징, 세션 관리 등 비정형 데이터에 사용하면 좋다. MongoDB 연결하기 $ cd C:\Program Files\MongoDB\Server\6.0\bin $ mongod --ipv6 Mongosh(몽고디비셸) 설치 $ cd C:\Users\impri\Downloads\mongosh-1.8.0-win32-x64\mongosh-1.8.0-win32-x64\bin $ mongosh admin 설정하기 $ use admin $ db.createUser({ user: '이름', pwd: '1234', roles: ['root'] }); //..

1) 설치 데이터베이스: 관련성을 가지며 중복이 없는 데이터들의 집합 서버를 재시작하면 데이터도 사라져버리고 영구적으로 저장할 공간이 필요 2) 시퀄라이즈 ORM ORM: Object Relational Mapping, 객체와 데이터를 매핑, 1:1 JS문법으로 데이터베이스 조작 가능 $ npm i express morgan nunjucks sequelize squelize-cli mysql2 //시퀄라이즈 명령어 사용을 위한 cli 설치 $ npm i -D nodemon $ npx sequelize init //시퀄라이즈 구조 생성

1) express 서버 사용해보기 http 모듈로 웹 서버를 만들 때 가독성이 떨어지고 확장성이 떨어짐 프레임워크로 해결 대표적인 것은 express, Koa, Hapi 코드 관리도 용이하고 편의성이 많이 높아짐 package.json 만들기 nodemon이 소스 코드 변경시 서버를 재시작해준다. npm init npm i express npm i -D nodemon app.js: 서버 구동의 핵심 파일 app.set('port', 포트)로 서버가 실행 될 포트 지정 app.get('주소', 라우터)로 GET 요청이 올 때 어떤 동작을 할 지 지정 app.listen('포트', 콜백)으로 몇 번 포트에서 서버를 실행 할 지 지정 2) express로 HTML 서빙하기 app.js: 핵심 서버 스크립트 ..

1) npm Node Package Manager 다른 사람들이 만든 소스 코드들을 모아놓은 저장소 패키지: npm에 업로드 된 노드 모듈 모듈이 다른 모듈을 사용할 수 있듯 패키지도 다른 패키지를 사용할 수 있음 2) package.json으로 패키지 관리하기 현재 프로젝트에 대한 정보와 사용 중인 패키지에 대한 정보를 담은 파일 노드 프로젝트 시작 전 만들고 시작함 (npm init) { "name": "npmtest", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node index" }, "autho..

1. http로 서버 만들기 1) http로 서버 만들기 * 서버와 클라이언트 클라이언트가 request -> 서버는 request를 처리하여 response 2) 노드로 http 서버 만들기 * http 요청에 응답하는 노드 서버 createServer로 요청 이벤트에 대기 req 객체는 요청에 관한 정보가, res 객체는 응답에 관한 정보가 담겨 있다. 3) 8080 포트 연결 * res 메서드로 응답을 보냄 write로 응답 내용을 적고 end로 응답 마무리 http://127.0.0.1:8080에 접속 localhost는 컴퓨터 내부 주소로 외부에서는 접근 불가능 4) 이벤트 리스너 붙이기 2. REST API와 라우팅 1) REST API 서버에 요청을 보낼 때는 주소를 통해 요청의 내용을 표현..
1) url 모듈 기존 노드 방식 WHATWG 방식 https:// user : password @ sub.host.com: 8080 /p/a/t/h ? querstring #hash protocol username password hostname port pathname search hash 2) 단방향 암호화(crypto) 암호문: 평문을 암호로 만듦 복호화: 암호를 평문으로 해독 Hash 사용하기(sha512) 3) util 각종 편의 기능을 모아둔 모듈 deprecated, promisify 4) file system 파일 시스템에 접근하는 모듈 파일/폴더 생성, 삭제, 읽기, 쓰기 가능 웹 브라우저에서는 제한적이었으나 노드는 권한을 가지고 있다. 파일 읽기 예제 5) 동기와 비동기 6) 버퍼와 ..