다재다능 개발자 성장기 🚀
항해99 👩💻42일차 TIL/WIL 본문
🎉오늘의 한 일🎉
🧡팀프로젝트🧡
로그인한 사용자가 팔로우한 사용자들의 글만 조회되도록 하는 기능을 구현하였다.
🧡개인프로젝트🧡
원래는 글작성시각을 CrytoJs로 암호화하여 PostId로 사용하였는데, mongoDB에서 제공해주는 _id를 PostId로 변경하여 사용해주는 것으로 변경해주었다. 이렇게 해주는게 유효성검사를 해주지 않아도되서 더 효율적이고 코드도 간결해져서 좋은것 같다.
📌Trouble Shooting 📌
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
로그인한 사용자가 팔로우한 사용자의 리스트가 2명 이상이 되어버리면 for문이 중복으로 돌아서 res.json() 응답을 두번 이상 하게되어 에러가 발생하였다. 원인은 Node.js에서는 서버에서 무조건 한 번만 응답해줘야 하는데 연속으로 응답해주어서 에러가 발생한 것이었다.
그래서 전역변수로 배열을 하나 만들어주고 for문 안에서는 배열에 값을 담아주는 역할만 하고 값을 보내주는 res.json()은 밖으로 빼주는 방식으로 코드를 수정하여 응답을 한번만 주게끔해서 해결하였다.
이전코드
router.get("/postList", authMiddleware, async (req, res, next) => {
const { idList } = req.body;
try {
for (i=0; i<idList.length; i++) {
let followId = idList[i]
const postList = await Post.find({ userId : followId })
res.json({postList});
}
} catch (err) {
res.status(400).json({msg :"게시글이 조회되지 않았습니다."});
next(err);
}
});
변경한 코드
router.get("/postList", authMiddleware, async (req, res, next) => {
const { idList } = req.body;
const followPost = [];
try {
for (i=0; i<idList.length; i++) {
let followId = idList[i]
const postList = await Post.find({ userId : followId })
followPost.push(postList)
}
return res.json({followPost});
} catch (err) {
res.status(400).json({msg :"게시글이 조회되지 않았습니다."});
next(err);
}
});
🐣배운 점🐣
git에 업로드하다가 그만 나의 AWS키가 같이 올라가버렸다!😮 그래서 급하게 구글링해서 내가 방금 커밋한 기록을 삭제하고 .gitignore 파일을 사용하여 git에 업로드되지 못하게 설정해주었다🙆♀️.
깃허브에 push한 commit 삭제하는 방법
1. git log명령어로 우선 삭제할 commit을 확인해준다.
git log
2. 가장 최근에 업로드된 commit을 삭제해준다.
git reset HEAD^
3. 깃허브에 push된 해당 commit을 삭제해준다.
git push -f origin "브랜치명"
.gitignore 사용법
.gitignore이란이름의 파일을 생성해준 뒤 /<깃에올리고싶지않은파일이름> 을 작성해주면된다.
🍧 WIL 키워드 🍧
#프론트엔드, 백엔드로서 협업을 진행하며 느낀 아쉬운 점, 뿌듯한 점#
저번주차에 이어 프론트엔드 분들과 협업을 하고 있는데, 아쉽다기 보다는 어려운점은 아무래도 서로의 코드에 대한 이해가 부족하기 때문에 말로써 나의 역할과 프론트단에 바라는 점을 상세히 잘 설명해야 한다는 것이다. 그래도 같은 JS기반이라 서로의 화면을 공유하면서 코드를 보여주면서 설명하면 100% 까지는 아니여도 상당부분 많이 이해가 되는 것 같다.
그래도 이렇게 서로의 노력과 이해를 바탕으로 합이 잘 맞아서 하나의 기능이 잘 구현되었을 때마다 굉장한 뿌듯함과 보람을 느끼게 되는 것 같다.
그리고 기본적으로 서로에 대한 존중과 이해를 바탕으로 신뢰하며 소통한다면 적어도 사적으로는 감정이 상하지 않아서 공적인 부분에 있어서도 더 소통이 수월하게 잘 되는 것 같다. 협업하는 과정에서 기능이 실행되지 않는 등의 문제가 생겨도 기본적으로 너의문제가 아니라 나의문제일 수도 있고 결국 우리의 문제다 라는 관점에서 대화하고 다가서는 것이 굉장히 중요하다는 걸 느꼈다. 🙆♀️
처음엔 프론트분들과 대화하면서 맞춰가는 것이 서툴고 어렵다는 느낌이 들었지만 시간이 지날수록 어떤 방식으로 대화해야되는지, 설명해야되는지, 이해해야되는지를 터득하게 있어서 점점 협업하는 게 수월해지는 것 같다.😊
'항해99_6기_TIL' 카테고리의 다른 글
항해99 👩💻44일차 TIL (0) | 2022.04.20 |
---|---|
항해99 👩💻43일차 TIL (0) | 2022.04.20 |
항해99 👩💻41일차 TIL (0) | 2022.04.17 |
항해99 👩💻40일차 TIL (0) | 2022.04.17 |
항해99 👩💻39일차 TIL (0) | 2022.04.14 |