Skip to content

3주차 피어세션

J219_홍종우 edited this page Nov 12, 2021 · 1 revision

질문

  • MySQL이 아닌 mongoDB를 선택한 이유 (update가 많다면 mysql이 낫지 않을까요?)

    • 프로젝트 확장을 고려했을 때, 확장성이 용이하다는 점
    • SNS 특성상 대용량 데이터를 다루어야 한다는 점
    • null system에 대응 가능
    • 대용량 데이터(지도 데이터)에 유리
    • Node는 MySQL과 잘 맞지 않고, MongoDB가 더 적합하다는 멘토님의 조언
  • mongoDB의 장점(embedded, 중복)을 살리기 위해 저희는 link 최소를 목적으로 결국 쓰지 않는데, 여러 collection으로 나누고 link를 쓰신 이유 (말씀해주셨지만) 듣고 싶습니다.

    • (web26)embedded는 sync를 맞추기 위해 개발자 cost가 더 들고 힘들어짐
    • (web26)document가 늘어나는 것을 고려
    • (web11)update가 매우 적게 일어나서 sync가 힘들지는 않다고 고려함
    • (web11) embedded 할 시 document 탐색이 너무 쓸데없이 하는 것이 있어서 collection으로 나눈 부분도 있음
  • 초성 다시 한 번만 설명해 주시면 감사하겠습니다. 저희 팀도 적용해 보고 싶어요!

    • 한글 태그 자동완성을 위해 원래 글자와, 초성, 모음 자음을 따로 저장

    • 자바스크립트 regex보다 mongodb regex가 훨씬 빠르다

    • mongodb regex는 이어진 것들을 찾기 때문에 초성이랑 풀네임 자음모음이랑 따로 저장해야 한다

  • 서버 무중단 배포 어떻게 하셨나요..?

    • (web11)pm2 restart vs reload의 차이가 있는데, reload의 경우에는 process를 1개 초과로 사용 시 프로세스가 중단되지 않고 지원됨(process가 1개라면 의미 없음)
  • TDD/test 하고 계시나요?

    • backend는 TDD이지만 frontend는 TDD 굳이..?
    • test가 함수단위로 이루어지는데 front에서는 컴포넌트 단위로 이루어지는데 컴포넌트 테스트는 단순한 UI test에 불과하다
    • backend는 상태가 똑같지만 frontend는 사용자에 따라 상태가 달라지기 때문에 test하기 힘들다
  • Elastic Search는 고려해보셨는지?

    • 검색은 태그만 되는건가요?
  • mysql, mongodb의 인덱스 다른 점 다시한번 설명해주세요ㅜ

    • 확실하지 않아서 다시 찾아보자!
    • mysql은 B+트리, mongodb는 B트리+ first, second? 더 공부해봐야한다!!
  • mongoDB 모델링을 어떻게하고 고민했는지

    • 지역별로 평점과 지역 내 구, 동의 평점 data를 어떻게 설계하시고 관리하지는지 궁금합니다.
      • MapInfo 내부에 시, 구, 동 을 구분하지 않고 병렬적으로 작성(행정구역 code 값이 자체적으로 병렬적 구조임, 쿼리문을 짜는 것이 더 쉬움)
  • 백엔드와 프론트엔드 작업이 피쳐단위로 나누어져있나요? 아님 백엔드 프론트엔드를 어느정도 나눠서 하고있나요?

    • (web26) 피처 단위에서 백,프론트 나누어서
    • (web11) 쿼드 프로그래밍에서 발생한 이슈/피처 단위로
  • validator부분도 훅 지나가서 이해를 잘 못했네요ㅜ

    • 이해완료 pass~?
  • 지리 데이터는 어떤 데이터를 활용하셨나요

    • 통계청 데이터 사용 (API)
  • 크롤링이 왜 백엔드에서 되야하는지 한번더...

    • 클라이언트에게 buffer가 걸리는 작업은 절대 피하자! -> 클라이언트에서 하면 buffer다
    • 클라이언트 PC 성능, 네트워크 상태를 믿으면 안된다!
    • 따라서, 서버에서 하는게 좋은데... 서버가 또 터질 수 있으니까 어렵다!
  • 우리 팀의 잘한 점 한 가지씩 말하면 좋을 것 같아요!

    • (web26) 서로에 대한 피드백이 굉장히 빠르다.
    • (web11) 아침, 저녁으로 스크럼/중간점검을 통해서 소통을 많이 한다.
  • recoil에 어떤 값들을 저장했나요?

    • user 객체 : follow한 사람, follow 당한 사람, username 등 user에 관한 모든 정보
    • NextJS로 server에서 상당 부분 처리해서 page 컴포넌트의 props로 넘겨주기 때문에 상태관리의 필요성이 줄어듦
  • NextJS를 선택하신 이유는 무엇인가요?

    • 찬양할만해서(대체 불가한 SSR Framework, SEO를 위한 것)
    • 프로젝트 구성이 아주 편리하다! -> 9.3 버전부터 찬양받아 마땅하다!
Clone this wiki locally