본문 바로가기

Back-end/Node.js4

[Node.js] 사용량 제한 구현하기 전문적인 정보를 다루는 것이 아닌 개인적으로 학습한 내용에 대해 포스팅을 했기 때문에 이점을 감안하여 봐주시면 감사하겠습니다👏 인증된 사용자라고 해도 과도하게 API를 사용하면 API 서버에 무리가 갑니다. 따라서 일정 기간 내에 API를 사용할 수 있는 횟수를 제한하여 서버의 트래픽을 줄이는 것이 좋습니다. 또한 한 사람이 새로고침을 여러번 해서 여러번 공격하는 것을 DOS 공격, 여러 사람이 여러번 공격하는 것을 DDOS 공격 등을 대비해야합니다. 일정 시간동안 횟수 제한을 두어 무차별적인 요청을 막을 필요가 있습니다. npm 설치 npm i express-rate-limit express-rate-limit 사용하기 const RateLimit = require('express-rate-limit'.. 2021. 6. 14.
[Node.js] JWT 토큰으로 인증하기 전문적인 정보를 다루는 것이 아닌 개인적으로 학습한 내용에 대해 포스팅을 했기 때문에 이점을 감안하여 봐주시면 감사하겠습니다👏 코드리뷰 시간에 토큰에 대해 질문을 받았었는데, 프로젝트에 계속 적용하여 사용하는 방법은 알고있었지만, 정확히 개념정리를 해야할 것 같아 정리를 하게 되었습니다. 다른 클라이언트가 데이터를 가져가게 하려면 인증과정이 필요합니다. 이 때 토큰이 필요한데 JWT 토큰으로 알아보려고 합니다. JWT는 JSON Web Token의 약어로, JSON 형식의 데이터를 저장하는 토큰입니다. JWT는 다음과 같이 세 부분으로 구성되어 있습니다. 헤더(Header) : 토큰 종류와 해시 알고리즘 정보가 들어 있습니다 페이로드(Payload) : 토큰의 내용물이 인코딩된 부분입니다. 시그니처(Si.. 2021. 6. 14.
[Node.js]body-parser 미들웨어의 urlencoded( )의 역할 전문적인 정보를 다루는 것이 아닌 개인적으로 학습한 내용에 대해 포스팅을 했기 때문에 이점을 감안하여 봐주시면 감사하겠습니다👏 코드 리뷰를 진행하는 과정에서 urlencoded이 어떻게 사용되는지에 대한 질문을 받았었습니다. body-parser와 연관이 있는 것 같았지만, 책에 나온 그대로 따라 사용했었는데 정확히 쓰임새를 알지 못하고 정확한 정답을 제시하지 못하였던 것 같아, 이번 기회에 찾아보았습니다. app.use(express.urlencoded({extended: true})); 우선 위 코드가 정확히 왜 사용되는지 알려면 데이터가 어떤 방식으로 인코딩 되는지 알아야합니다. 인코딩 방식 POST 방식으로 요청을 하게 되면, Header 필드에는 body안의 데이터가 어떤 형식의 인코딩 방법을 .. 2021. 6. 10.
[Node.js] node-cron을 이용한 NodeJS 스케줄러 설정 1. Cron 이란? 어느 작업을 특정한 간격이나 시간, 날짜에 반복해서 수행하고 싶을 때 사용하는 것이 스케줄러입니다. 저는 프로젝트를 하다 매일 특정 시간마다 함수를 실행하여 MySQL의 쿼리를 실행하여 테이블을 업데이트 하고 싶었습니다. 예를 들면 매일 4시간 간격으로 사용자 인풋을 체크하여, 인풋에 따라 테이블을 자동으로 4시간마다 업데이트하는 요구사항이 있었습니다. 이 때 사용한 것이 바로 Cron 입니다. Cron은 유닉스 계열 컴퓨터 운영 체제의 시간 기반 Job 스케줄러입니다. 소프트웨어 환경을 설정하고 관리하는 사람들은 작업을 고정된 시간, 날짜, 간격에 주기적으로 실행할 수 있도록 스케줄링하기 위해 cron을 사용합니다. https://www.npmjs.com/package/node-c.. 2021. 3. 20.