Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT] 미션 제안 로깅 달기 (#223) #224

Merged
merged 15 commits into from
Apr 10, 2024

Conversation

915dbfl
Copy link
Collaborator

@915dbfl 915dbfl commented Apr 1, 2024

전달사항 :>
  1. UiModel -> VOModel 맵핑 로직 추가

     data class SuggestionUI(
         override val viewType: SuggestionViewType,
         val title: String,
         val description: String,
         val suggestionId: Int,
         val date: String,
         val time: String,
         val likeNum: String,
         val isLiked: Boolean,
         val isMyPost: Boolean
     ): SuggestionContent
    • UiModel을 로깅 데이터로 보내려고 하다 지금은 data, time이 두 개로 나눠져 있어서 다른 로깅 데이터랑 일관성이 없을 것 같더라고!
    • 그래서 일단 ui -> vo 맵핑 로직 작성해서 VO를 로깅 데이터로 보내도록 했어! :>

@915dbfl 915dbfl added the ✨FEAT label Apr 1, 2024
@915dbfl 915dbfl requested a review from KxxHyoRim April 1, 2024 11:59
@915dbfl 915dbfl self-assigned this Apr 1, 2024
Copy link
Member

@KxxHyoRim KxxHyoRim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

혹시 윤호찬호 통해서 로깅 잘 쌓이는지 확인됐을까!?ㅎㅎ
확인된거면 위에 리뷰 하나만 살짝 수정하고 머지하면 될듯!

title = title,
description = description,
suggestionId = suggestionId,
date = "$date $time",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아주 소소한거지만 ! ㅎㅎ

  1. 날짜와 시간 정보를 모두 나타낼 거라면, VO 프로퍼티의 이름을 date -> dateAndTime 이런식으로 나타내면 조금 더 정확하게 이해할 수 있을것같구!

  2. 이왕 날짜와 시간 정보를 같이 보낼거라면, 저렇게 string을 이어붙이는 것 보다, LocalDateTime format으로 보내는게 더 좋을것같아 ㅎㅎ

    • 첫째, 지금 우리가 presentation 에서 시간 정보를 오후12:23 이렇게 보내주고 있자나!
    • 그런데 만약 UI 레이어에서 처리한 정보(오후 라는 한글)를 백엔드에 해당 포맷으로 보낸다고 가정해보자.
    • 만약 우리 서비스에서 여러 timeZone을 제공한다고 가정했을때, 백엔드에서는 불필요하게 시간 파싱 로직이 늘어나야한다는 단점이 있을것같어!

3. 쓰면서 생각난건데, VO형식으로 로깅을 하고싶은거라면 아래 방식은 어때?

  • 미션 제안에 대한 정보를 받아올때 get api를 호출하잖아?
  • 이때 viewModel에 VO가 도착하게 되고, 우리가 toUiModel()이라는 함수를 호출해서 UI 모델 정보를 viewModel에 저장하게 돼.
  • 이때 viewModel에 VO 정보를 저장할 수 있는 변수를 하나 더 생성을 해서 UI 뿐만 아니라 VO 모델에 대한 정보도 같이 저장해
  • 로깅할때는 클릭된 item의 index 정보를 활용해서 저장해둔 VO 모델을 로깅으로 활용하는거야.
  • 어떤거같어?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1. suggestionVO date -> dateTime 워딩 변경(1번 반영)
  • VO dateTime 타입 LocalDateTime으로 변경! (2번 반영)
2. SuggestionUI 제거
  • VO LocalDateTime 활용
    • 언니가 SpannableString 사용했던 것처럼 compose에서 같은 기능인 AnnotatedString 정의해서 사용했어!
  • 이렇게 하니까 굳이 SuggestionUI가 필요없어서 SuggestionUI 제거하고 SuggestionUI 필요한 부분을 SuggestionVO로 다 수정했어!
    • 추가로 mapper에 있었던 uiModel <-> VOModel 관련 로직도 필요 없어서 제거했어!

(변경된 파일들 많은데 대부분 SuggestionUI -> SuggestionVO 관련 파일들일거야! :>)

@915dbfl 915dbfl merged commit 535e168 into develop Apr 10, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEAT] 미션 제안 로깅 달기
2 participants