choppaluv / HighTravel

0 stars 0 forks source link

Discussion For Backend Model regarding to Photo page #37

Closed choppaluv closed 6 years ago

choppaluv commented 6 years ago

현재 저희가 계획한 Photo page의 구성에 따르면 Trip 안에 Date 안에 Folder 안에 Photo들이 들어있는 구조로 이루어져 있습니다. 이렇게 여러 단계로 이루어진 구성으로 인해 저희 페이지 구현에 있어서 여러가지 어려움이 예상되는데 이에 대해 의견을 나누고자 합니다.

우선 제가 생각하는 문제점들은 다음과 같습니다.

  1. Folder 모델 이외에 Date 모델 또한 만들어야 합니다. (Folder는 Date model의 Foreign key 를 가지고 있어야 합니다.)
  2. Add Photo 페이지에서 날짜를 선택하면 해당 Date model 내에 있는 Folder만 선택지로 유저에게 보여주어야 합니다. 전체 폴더를 선택지 보여주는 경우 다른 날짜에 속해있는 같은 이름의 폴더를 구분 할 수 없을 것입니다. 이렇게 보여주는 것이 가능한지 잘 모르겠습니다. 또한 아직 유저가 date를 선택하지 않고 folder 선택지를 고르려면 아직 날짜 선택이 안되었다고도 알려주어야 합니다.
  3. Date model을 만든다면 다른 모델들에 있는 Date field를 Date model의 foreign key로 바꾸어 주어야 하는지에 대해서도 고려해 보아야 할 것 같습니다.
  4. Photo page에서 Date 별 그리고 그 안에서 Folder 별로 분류하여 보여주기 위한 방법으로 두 가지 방법이 있습니다. 첫번째로 모든 Photo들의 list를 가져와서 그들을 Date 별로 그리고 Folder 별로 sorting을 하여 보여주는 방법이 있습니다. 이 경우 Date와 Folder모두 foreign key(id)로 가지고 있기 땨문에 user가 보기 위해서는 각각의 id를 string(Folder이름, Date)의 형태로 가져오기 위해 backend와의 통신이 여러 번 이루어져야 합니다. 두번째로 해당 trip에 해당하는 Date 모델의 list를 백엔드로부터 받아옵니다. 받아온 Date 의 id를 이용하여 또 한번 백엔드로 요청을 보내 Folder list를 받아와야 합니다. 이 Folder list의 원소 별로 또 다시 Photo list를 받아와야 합니다. 이 경우에도 마찬가지로 백엔드와의 통신이 여러번 이루어 져야 하기 때문에 시간이 오래 걸릴 것으로 예상 됩니다.

이러한 어려움들이 예상되어 Folder나 Date 둘 중 하나만 사용하는 것이 어떨지 의견을 나누고자 합니다. 모델 간의 관계가 너무 깊어서 이러한 어려움이 생기는 것 같아 Trip 안에 Folder 안에 Photo의 구조를 가지거나 Trip 안에 Date 안에 Photo를 가지는 것이 훨씬 나을 것 같다는 것이 제 개인적인 의견입니다.

제가 놓치고 있거나 잘못 생각한 부분이 있다면 말씀해주시고 모델들 간의 관계를 어떻게 하여 Photo page를 보여주는 것이 좋을지 의견을 공유해주시면 감사하겠습니다.

parkkyuyeon commented 6 years ago

저도 계획을 수정하여 trip안에 둘중에 하나만 사용해서 photo list를 넣는게 나을 것 같습니다. 두 가지 선택지를 고르고 에러메시지를 띄우는 등 매우 복잡할 것 같고 불러오는데에 시간도 오래 걸릴 것 같습니다. 업로드의 편의성이나 여행기록 면에서 date정보만을 받아서 photo page를 보여주는게 좋을 것 같습니다.

ghost commented 6 years ago

folder model만 만들고 addphoto와 addfolder를 구분해놓으면 충분히 가능할 것 같습니다.

대신 contents field를 빼는 것이 더 많은 작업을 줄여줄것 같습니다. photo는 전체적으로 readonly고 delete만 가능하게요.

choppaluv commented 6 years ago

좋은 의견 감사합니다! 현지님의 의견이 좋은 것 같으니 반영하여 backend 수정하도록 하겠습니다. 한가지 추가하자면 연말과 연초에 걸쳐 여행을 가는 경우(예를 들어 2018년 12월 부터 2019년 1월까지) folder 이름에 따라 sorting을 하게 되면 2019년 1월의 사진이 앞에 배치가 될 것 같아 folder name에 년도까지 저장하는 것이 좋지 않을까 생각합니다.

narajoa21 commented 6 years ago

저도 date와 folder를 string으로 묶어서 백엔드에 저장하는 것 좋을 것 같습니다 ‘20180531_china’이렇게요