코딩하는 털보

21.09.15 TIL 본문

Diary/Today I Learned

21.09.15 TIL

이정인 2021. 9. 16. 08:18

항해99 DAY 3

우리 조는 어제부터 하나의 깃 리포지토리에 각자의 작업을 적용하는 식으로 진행했다.
오늘은 AWS에 지금까지 만들어진 어플리케이션을 실행해보고 문제를 확인했다.

Issue

  • HTML reload
    좋아요나 댓글이 달릴때 마다 페이지를 리로드 하는 작업으로 인해 좀 느린 느낌이 들어서 정호님한테 얘기했는데
    페이지를 전체 리로드하는 대신 좋아요 수나 댓글 리스트 부분만 데이터를 변경하도록 해주셨다.
    생각보다 반응 속도차이가 어마어마함.

  • 댓글 삭제
    글 도큐먼트에는 댓글 리스트가 있다. 이 댓글 삭제를 생각 안하고 있었는데 mongodb에 저장될 때 글 컬렉션에는 ObjectId가 있기 때문에 이 값을 기준으로 글을 삭제했었는데... 문제는 댓글에는 ObjectId 같은 고유한 값이 없었다.
    선택은 3가지 였다.
    첫째는 ObjectId가 생기도록 다른 컬렉션으로 분할한다. (근데 이럴꺼면 그냥 RDB를 쓸걸 그랬다 ㅋㅋㅋ)
    둘째는 모든 댓글에 고유한 ID를 직접 넣어주는 것.
    셋째는 리스트의 순서(index)를 통해서 제거하는 것.
    일단 우리의 선택은 세번째 방법이었기 때문에 DB에 있는 post의 댓글 리스트 중에서 N번째 댓글을 지울 수 있어야 했다.
    오랜시간 검색하다가 나온 결과는 unset and then pull 기법이었다. (https://newbedev.com/in-mongodb-how-do-you-remove-an-array-element-by-its-index)
    unset으로 먼저 해당 댓글을 null로 만들고 null인 값들을 pull로 리스트로부터 빼버리는 우회법이다.
    어떻게 찾긴 했지만 과연 이게 정답일까 했는데, 멘토님 조언을 들어보니 역시나 그냥 빼는게 맞다고 해서 첫번째 방법으로 변경했다.

takeaway
협업은 처음이라 걱정이 많았는데 좋은 사람들 잘 만나서 다행이라는 생각이 든다.
겨우 3일 밖에 안됐지만 느낀바가 많다. 내가 생각하는 좋은 개발자란 뭔지 생각해보게 된다.

  • 노력하는 사람
    잘 모르더라도 먼저 해보려고 하고 아무것도 안하길 싫어하는 사람은 정말 동료로서 매력이 있다는 것을 단 3일이지만 많이 느끼는 중이다.
  • 소통하는 사람
    질문도 좋고 사적인 얘기도 좋고 그냥 농담도 좋고 뭐든지 대화하려고 하는 사람은 협업할 때 좋은 것 같다.
    서로에 대해서 더 이해할 수 있는 것은 많은 도움이 된다.

항해를 진행하면서 좋은 개발자란 어떤 사람인지 계속 더해질 것 같다.
그 후엔 이런 기준에 가까워 질 수 있도록 노력해 보자.

Comments