목록분류 전체보기 (125)
DevLog
[✍️ Dev Log] 2022-01-12 오늘은 어떻게 프로젝트에 기여했나요? admin: 확인한 lounge report 삭제 기능 추가 model assosiate 이용하여 특정 lounge를 리펙토링 오늘의 프로젝트에서 힘든 점 또는 기억에 남는 점은 무엇인가요? - 코드에는 정답이 없다 & 에러처리는 확실하게 어제 sequelize model들 간의 관계설정을 해준 뒤, 모델을 한번의 쿼리를 통해 작업을 처리하는 것이 아닌 두 번에 걸쳐 쿼리 해주는 코드를 찾아 새롭게 한 번의 쿼리를 통해 작업을 끝낼 수 있게 리펙토링 해보기로 했다. lounge // 여기서 첫 번째 쿼리 .findOne({ where: { id: req.params.loungeId }, }) .then((data) => { ..
오늘은 어떻게 프로젝트에 기여했나요? sequelize 관계설정 admin: 일정 신고 이상인 라운지의 주소, 라운지 id, 신고 개수를 리턴해주는 api 구현 오늘의 프로젝트에서 힘든 점은 무엇인가요? - sequelize 관계 설정 및 그룹화, findAndCountAll 사용 어제 깨닫게된 관계설정 문제를 해결하기 위해서 sequelize공식 문서에서 Associations 파트 부분을 읽어봤다. 현재 진행중인 프로젝트에서 사용중인 관계는 일대다 1:N 관계가 대부분이라 이 부분을 중심으로 관계설정을 해야했다. Team.hasMany(Player); Player.belongsTo(Team); 예제코드가 이런식으로 작성되어 있었는데 일대다의 관계를 설정해주려면 연관된 두 개의 모델을 hasMany와 ..
오늘은 어떻게 프로젝트에 기여했나요? 댓글 추가시 별점 반영 및 평균 별점 반영 기능 추가 admin 관리자 기능 구현을 위한 route 구성 및 테스트 오늘의 프로젝트에서 힘든 점은 무엇인가요? sequelize 관계 설정 sequelize에서 관계설정을 한다는 것을 지금까지는 table을 migration 할 때 constraint값에 외래키 설정을 해주기만 하면 되는 줄 알고 있었는데 뭔가 프로젝트를 진행하면 할 수록 뭔가 일일이 하나 하나 쿼리하면서 sequelize를 제대로 사용하는 게 맞나 싶은 의문의 들었다. 그래서 model 부분을 자세히 살펴보니 model을 정의할 때 associate 라는 부분이 있는데 거기서 먼저 모델간의 관계를 설정해주고 나서 쿼리할 때 옵션값으로 include를 ..
[✍️ Dev Log] 2022-01-08 오늘은 어떻게 프로젝트에 기여했나요? lounge 전체 정보 조회 api기능 구현 lounge 특정 정보 조회 api기능 구현 댓글 작성, 신고 작성 api기능 구현 오늘의 프로젝트에서 힘든 점은 무엇인가요? sequelize에서 원하는 데이터만 추출 작성한 댓글을 불러와주는 기능을 구현하던 중 한 곳의 글에 작성된 다수의 댓글들을 한번에 가져와 줘야 하는데 이 부분에서 생긴 문제가 내가 필요한 정보는 dataValues값들만 필요했었는데 [ comment { dataValues: { userId: 3, contents: '댓글 1', rating: 2, createdAt: 2022-01-08T13:01:29.000Z }, _previousDataValues: ..

오늘은 어떻게 프로젝트에 기여했나요? naver oauth2.0 소셜로그인 API구현 완료 lounge와 관련한 컨트롤러 설정과 라우팅설정 완료 오늘의 프로젝트에서 힘든 점은 무엇인가요? - Query Parameter & Path Variable 프로젝트를 진행하면서 클라이언트로부터 데이터를 전달받을 때 대부분 post 메서드로 전달받아서 req.body를 이용해서만 전달받은 데이터를 추출했었는데 lounge쪽 API는 get 요청을 통해서 데이터를 전달하는 방식으로 설계가 되어있어서 get 요청에 대하여 알아보니 get 요청으로 데이터를 보내주는 두 가지 방법이 있었다. 첫째는 Query Parameter를 사용해서 보내주는 방법과 둘째는 Path Variable을 사용해주는 방식이 있었다 각각의 방..
오늘은 어떻게 프로젝트에 기여했나요? 어제 작업한 oauth테스트 코드를 현재 진행 중인 finalproject에 적용 오늘의 프로젝트에서 힘든 점은 무엇인가요? promise의 남용 // ! naver const naverUrl = `https://nid.naver.com/oauth2.0/token?grant_type=authorization_code&client_id=${naverClientID}&client_secret=${naverClientSecret}&code=${req.body.authorizationCode}&state=${req.body.authorizationState}`; console.log("naverUrl:", naverUrl); axios .get(naverUrl) .then(..
오늘은 어떻게 프로젝트에 기여했나요? oauth 기반 소셜로그인을 구축(발급받은 토큰으로 정보 조회하는 것까지 성공) 오늘의 프로젝트에서 힘든 점은 무엇인가요? 전에 깃허브 소셜로그인 실습을 해보면서 경험이 있기에 전에 작성해둔 코드를 보면서 조금만 바꾸면 네이버 소셜로그인에 적용할 수 있겠다고 생각하고 // 깃허브 소셜로그인에 사용한 코드 중 일부 axios({ method: "post", url: "https://github.com/login/oauth/access_token", headers: { accept: "application/json" }, data: { client_id: clientID, client_secret: clientSecret, code: req.body.authorizati..
오늘은 어떻게 프로젝트에 기여했나요? token 인증 기반 로그인 구현 get/info, patch/info Api 구현 로그아웃 기능, 회원탈퇴 기능 구현 오늘의 프로젝트에서 힘든 점은 무엇인가요? patch/info api부분은 patch요청을 통해 회원정보를 수정하는 기능을 구현하는 부분인데 수정을 요청하는 자가 회원인지 검증하는 부분이 필요했다 이 부분에서 생긴 고민이 "token과 회원정보 확인을 위해 클라이언트로부터 받아온 현재 비밀번호 둘 중 무엇을 사용해서 회원임을 검증해야 할까?" 이 부분 이었는데 둘 다 사용해서 검증하자는 결론이 나서 아래의 코드를 통해서 문제를 해결해봤다 전체 코드중 일부 //Todo: 회원정보 수정 patch: (req, res) => { // tokenVerify..