[Final Project] Dev-Log 9일차

Ha Young Do·2021년 6월 29일
0

Final Project

목록 보기
5/10

Today I did

  • auth, main, user controller 테스팅
  • 사실 테스팅이 많이 어려울거라 (복잡한 트러블슈팅이 많이 인볼브 될거라) 지레짐작하고 마음속으로 미뤄두긴 했는데 막상 시작해보니 대체적으로 차질 없이 진행되었다. 크게 두 가지 이슈가 눈에 띄었는데 1) 유저 컬렉션에서 비밀번호가 설정이 잘못되어 있어서 중복된 비밀번호가 입력되지 못하고 공란으로 두지도 못하고 있었다. 사용자에게 '다른 사람의 비밀번호와 겹치니 다른 비밀번호를 사용해달라'는 서비스는 세상에 없으니 중복금지도 풀어야했고, 소셜로그인 사용자의 경우 로컬 비밀번호가 의미가 없으니 공란도 가능하게 해야 했다. 2) 포스트 컬렉션의 subdocument로 코멘트가 들어가 있는데, 마이페이지의 '내 댓글 보기' 기능에서 유저아이디가 일치하는 코멘트'만' query해 오는 과정에서 댓글 목록이 단일 배열에 깔끔하게 들어오는 것이 아니라, 각각의 포스트별로 다른 객체에 넣어져서 돌아오고 있었다.

<원하는 데이터 형식>

// 한 유저가 작성한 모든 comment들을 한꺼번에 받기
{
  comment: [
    { (comment 1의 필드들) },
    { (comment 2의 필드들) },
    { (comment 3의 필드들) },
    { (comment 4의 필드들) },
    { (comment 5의 필드들) }
  ]
}

<돌아오는 데이터 형식>

// 한 유저가 작성한 모든 comment들이 그 comment가 달려 있는 post 기준으로 묶여서 돌아옴
[
  {
    comment: [
      { (comment 1의 필드들) },
      { (comment 2의 필드들) }
    ]
  },{
    comment: [
      { (comment 3의 필드들) }
    ]
  },{
    comment: [
      { (comment 4의 필드들) },
      { (comment 5의 필드들) }
    ]
  }
]
  • 두 번째 형식으로 받은 데이터를 가공해서 첫 번째 형식으로 만들어 보려고 했으나 배열이면서 배열이 아닌 것처럼 행동해서 (map, forEach등의 메소드가 안 먹혀서, 자꾸 falsy한 값이 결과배열에 들어오려고 했다) 한참을 헤매였다. 일단은 두 번째 형식으로 프론트로 보내서 가공하는 쪽으로 구현을 했다가, 더 알아 보니 아무래도 몽고db query 결과값이 cursor 객체라서 js 배열처럼 behave 하지 않는게 아닌가? 라는 결론을 내리고 그에 맞게 구현했다. 추후 코드 리팩토링 포스트를 써 보고 싶은 주제이다.
  • 방금 생각난 것: 소셜로그인 컨트롤러에서 신규 사용자 등록시에 패스워드를 디폴트 비밀번호를 넣어놨는데, 공란으로 바꾸는 게 좋을 것 같다.
  • 또 방금 생각난 것: 현재 더미데이터에서는 한 유저가 한 게시글에 여러 번 댓글을 남긴 데이터가 있는데, 한 번 의견을 남긴 게시글에는 다시 의견을 남길 수 없도록 해야 한다. (백단에서 막아야 한다고 생각했는데 사실 프론트에서 인풋 렌더링 자체를 없애도 될 것 같기도 하고...?)
  • 또 또 방금 생각난 것: 내가 작성한 글이라면 삭제버튼이 보이되 댓글을 달 수 없게 만들어야 한다. 내가 작성한 댓글에도 좋아요하지 못하게 만드는 게 맞지 않나 싶은데, 사실 페이스북이나 인스타 등 존재하는 소셜 서비스를 생각해 보면 내가 작성했더라도 내가 좋아요할 수 있게 만들어 놓기는 했다. 잘 납득은 안 간다. 반장선거에서 자기 자신 뽑는 그런 느낌 아닌가...?

Tomorrow I will

  • 드디어 프론트엔드로 돌아간다. 첫 프로젝트를 하면서 백엔드도 궁금하지만 백엔드로 가면 프론트가 계속 눈에 밟히고 마음이 갈 거라고 생각했는데 생각외로 백엔드에 몰입해서 작업할 수 있었다. 프론트도 다시 열심히 해봐야겠다.
profile
Codestates Software Engineering Full IM 28th

0개의 댓글