BackEnd (39) 썸네일형 리스트형 [노드교과서] 섹션 10. 11장 테스트 해보기(단위, 통합, 부하) 테스트 준비하기 ⇒ 테스트에 필요한 패키지는 jest이다. 이 패키지는 페이스북에서 만든 오픈 소스로 테스팅에 필요한 툴들을 갖추고 있어 편리하다. - 테스트 파일이 될 대상은 파일명에 index.spec.js, index.test.js 가 들어가야 한다. - npm 개발자모드로 설치 $ npm i -D jest - pakage.json에 실행 스크립트 수정 // package.json { ... "scripts" : { "start" : "nodemon app", "test" : "ject", }, ... } - test 실행하기 $ npm test 11.2 단위(유닛) 테스트 해보기 ⇒ 테스트 틀을 잡고 describe로 테스트를 그룹화하여 관리하자. - middlewares 단위 테스트 // mid.. 섹션 9. 10장 API 서버 만들기(JWT, CORS) 10.1 API서버 이해하기 ⇒ API : Application Programing Interface - 다른 애플리케잇현에서 현재 프로그램의 기능을 사용할 수 있게 허용하는 접점을 의미한다. - 웹 API는 다른 웹 서비스의 기능을 사용하거나 자원을 가져올 수 있는 창구이다. - 다른 사람에게 제공하고 싶은 부분만 API로 허용하고, 제공하고 싶지 않은 부분은 제외한다. - API에 제한을 걸어 일정 횟수, 시간 내에서만 권한허용이 가능하다. 10.2 API 서버 프로젝트 구성하기 1. lecture-api 프로젝트 // middlewares/index.js // 토큰 유효성 검증 미들웨어 exports.verifyToken = (req, res, next) => { try { // api 사용자가 토.. [노드교과서] 섹션 9. 노드버드 SNS 만들기 9.1 프로젝트 구조 갖추기 1. NodeBird SNS 서비스 ⇒ 기능 : 로그인, 이미지 업로드, 게시글 작성, 해시태그 검색, 팔로잉 - express-generator 대신 직접 구조를 갖춘다. - 프런트엔드 코드보다 노드 라우터 중심으로 학습을 진행한다. - 관계형 데이터베이스 MySQL을 사용한다. 2. 프로젝트 시작하기 ⇒ nodebird 폴터를 생성 후 npm init을 통해 package.json 파일을 생성한다. ⇒ 시퀄라이즈 폴더 구조를 생성한다. $ npm i sequelize mysql2 sequelize-cli // 글로벌 설치를 안하고 디펜던시에서 찾아서 설치를 하려면 npx를 붙여 입력해야한다. $ npx sequelize init 3. 폴더 구조 설정 ⇒ views(템플릿 .. [노드교과서] 섹션 7. MongoDB 8.1 NoSQL vs SQL ⇒ NoSQL의 대표주자인 mongoDB(몽고디비) 사용 SQL(MySQL) NoSQL 규칙에 맞는 데이터 입력 자유로운 데이터 입력 안정성, 일관성 확장성, 가용성 테이블 간 JOIN 지원 테이블 간 JOIN 미지원 용어(테이블, 컬럼, 로우) 용어(컬렉션, 필드, 다큐먼트) - JOIN : 관계가 있는 테이블끼리 데이터를 합치는 기능이다. (몽고디비는 aggregate로 흉내는 가능하다) - 빅데이터, 메시징, 세션관리 등(비정형데이터)에는 몽고디비를 사용하면 좋다. 8.2 데이터베이스와 컬렉션 만들기 1. 데이터베이스 생성하기 admin> use nodejs; switched to db nodejs nodejs> show dbs; admin 132.00 KiB conf.. [노드교과서] 섹션 6. 데이터베이스 7.1 데이터베이스 1. 데이터베이스란 >> 메모리가 아닌 데이터를 영구적으로 저장할 수 있는 공간 >> MySQL 관계형 데이터베이스 사용 - 데이터베이스 : 관련성을 가지며 중복이 없는 데이터들의 집합이다. - DBMS : 데이터베이스를 관리하는 시스템 - RDBMS : 관계형 데이터베이스를 관리하는 시스템 - 서버의 하드디스크, SSD 등 저장 매체에 데이터들을 저장 - 서버 종료 여부와 관계없이 데이터를 계속 사용 가능하다. - 동시접속, 권한관리가 가능하다. 7.3 데이터베이스, 테이블 생성하기 1. 데이터베이스(스키마) 생성하기 >> 콘솔에서 Mysql 프롬프트에 접속 - create schema nodejs; 로 nodejs 데이터베이스(스키마) 생성 - use node;로 생성한 데이터베이.. [노드교과서] 섹션5. 익스프레스 웹 서버 만들기 6.1 익스프레스 프로젝트 시작하기 1. 익스프레스 소개 ⇒ http 모듈로 웹 서버를 만들 때 코드가 보기 좋지 않고, 확장성도 떨어진다. - 프레임워크로 해결하며 대표적으로 Express(익스프레스), Koa(코아), Hapi(하피) 가 있다. - 코드관리도 용이하고 편의성도 많이 좋아진다. Express점유율이 가장 높다. 2. package.json 만들기 ⇒ npm init 명령어를 통한 package 생성 - 'npm init' 명령어로 기본골격을 만든 후 'npm i express', 'npm i nodemon -D' 패키지를 설치 3. app.js 작성하기 const express = require('express'); const path = require('path'); // 앱 객체를 .. [노드교과서] 섹션 3. http 모듈로 서버 만들기. 섹션 4. 패키지 매니저 4.1. 요청과 응답 실행하기 1. 서버와 클라이언트 ⇒ 서버와 클라이언트의 관계 - 클라이언트가 서버로 요청(request)를 보내면 서버는 해당 요청을 처리한다. - 처리된 결과를 서버가 클라이언트로 응답(response)을 보낸다. 2. 노드로 http 서버 만들기 ⇒ http 요청에 응답하는 노드 서버 - createServer로 요청 이벤트에 대기 - req 객체는 요청에 관한 정보를 담고 있고, res 객체는 응답에 관한 정보를 담고있다. 1) http 서버 만들기 // server1.js const http : require('http'); const server = http.createServer((req,res) => { // res는 스트림이다. // response의 header정보를.. [노드교과서] 섹션 2. 노드 기본 기능 익히기 REPL ⇒ 자바스크립트는 스크립트 언어라 즉석에서 코드 실행이 가능하다. - REPL이란 입력된 명령어를 읽어(Read) 평가하고(Eval) 평가한 결과를 출력(Print) 후 다시 명령어 입력을 과정을 반복(Loop)하는 과정을 의미한다. - 윈도우의 명령 프롬프트 / 맥 or 리눅스의 터미널에 node 입력 등 ex) node console에서 REPL의 과정의 예 > const str = 'Hello node'; undefined > console.log(str); 'Hello node' undefined ex2) 윈도우 명령 프롬프트에서 js파일을 실행시키는 예시 Microsoft Windows [Version 10.0.19045.3693] (c) Microsoft Corporation. All.. 이전 1 2 3 4 5 다음