POMOTODO : issue (db조회 및 출력시 병목현상)

2022. 1. 9. 00:49프로그래밍/개인프로젝트

POMOTODO를 만들면서 작성한 코드를 복습하기 위해 작성하는 글입니다.

 

 

POMOTODO.kr

 

 

What is POMOTODO?


1. 문제 인식


서버는 ajax요청을 받으면 db에서 데이터를 찾아와서 출력하는데,

짧은 시간 내에 5개 이상 쌓이면 뻗어버리는  이슈 발생


2. 문제 원인 분석


서버에서 처리도 하기 전에 너무 빠르고 잦은 요청 때문이라고 판단했음


3. 문제 해결

 

서버에서 ajax요청을 받으면 처리한 후 클라이언트로 응답 값을 보내줘야 되는데 

응답값을 보내지 않아서 발생한 문제였음

// 예시 : 리스트 입력 ajax요청
// 가장 아래에 있는  res.status(200).send();를 통해 응답값을 전송하도록 하고
// 자바스크립트에서는 응답값을 토대로 출력 해줌
    app.post('/insertPomodoro', function(req, res){
        if(req.user !== undefined){ //로그인 했을때만 db에 저장하도록 하는 코드
            db.collection('pomodoro').updateOne({id : req.user.id, yyyymmdd : yyyymmdd()}, { $set : req.body }, function(err, result){ 
                console.log('뽀모도로 업데이트')
                res.status(200).send({ message : '뽀모 업데이트 성공했습니다'});
            })
        }else{
            console.log('로그인을 해주세요');
            res.status(200).send({ message : '로그인을 해주세요'});
        }
    })