노드교과서 (11) 썸네일형 리스트형 [노드교과서] 섹션 14. 15장 AWS에 배포해보기 15.1 서비스 운영을 위한 패키지 1. 실 서비스 배포 준비하기 ⇒ 서비스 개발 후 외부환경인 AWS에 배포준비 과정을 정리 - 서버 실행 관리, 에러 내역관리, 보안 위협 대처 2. morgan ⇒ 개발용으로 설정된 익스프레스 미들웨어를 배포용으로 전환한다. - process.env.NODE_ENV를 통해 배포환경인지 배포환경인지를 판단 - 배포 환경일 때는 combined를 사용한다(dev보다 더 많은 사용자 정보를 남김)if (process.env.NODE_ENV === 'production') { app.use(morgan('combined'));} else { app.use(morgan('dev'));} 3. express-session ⇒ 기존 설정들을 배포용과 개발용으로 분.. [노드교과서] 섹션 13. 14장 CLI 프로그램 만들기 14.1 간단한 콘솔 명령어 만들기 1. CLI ⇒ CLI(Command Line Interface) 기반 노드 프로그램을 제작해보기 - 콘솔 창을 통해 프로그램을 수행하는 환경을 구현하며 반대 개념은 GUI(그래픽 유저 인터페이스)이다. - 리눅스의 셸이나 브라우저 콘솔, 명령 프롬프트 등이 대표적인 CLI 방식 소프트웨어이다. 2. 콘솔 명령어 ⇒ 노드 파일을 실행할 때 node[파일명] 명령어를 콘솔에 입력한다. - node나 npm, nodemon처럼 콘솔에서 입력해 어떠한 동작을 수행하는 명령어를 콘솔 명령어라고 한다. - nodemon, rimraf같인 명렁어는 npm i -g 옵션으로 설치하면 명령어로 사용이 가능하다. - 패키지 명과 콘솔 명령어를 다르게 만들 수도 있.. [노드교과서] 섹션 12. 13장 실시간 경매 시스템 만들기(서버센트이벤트, 스케줄링) 13.1 프로젝트 구조 갖추기 13.2 서버센트 이벤트 사용하기 ⇒ npm install $ npm i sse socket.io 13.2.1-1. Server-Sent Events (SSE) 서버센트 이벤트란? ⇒ SSE는 서버의 데이터를 클라이언트로 스트리밍하는 기술이다. 웹 표준이며 단방향 통신만을 지원한다. 또한 IE를 제외한 모든 브라우저에서 지원된다. IE를 통한 지원을 하려면 ployfill을 통해 지원이 가능하다. - 기존 서버에서 변경된 데이터를 불러오기 위해선 새로고침이나 ajax 폴링, 외부 플러그인을 이용해야 했다. - 이외에 websocket을 사용할 수 있지만 별도의 서버와 프로토콜로 통신되기 때문에 비용이 많이 든다. - SSE는 기존 HTTP 웹 서버에서 HTTP API만으로 .. [노드교과서] 섹션 11. 12장 실시간 GIF 채팅방 만들기(웹소켓, Socket.IO) 12.1 웹 소켓 이해하기 1. 웹소켓 이해하기 ⇒ 웹 소켓 : 실시간 양방향 데이터 전송을 위한 기술이다. - ws 프로토콜 사용 → 브라우저가 지원해야 사용할 수 있다. - 최신 브라우저는 대부분 웹 소켓을 지원한다. - 노드는 ws나 Socket.IO같은 패키지를 통해 웹 소켓을 사용할 수 있다. ⇒ 웹 소켓 이전에는 폴링이라는 방식을 사용했다. - HTTP가 클라이언트에서 서버로만 요청이 가기 때문에 주기적으로 서버에 요청을 보내 업데이트가 있는지 확인했다. - 웹 소켓은 연결도 한 번만 맺으면 되고, HTTP와 포트 공유가 가능하며, 성능도 좋은 편이다. 2. 서버센트 이벤트 ⇒ SSE(Server Sent Events) - EventSource라는 객체를 사용한.. [노드교과서] 섹션 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 사용자가 토.. [노드교과서] 섹션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정보를.. 이전 1 2 다음