Skip to content

fix: 공유 코드를 만들 때 코드 없이 저장된 일정도 함께 맞춘다 (178) - #181

Merged
OnlyReadOneBook merged 1 commit into
mainfrom
feat/178
Sep 6, 2026
Merged

OnlyReadOneBook merged 1 commit into
mainfrom
feat/178

Conversation

@OnlyReadOneBook

@OnlyReadOneBook OnlyReadOneBook commented Sep 6, 2026 •

Copy link
Copy Markdown
Owner

📌𝘐𝘴𝘴𝘶𝘦𝘴

📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯

  • 공유 코드가 비어 있던 동안 만든 일정도 코드를 만들면 가족에게 보입니다. 전에는 그 일정만 영영 안 보였습니다
  • 내 정보 화면의 「공유 코드 다시 만들기」 가 이미 저장된 일정까지 함께 고칩니다

💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴

무엇이 문제였나

일정은 저장할 때의 공유 코드를 문서에 굳혀 넣는다(ScheduleRepository.addSchedule). 신호가 약한 곳에서 처음 로그인하면 코드가 비어 있고, 그 사이에 만든 일정은 sharedCode 가 빈 문자열로 저장된다.

보안 규칙의 공유 읽기는 sharedCode != "" 를 요구한다. 그래서 나중에 코드를 만들어도 그 일정들은 가족이 어떤 코드로도 읽지 못한다.

사용자 쪽에서 보이는 것은 이렇다. 코드를 만들었고, 가족에게 알려 줬고, 가족 앱에는 아무것도 안 뜬다. 화면 어디에도 이유가 없다. 「공유 코드 다시 만들기」(#134)는 사용자 문서만 고쳐서, 눌러도 아무것도 달라지지 않는데 「고쳤다」 는 안심만 준다.

어떻게 고쳤나

코드를 보장하는 자리 뒤에서 코드가 빈 내 일정에 코드를 채운다. 두 자리 모두 지난다 — 로그인 직후(AuthManager)와 내 정보 화면의 다시 시도 버튼(ProfileViewModel).

  • 코드가 빈 일정만 고른다(userId + sharedCode == ""). 이미 코드가 있는 일정은 건드리지 않는다
  • 내 공유 코드가 아직 없으면 아무것도 쓰지 않는다. 빈 코드로 덮어쓰면 고쳐지는 것 없이 updatedAt 만 흔들린다
  • 실패해도 던지지 않는다. 코드 만들기 결과를 이 일이 뒤집으면 안 되고, 다음 로그인에서 다시 맞추면 된다

확인

  • 코드 없이 저장된 일정 3건에 코드를 채우고 batch 를 한 번 커밋한다
  • 채울 일정이 없으면 아무것도 쓰지 않는다
  • 내 코드가 아직 없으면 일정을 건드리지 않는다
  • 코드를 만들면 일정 맞추기를 부르고, 못 만들면 부르지 않는다

단위 테스트 통과. lint · ktlint 통과.

일정은 저장할 때의 공유 코드를 문서에 굳혀 넣는다. 신호가 약한 곳에서 처음 로그인하면
코드가 비어 있고, 그 사이에 만든 일정은 sharedCode 가 빈 채로 남는다. 보안 규칙의 공유
읽기가 sharedCode != "" 를 요구하므로 그 일정들은 가족이 어떤 코드로도 읽지 못한다.

사용자 쪽에서는 코드를 만들어 가족에게 알려 줬는데 일정이 안 보인다. 화면 어디에도
이유가 없고 되돌릴 길도 없다 — 「공유 코드 다시 만들기」(#134)는 사용자 문서만 고쳐서,
고쳤다는 잘못된 안심만 주고 있었다.

코드를 보장하는 자리(로그인 직후와 다시 시도 버튼) 뒤에서 코드가 빈 내 일정에 코드를
채운다. 실패해도 코드 만들기 결과를 뒤집지 않는다 — 다음 로그인에서 다시 맞춘다.
@OnlyReadOneBook
OnlyReadOneBook merged commit 38d8e06 into main Sep 6, 2026
13 of 16 checks passed
@OnlyReadOneBook
OnlyReadOneBook deleted the feat/178 branch September 6, 2026 07:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: 공유 코드 없이 저장된 일정은 코드를 다시 만들어도 가족이 못 본다

1 participant