2024-01-01[WIL]

jenna·2024년 1월 1일
0

TIL/WIL

목록 보기
49/59

EXPRESS MIDDLEWARE

express란?

: Node.js로 서버를 빠르고 간편하게 만들 수 있게 도와주는 웹 프레임워크입니다

장점

  • 웹 애플리케이션에 필요한 라우팅 기능을 간결하고 유연하게 제공합니다. HTTP 메서드(GET, POST, PUT, DELETE 등)와 URL 경로에 따라 요청을 효과적으로 처리할 수 있습니다.

  • middleware: 미들웨어 기능을 통해 요청과 응답 사이의 중간 처리 과정을 사용자가 원하는 대로 조작하거나 확장할 수 있습니다. 이는 애플리케이션의 기능을 모듈화하고 재사용하는데 매우 유용합니다.

  • Template engine: 다양한 템플릿 엔진을 지원하여 서버 사이드에서 HTML을 동적으로 생성하고 클라이언트에게 전달할 수 있습니다.

  • error handling: 미들웨어를 이용한 오류 핸들링 기능을 제공합니다

middleware

: 클라이언트로부터 받은 요청에 대한 응답을 하기 전 중간에서 목적에 맞는 특정 작업을 수행하는 함수들을 말합니다

  • 다음 미들웨어 함수에 대한 엑세스는 next 함수를 이용해서 다음 미들웨어로 현재 요청을 점길 수 있습니다
  • req, res, next를 매개변수로 가지는 함수로써 app.use나 app.get, app.post로 쓰인다 (에러 처리 미들웨어는err, req, res, next)
app.use(
    morgan('dev'),
    express.static('/', path.join(__dirname, 'public')),
    express.json(),
    express.urlencoded({ extended: false }),
    cookieParser(process.env.COOKIE_SECRET)
);

위 미들웨어들은 내부적으로 next를 호출하므로 연달아 쓸 수 있다.

express 미들웨어 패키지 종류 검색해보기

참고
https://inpa.tistory.com/entry/EXPRESS-%F0%9F%93%9A-%EB%AF%B8%EB%93%A4%EC%9B%A8%EC%96%B4-%F0%9F%92%AF-%EC%9D%B4%ED%95%B4-%EC%A0%95%EB%A6%AC#%E2%9A%A0%EF%B8%8F_%EB%87%8C%EC%A0%95%EC%A7%80_%EB%8B%B9%ED%95%98%EA%B8%B0%EC%A0%84%EC%9D%98_%EC%98%88%EB%B0%A9%EC%A7%80%EC%8B%9D

RESTFUL

:웹 서비스의 설계 방식 중 하나로, REST(REpresentational State Transfer) 설계 원칙을 따르는 것을 의미합니다.

REST

: HTTP URL을 통해 자원을 명시하고 HTTP Method를 통해 명시한 자원에 대한 CRUD를 적용합니다. 

특징

  • 클라이언트-서버 구조(Client-server architectur): 클라이언트와 서버는 서로 독립적이며, 각각의 역할이 분리되어 있습니다. 이를 통해 클라이언트와 서버는 각자의 개발을 독립적으로 진행할 수 있습니다.
  • 무상태성(Stateless): 각 요청은 서버에 저장된 이전 요청과는 독립적입니다. 즉, 각 요청이 서버에 필요한 모든 정보를 포함하고 있어야 합니다.
  • 캐시 가능(Cacheable): 클라이언트는 응답을 캐시할 수 있어야 합니다. 이를 통해 네트워크 부하를 줄이고 성능을 향상시킬 수 있습니다.
  • 계층화된 시스템(Layered System): 클라이언트는 네트워크 아키텍처의 여러 계층을 알 필요가 없습니다. 중간 계층(예: 로드 밸런서)이 존재하더라도, 클라이언트는 서버와 직접 통신하는 것처럼 요청을 보낼 수 있습니다.
  • Uniform Interface: REST는 일관된 인터페이스를 통해 자원을 조작합니다. 이는 HTTP 표준 메서드(GET, POST, PUT, DELETE 등)를 사용하고, 자원을 식별하는 URL, 자원의 표현(예: JSON, XML)을 사용합니다.
profile
https://github.com/jennaaaaaaaaa

0개의 댓글