항해99/WIL

4주차 WIL

공대루루 2023. 3. 5. 20:52

😊이번 주 알게된 것😊

Express 미들웨어 

: 미들웨어는 HTTP요청과 응답을 처리하거나, 다음 미들웨어를 실행할 수 있다. 미들웨어는 HTTP 요청이 들어온 순간부터 순차적으로 시작되며 모든 요청/응답에 대해 공통적인 관리를 할 수 있게 해준다. 예를들어 어떤 작업을 할 때마다 로그를 남기고 싶으면 로그를 남기는 미들웨어를 작성해서 작업의 앞에 삽입해주면 된다. 

req, res. next를 인자로 가진 함수는 미들웨어로 동작한다. req는 요청, res는 응답, next는 다음 미들웨어를 실행하는 함수이다. next() 함수를 호출하지 않으면 미들웨어 사이클이 멈춘다. 

미들웨어 종류

어플리케이션 미들웨어

app.use 나 app.METHOD() 함수를 이용해서 미들웨어를 연결한다. 미들웨어를 모든 요청에 공통적으로 적용하기 위한 방법이다. app.use(미들웨어)를 사용하면 모든 요청에서 해당 미들웨어가 실행되고 주소를 넣는다면 해당하는 요청에서만 실행된다. 

라우터 미들웨어

특정 경로의 라우팅에만 미들웨어를 적용하기 위한 방법이다. app 객체에 라우터가 적용된 이후로 순서대로 동작한다.

에러 핸들링 미들웨어

에러 핸들링을 위한 미들웨어이며 일반적으로 가장 마지막에 위치한다. err, req, res, next 네가지의 인자를 가지며, 앞선 미들웨어에서 next 함수에 해당 인자가 next(new Error()) 이런식으로 전달되면 실행된다. 첫번째 인자인 err에는 에러에 관한 정보가 담겨있다. 

RESTful

REST API를 제공하는 웹서비스를 RESTful 하다고 한다. RESTful한 API를 구현하는 근본적인 목적은 성능 향상에 있는것이 아니라 일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것이다. 

REST

서버의 자원을 정의하고 자원에 대한 주소를 지정하는 방법이다. 여기서 자원은 서버가 행할 수 있는 것들을 통틀어서 의미한다. REST는 주소와 메서드만 보고 요청의 내용을 어느정도 알아볼 수 있다는 것이 장점이다.  

🤩 다음 주 목표🤩

  • JWT가 무엇인지 이해하고 Cookie및 Session을 구현할 수 있다.
  • MySQL에서 테이블간의 관계가 무엇인지 이해하고 설계할 수 있다.
  • Mygration 및 Model 파일들이 어떤 역할을 갖는지 이해할 수 있다.
  • Sequelize 로 CRUD를 구현할 때 적절한 메소드를 사용해서 코드로 구현할 수 있다.
  • Lv 2 과제 빨리 완료하고 Lv 3 과제까지 완료해보기!!!
  • git 사용 꾸준히 하면서 과제 버전 관리 하기

😮지난 주 목표 달성 여부😮

1. node.js 기본기 다시 공부하기 : 예전에 들었던 강의들 다시 들으면서 이해했다 👍

2. 과제 스케줄 맞춰서 진행하기 : 정해진 과제 스케줄에 아슬아슬하지만 잘 맞춰서 진행했다 👍

하지만 DB 구성이 조금 아쉬웠다.. 쉬운 방법을 찾아서 했다고 생각했는데 비관계형 데이터베이스를 사용하면서 관계형 데이터베이스처럼 구성한게 비관계형 데이터베이스만의 특성을 잘 살리지 못한 것 같다. 다음 과제는 비관계형 데이터베이스와 관계형 데이터베이스를 모두 사용할 예정이니까 둘다 특성을 잘 살려서 사용해보고 다른 점을 확실하게 터특해보면 좋을 것 같다!!! 

3. 터미널로 git 관리하면서 과제하기 : 터미널로 git 등록하고 관리하는 것 까지 완료했다 👍

+ Class와 클로저 등 지난 주에 못 본 자바스크립트 기본 문법 공부하기 : Node.js 공부랑 과제하느라 시간이 없었다 👎