Skip to content

6주차 팀회고

namewhat99 edited this page Dec 15, 2023 · 1 revision

프로젝트 진행 상황

공통

  • 최종 발표자료 만들기
  • 멘토링
  • ReadMe 수정
  • GitHub Wiki 수정

iOS

  • 홈 화면 개편
    • 요청 / 대여 게시글 목록 분리
    • 새로고침 필요한 경우에만 이루어지도록 개선
  • 숨긴 게시글 관리
  • 채팅방 마무리
  • 검색화면
  • 프로필 수정 로직 수정
  • 게시글 숨기기 수정
  • 탈퇴 화면 관리
  • 새로고침에 숨김 추가
  • 게시글 상세화면
  • 서버에서 403 응답올 시 로그인 화면으로 이동 구현
  • PHPicker에서 UIImage로 불러올 수 없는 이미지 포맷 불러오기
  • 게시글 상세화면 이미지 디테일뷰 구현
  • 홈 화면 페이지네이션 개선
  • 리팩토링

BE

  • chat/unread API 구현
  • 신고하기 API 구현
  • BlockUser 기본 이미지 처리
  • 채팅방 읽음 처리 수정PHPicker에서 UIImage로 불러올 수 없는 이미지 포맷 불러오기
  • 게시글 상세화면 이미지 디테일뷰 구현
  • 홈 화면 페이지네이션 개선
  • 리팩토링
  • vpc 서버로 배포
  • 차단, 신고 API 수정

협업 중 어려움과 해결방안

공통

  • 서버 바꿨는데 배포주소를 바꾸지 않아 찾는데 한참 걸림
  • Docker 로 말아서 실행시키니가 한국시간과 맞춰지지 않는 문제가 생겨 iOS에서 시간이 맞지 않는 문제가 생김
    • Docker 서버시간을 한국시간으로 맞추는 것으로 해결

발표 피드백

  • 웹소켓은 기능을 확장해나가면서 내부 구현을 자주 변경하게 되는 것 같아요. 현재 프로젝트는 URLSessionWebsocketTask 로 구현이 되어있고 WebSocket 객체와 구현방식의 결합도가 높은 상황이에요.
  • 구현체(URLSessionWebsocketTask) 와 객체의 결합도를 낮출 수 있는 방향을 고민해보면 좋을 것 같아요.
  • 이를 Starscream 으로 바꾼다면? Network 를 이용해 직접 구현하도록 변경한다면? 이를 안전하게 스위칭을 어떻게 할 수 있지?
  • 위와 같은 고민들이 도움이 될 것 같아요
  • URLSessionWebsocketTask에서 Starscream 대비 어떤 장단점이 있을까요?
  • 메모리에 연결된 소켓을 유저 단위로 저장했을 때 접속자가 많아지면 서버의 메모리 부하가 발생할 수 있을 것 같은데 이 부분에서 어떻게 처리를 하셨고 동시 접속 인원을 몇명까지 고려하셨는지 궁금합니다.
  • 채팅과 웹소켓 관련 처리에서 조금 더 깊게 고민할 수 있는 좋은 과제였다고 생각합니다. 읽음 처리에 관한 경우는 클라이언트가 서버에 last readMessage 의 timestamp를 저장하도록 변경하면 조금 효율적이었을 것 같다는 생각이 듭니다.
  • 또한, 오전 발표한 모든 iOS 프로젝트를 진행하시는 캠퍼분들, 앱 소개에 대한 readme.md는 잘 설명되어있지만, 해당 프로젝트를 개발자 모드에서 개발환경을 구축할 수 있도록 설명된 부분은 찾지 못했습니다. 모든 캠퍼가 각자의 개발환경에 맞게 셋팅되고 그것을 변경해야 할 필요성을 느끼지 못했기 때문인데, 그만큼 다른 캠퍼의 git에 접근해볼 기회가 없었다고 생각합니다. git에 공개로 기록해놓고 그것을 개발 코드까지 공개되었다면 해당 프로젝트를 개발 환경에서 돌릴 수 있도록 설정하는 가이드도 있으면 좋겠다고 생각합니다.
  • 사소하지만, 게시글을 등록할 때, 대여 시작, 종료 입력 단계에서 왜 기본 date picker를 사용하지 않고, 커스텀 picker를 사용했나요?
  • 로그를 모두 기록하는 방식으로 디버깅을 하셨는데, 저희도 공감이 되었습니다. 그런데 저희 같은 경우 대량의 요청이 발생하면 로깅만으로도 상당히 오버헤드가 발생하였지만 아직 해결하지 못하였는데요. 혹시 이 부분에 대해서 고민하신 부분이 있는지 궁금합니다.
Clone this wiki locally