[Sprint #6-1] Server & Node: Basic

홍영란·2020년 1월 15일
0

Reference

Node.js Tutorial for Beginners | Mosh
Node JS Tutorial for Beginners | Net Ninja
생활코딩: Node.js
poiemaweb: Node.js basic


Server & Node.js

Prerequisite

  • HTTP 요청과 응답에 관하여 알고있다.
  • fetch library를 이용하여 HTTP 요청을 보낼 수 있다.
  • 비동기 함수와 callback 함수에 대해서 알고있고, 잘 사용할 수 있다.
  • CORS에 대하여 이해 하고있고, 처리방법을 알고 있다.

Achievement Goals

  1. Node.js에 대해 이해하고 설명할 수 있다.
  2. Package Manager가 무엇인지 알고, 사용 할 수 있다.
  3. HTTP가(stateless, connectionless, method) 무엇인지 안다.
  4. HTTP server를 실행 시키기 위해 node.js 를 활용 할 수 있다.
  5. CommonJS 패턴을 사용 할 줄 안다.(module.exports)
  6. node modules (fs, http etc)등을 사용 할 줄 안다.
  7. Front-end 개발자를 위한 API 문서를 작성 할 수 있다.
  8. Client에서 Server와 통신 할 수 있다.

Keywords

  1. HTTP

Sprint

Mini Server Sprint

// basic-server.js

if (request.method === 'OPTIONS') {
    // OPTIONS method: 브라우저 보안 이슈로 인해 발생 
    // 어떤 응답을 주어야 하나
  }
  if (request.method === 'POST') {
    if (request.url === '/upper') {
      // 대문자로 만들어서 응답
    } else if (request.url === '/lower') {
      // 소문자로 만들어서 응답
    } else {
      // 잘못 된 요청 이라는 응답
    }
  } else {
    // 잘못 된 요청 이라는 응답
  }

✔︎ keywords


Chatterbox-Server

Guideline

Node.js를 사용해 새로 만들 로컬 서버는 유저가 웹 브라우저에서 접속하고, username를 고르고, 메시지를 보내고, 같은 서버에 접속해있는 모든 유저의 메시지를 읽을 수 있게 해주어야 합니다.

Requirements

  • Nodemon을 활용해서, 서버 application이 자동으로 재시작 될 수 있도록 셋업 하세요.
  • http서버를 시작하기 위해서 NodeJS를 어떻게 사용하는지 학습하고, 어떻게 브라우저에서 서버를 연결 하는지 확인 하세요.(http 서버의 베이스 코드는 server/basic-server.js에 작성 되어 있습니다.)
  • 프론트엔드 개발자를 위한 서버 API 문서를 제작 하세요.
  • 실질적으로 request를 처리하는 로직은 server/request-handler.js에 작성 되어 있습니다. handler를 basic-server에서 활용 할 수 있도록 export와 require를 활용해서 코드를 작성 하세요.
  • chatterbox-client 에서 이미 작성되어있는 코드 중 server URL을 AWS주소가 아닌 나의 로컬 주소(http://52.78.213.9:3000/ 대신에 http://localhost:3000/)로) 로 수정하세요.
  • 모든 JEST 테스트를 통과 하세요
  • yarn or npm install 을 통해서 의존 모듈을 설치 하세요
  • root 디렉토리에서 npm test를 통해서 테스트를 실행하세요.

Package.json

https://docs.npmjs.com/files/package.json

// Create a package.json file
$ npm init

profile
JavaScript를 공부하고 있습니다:)

0개의 댓글