<오늘 작업 한 것들>
1. 프로젝트 발표를 위한 준비
2. 예상 질문 준비
3. 프론트 엔드 개발자 관련 웨비나 참여
4. Remind me 관련하여 작업
[예상 질문]
1. 기술적 의사 결정 질문 ( firebase와 supabase를 둘 다 사용했나요?)
→ firebase의 경우 기획이 100%가 아닐 때 살을 붙여가며 작업하기 편하다. (데이터 구조를 바꿀 수 있다.)
→ supabase의 경우 기획을 100%로 하고 가야 작업이 편리하다. (데이터 구조를 중간 중간 붙이기 힘들다)
2. React를 사용하셨는데 NEXT.JS를 사용 안하고 CRA를 사용한 이유가 있나요?
→ NEXT의 경우 최적화가 잘 되어 있기 때문에 최적화 포인트를 인지하면서 쓰기 위해 CRA를 썼습니다.
2-1. 코드 스플리팅을 안 한 이유가 있나요?
→ 저희는 Router가 하나 여서 한번에 다운 받은 상태로 보여줘도 될 만큼의 코드 베이스라 사용을 안했 습니다.
3. Mapbox의 단점에 대해 설명해 주실 수 있나요?
→ 라이트 하우스를 통해 확인을 해보니 데이터를 불러오는데 로딩 시간 이 긴 단점이 있으며 작업을 불러오는 속도가 느린 단점이 있습니다.
4. 무한 스크롤을 useInfinityQuery를 사용 안하고 다음과 같이 사용을 한 이유가 있나요?
→ 하드 코딩으로 직접 경험해보고 싶었으며 이와 같이 작업을 한 것을 통해 무한 스크롤 부분들을 어떤 식으로 운영하고 어떤 부분들을 고쳐야 하는지 직접 겪여보면서 느낄 수 있었습니다.
[면접 질문처럼 온 것들]
1.모든 posts를 전부 조회한 데이터를 가져오도록 api요청을 하고 있는데 트래픽이 많아졌을 때, 게시글이 더 많이 쌓여 get요청시 많은 부하가 예상되는 때 등의 대비를 해두셨나요?
→ 어느 정도의 데이터가 찰 때까지는 지금처럼 전부 가져오는 방식 (사진 1장 제한) 추후 geoQuery 사용해서 렌더링할때 보이는 지역만 get 할 예정임.
2. one page 사이트이면서 전역 상태 관리 라이브러리를 사용하셨는데 팀원들과 전역 상태로 지정하는 시점과 기준이 있나요?
-> 모달로 정보를 넘겨줘야 하는 부분이 많아서 사용했다.
탭 - 전체 게시글을 불러올 지, 나의 게시글만 불러올 지
세션 - 로그인 여부
서치스토어, 라잌스토어 - 검색한 키워드 및 유저가 좋아요 한 포스트 목록을 전달하여 지구 컴포넌트에서 보여줌.(지구컴포넌트와 검색 및 좋아요 컴포넌트 사이 데이터 전달이 유용하도록 함)
유즈포스트스토어 - 현재 글 작성하고 있는지 여부 (작성을 하고 있으면 지구에 데이터가 없어져야 함, 헤더의 게시글 작성 버튼 제어, 검색 목록이나 좋아요 목록 열 때 게시글 작성이 true라면 false로 변경)
유즈마커인비져블 - 검색 목록, 좋아요 목록이 열리면 지구에 있는 클러스터링이나 이미지 핀이 사라짐
유즈로케이션스토어 - 게시글 작성 시 위치 픽스 (내가 보고 있는 시점을 픽스하는 거)
유즈맵로케이션스토어 - 위도 경도 받아서 해당 위치로 이동해줌, 지구에 Marker와 클러스터 데이터를 띄어줌
3. 아이디어와 기획이 참신하지만 one page로 구현하면서 제한사항들이 적지 않았을것 같은데 팀원들(디자이너분 포함)과의 의견 충돌이나 어려웠던 부분이 뭔가요?
글 작성이나, 게시글 목록을 다 모달로 제어를 해야 했긴 때문에 어려움은 있었다. 하지만 원페이지가 아니었을 시 더 큰 어려움이 있었고,
(어떤 액션을 취하든 지구를 계속 사용했어야 했는데 페이지를 옮기면 재렌더링 돼서 계속 api 요청 해야 했음)
그걸 팀원들이 이해하고 있었기 때문에 의견 충돌 없었다.
4. 기획 때 의견 충돌 없었냐
→ 처음 기획이 나왔을때 이게 될까 싶긴 했다. 기획 처음했을땐 구체적인 사이트의 디자인이 먼저 나왔다. api 조사 먼저 했는데 될 각이서 해봤는데 됐다… (지구본 디자인이랑 그 지구본에 위도 경도 찍어서 보내는 걸 조사해보고 안 되면 기획 버리자 했는데 하루만에 찾아냈다!)
5. 디자이너와의 의견충돌?
1안, 2안, 3안 정해놨다. 정말 죽어도 안될 거 같으면 2안으로 넘어갔다. 근데 2안으로 간거 딱 하나밖에 없다. 다 1안으로 반영함