server
-
Server MVC 패턴으로 분류하기Project/실시간 채팅 앱 2022. 9. 25. 17:12
express로 구현한 서버를 Model, View, Controller로 나누었다. 바로 코드를 살펴보자 View쪽을 담당하는 router.js이다. 기존 코드보다 가독성이 굉장히 향상된 모습이다. 각 요청에 따른 함수 이름역시 가독성을 높여주는데 큰 역할을 한다. Model을 담당하는 Data쪽이다. 메모리에서 실제 listsfksms Data를 가지고 있고, Controller에서 전달된 요청에 따라 해당 기능을 수행하고 Data를 Return해준다. 마지막으로 Controller측이다. Data측에 요청을 보내고 응답을 담당한다. MVC패턴으로 분류해놓고 나니 확실히 가독성이 올라가고 나중에 에러가 발생하면 어느 부분에서 발생하는지 바로 알 수 있을 것 같다. 기존에 작성되었던 코드들도 나름 깔끔..
-
Back-end 스키마(Schema) 셋업하기Project/실시간 채팅 앱 2022. 9. 20. 17:58
스키마(Schema)란 무엇일까? 사전적 의미로는 "데이터베이스의 구조와 제약조건에 관한 전반적인 명세"를 뜻한다. 쉽게 말하면 DB에 어떤 구조로 데이터에 저장되는지를 나타내는 데이터베이스 구조를 스키마라고한다. 지금 내가 설계하고 있는 웹서비스에서 필요한 데이터는 User DB와 Chat DB이렇게 두 개이다. 그리고 서버와 통신할 때 내가 필요한 기능을 나열해보자면 아래와 같다. - 회원가입 // POST(/auth/signup) - 로그인, 아웃 // POST(/auth/login) - 토큰 확인하기 // GET(/auth/me) - 채팅목록 불러오기 // GET(/chat-list) - 선택한 채팅방 내 메세지 불러오기 // GET(/chat-list:idx/msgs) - 선택한 채팅방으로 메세..
-
Node로 JSON 주고받기 - CodeHan의 코딩공부BackEnd/개념정리 2022. 9. 11. 13:09
이번엔 Node로 .json파일을 주고 받아보자. 이것 역시 크게 어렵지 않다. request와 response만 이해했다면 바로 할 수 있다. const fs = require('fs'); const http = require('http'); const server = http.createServer((req,res) => { const url = req.url; const method = req.method; if(url === '/courses') { if(method === 'GET') { res.writeHead(200, {'Content-Type' : 'Application/json'}) res.end(JSON.stringify(course)) } else if(method === 'POST'..
-
Node로 서버 시작하기 - CodeHan의 코딩공부BackEnd/개념정리 2022. 9. 11. 09:48
Node로 바로 서버를 만들어서 실행하는 방법을 알아보겠다. 우선 vscode나 본인이 사용하는 CodeEditer를 켠다. const fs = require('fs'); const http = require('http'); const server= http.createServer((req,res) => { const url = req.url; res.setHeader('Content-Type', 'text/html'); if(url=== '/') { const read = fs.createReadStream('./html/index.html'); read.pipe(res); } else if (url === '/course') { const read = fs.createReadStream('./html..