Skip to content

Sprint 7 회고록

SeungGun edited this page Aug 5, 2022 · 5 revisions

📅 기간

22.08.01 ~ 22.08.05

Q. 이번 스프린트 무엇을 했는가

  • 게시글 작성 요청 기능 구현 및 기존 기능 리팩토링
  • 유저 페이지와 팔로우(워) 리스트에서 팔로우 & 언팔로우 기능 구현
  • 유저 프로필 편집에서 프로필 이미지 수정을 변경된 api에 맞춰 수정
  • 게시글 리스트 아이템 레이아웃 구현 중

Q. 프로젝트 진행하며 좋았던 점

  • 태현:

    • 이번 주는 게시물 요청이라는 한 기능에만 치중하다 보니 디테일적인 요소를 많이 고려해볼 수 있어서 좋았다. 입력 필드 하나하나에 대해 유저 관점에서 생각해볼 수 있었다. (Ex. 미디어 파일, 사건 발생 시간, 제보 가격 유동 처리나 해시 태그 처리 등)
  • 승건:

    • 모든 페이지의 내용물을 어떻게하면 유저에게 자연스럽고 깔끔하게 보여질 수 있을지에 대한 생각을 많이 했던 것 같다. 요청으로 받아온 값을 포함하여 받아온 이미지 url을 로드하는 시간을 포함하여 세팅이 완료된 후에 화면이 보여지도록 할 것인가, 아니면 각각 placeholder를 배치하여 데이터를 가져옴에 따라 순차적으로 채워져서 보여줄지 고민이 많았던 것 같았다.
    • 추가로 이미지의 경우 기본으로 저장된 이미지의 크기만큼 보여줘야만 비율이 깔끔한데, 게시글 리스트의 프로필 이미지나 팔로우 리스트에 들어가는 프로필 이미지의 경우, 작기 때문에 비율을 줄였어야했다. 이미지를 로드하는데도 다른 view에 비해 상대적으로 오래걸리기 때문에 부자연스럽게 화면이 보여지게 되었었다. 이러한 부분에 대해 어떻게하면 자연스럽게 할 수 있을까 고민을 많이 했던 것 같았다.

Q. 프로젝트 진행하며 있었던 애로사항

  • 태현 :
    • 입력 요청 데이터가 많다 보니 서버로 요청하는 과정에서 네이밍 문제나 타입, 형식 등 잦은 실수들이 있었다. 또 요청 포맷이 multipart와 text파일로 구분되고, Json 형식이 중첩되는 등 고려해야 될 것이 많아서 좀 헷갈렸다. 그리고 요청 에러가 나는 경우 서버로부터 BSE500 에러를 받을 수 있었는데, 어떤 에러인지 정확히 알 수 없어서 파악하는 데 꽤 걸렸던 것 같다ㅜㅜ
  • 승건 :
    • 특정 기능을 구현하다가 서버 문제로 해결될 때까지 기다려야되서 구현이 중단되면 더 이상 진행하기가 어려웠다. 빠르게 반영이 안되서 조금은 아쉽다. (물론, 그런 문제를 무시하고 코드를 작성할 수는 있지만 이게 제대로 동작하는지 테스트하기가 어렵기 때문에 빠르게 해결되었으면 하는 바람이다.)
    • 그리고 에러가 발생했을 때 대체 무엇이 원인인지 알 수가 없어 클라이언트단에서 해결하는데 오래걸리기도 하고, 계속 백엔드팀과 소통을 해야해서 많이 번거롭다. 그래서 서버 로그를 모두가 볼 수 있게 하던가, 백엔드 팀원 전부가 로그를 볼 수 있도록 해서 부재 시, 다른 팀원에게 부탁할 수 있도록 하던가, 또는 http 응답 코드가 5xx이면 서버에서 발생한 exception에 대한 에러 메세지를 클라이언트에게 응답으로 넘겨주어서 클라이언트에서도 나름 해석해서 백엔드팀에 전달하여 소통의 코스트를 줄일 수 있었으면 한다. (엔드 포인트 유저에게 보이지도 않고, 아직 개발 단계 중이기 때문에, 클라이언트 개발자도 인사이트가 있다고 생각하기 때문에 보여줘도 괜찮을 거라는 개인적인 생각이다.)

Q. 이번 스프린트의 특별한 경험

  • 태현:
    • 미디어 관련 요청을 해본 것이 처음이었는데, 클라이언트-서버 간에 어떻게 요청을 보내야 하고 데이터가 흘러가는지 공부할 수 있어서 좋았다.
  • 승건:
    • 이미지 url로 프로필 이미지를 로드할 때, 이미지 공간이 처음에 없었다가 생겨서 전체 화면 높이가 움직이게 되는 부자연스러운 현상이 있는데, 이를 skeleton처럼 default 프로필로 Glide에 placeholder를 지정하여 공간의 부자연스러운 현상을 해결하였다.
    • DTO 클래스에서 이름이 is로 시작하는 필드에서 is가 씹히는 문제가 있었는데 자바에서는 @JsonProperty("key_name"), 코틀린에서는 @get:JsonProperty("key_name")으로 필드 선언 앞에 어노테이션으로 지정해주어 해결해줄 수 있다.

Q. 다음 스프린트에는 무엇을 할까

  • 메인 피드 게시글 아이템 레이아웃 디자인
  • 메인 피드 게시글 불러오기
  • 유저 게시글 불러오기
  • Map API로 위치 검색 구현