728x90
1. 오늘 공부한 내용 📝
미들웨어(Middleware)란?
- 요청(Request)과 응답(Response) 중간에 처리되는 함수들
- 요청이 들어오는 매번 실행 될 수 있음
- 특정 요청에만 처리되도록 할 수 있음
- 사실상 express에 들어오는 모든 요청이 미들웨어로 처리된다고 할 수 있음
const express = require('express') const router = express.Router() const app = express() const port = 3000 router.get('/users/:id', (req, res) => { const id = req.params.id; res.send(`User Id : ${id}`) }) app.use("/users", router)
- app.use()를 통해서 미들웨어 연결
- 파라미터를 통해서 특정 URI로 들어온 경우에만 연결할 수 있음
- 경로 파라미터가 없다면 모든 요청에 적용
app.use('/users/:id', (req, res, next) => { const id = req.params.id; console.log(`입력된 id : ${id}`); next(); // 다음 미들웨어로 이동 }); app.get('/users/:id', (req, res) => { const id = req.params.id; res.send(`User Id : ${id}`) })
const express = require("express); const cors = require("cors"); const bodyParser = require("body-parser"); const app = express(); app.use(cors()); // app.use(bodyParser.json)); app.use(express.json()); // 4.16.0 버전부터 body-parser를 포함함
참고) Postman
- GET/POST/PUT/DELETE 같은 호출을 편하게 하기 위한 도구
- JSON으로 변수를 담거나 하기 편함
- 서버를 구성하고, 실제 잘 동작하는지 확인하는 용도
데이터베이스 개념
- 데이터를 통합 관리하기 위한 개념 (데이터를 모아둔 창고)
- 등산할때 쓰이는 베이스캠프에서 이름 유래
- DBMS (DataBase Management System)
- 메모리에 데이터를 올려두는 것이 아니라 파일로 저장
- NoSQL 데이터베이스의 대표 주자
- 유연하고, JSON과 유사한 문서에 데이터를 저장
- 기본적으로 분산 데이터베이스
- NoSQL은 스키마가 없는 것 (=데이터를 유연하게 저장할 수 있음)
- RDB는 정해진 스키마에 따라 명확한 데이터 구조를 보장
- RDB는 테이블 간의 관계를 설정할 수 있음
- NoSQL은 테이블 간의 JOIN이 매우 힘듦
- NoSQL은 서버 scale-up이 간단함 (기본적으로 분산 구조)매우 빠른 처리 속도NoSQL vs RDB?
Mongoose?
-
- Node.js와 MongoDB를 위한 ODM(Object Document Mapping) 라이브러리
- 손쉽게 Node.js에서 MongoDB를 사용할 수 있게 해줌
- ODM : 객체와 문서를 1:1 매칭
- DB를 읽어와서 객체화 시켜줌
- Node.js와 MongoDB를 위한 ODM(Object Document Mapping) 라이브러리
2. 어려웠던 내용 🤯
express는 이전에도 학습하긴 했지만 다시 들으니까 또 새롭다... mongoDB 연결도 잘 안되는거 같다 😢
3. 궁금한 내용 / 부족했던 내용 🧐
express의 전체적인 흐름? 모듈, 미들웨어 개념 + mongoDB(NoSQL)
4. 느낀 점 🤔
백엔드 수업이 계속되고 있는데 난이도가 있고 실시간 강의라서 흐름을 놓치면 따라가기 힘들다.
미리 다음 날 강의를 듣는 것도 괜찮을 것 같다.
'엘리스 SW 엔지니어 트랙' 카테고리의 다른 글
[엘리스 SW 엔지니어 트랙 2기 / TIL] Week 06 - NPM, Node.js, express (0) | 2022.05.18 |
---|---|
[엘리스 SW 엔지니어 트랙 2기 / TIL] Week 05 - 타입스크립트 (0) | 2022.05.18 |
[엘리스 SW 엔지니어 트랙 2기 / TIL] Week 05 - ES6 복습, node.js (0) | 2022.05.09 |
엘리스 SW 엔지니어 트랙 2기 합격 후기 (1) | 2022.03.24 |