강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김산님의 프로필 이미지
김산

작성한 질문수

4주차 과제(1회차, 5회차)

작성

·

3

0

1회차 과제 : 호스트 정의 정책

저는 호스트를 자격과 상태라는 두 가지 관점으로 나누어 정의했습니다. is_host 필드는 시스템이 부여한 면허증 같은 정체성이라면, 캘린더 보유 여부는 실제 모임을 열 장비를 갖췄는지 보는 준비 상태입니다.

저는 두 요소를 모두 유지하되 역할을 수직적으로 분리하는 정책을 세웠습니다.

  1. is_host(권한 레이어): 메뉴 노출 등 UI/UX 접근 제어용으로 활용합니다.

  2. 캘린더 여부 (데이터 레이어): 실제 예약 로직 실행 시 최종 검증용으로 씁니다.

이 정책의 의도는 '잠재적 호스트에 대한 배려'입니다. 가입 즉시 자격을 부여해 소속감을 주되, 실제 운영은 캘린더 개설을 통해 단계적으로 유도하는 UX를 설계했습니다. 캘린더를 수정하거나 잠시 삭제해도 호스트라는 자격(정체성)은 유지되어야 안정적인 서비스 이용이 가능하다고 판단했기 때문입니다.

데이터 불일치는 API 단의 강한 검증으로 막고, 조회 성능 문제는 예약 시점에만 확인하는 지연 검증으로 해결하겠습니다.

5회차 과제 : 파일 삭제 정책

논리적 삭제 후 유예 기간 뒤 물리적 삭제 방식을 생각해보았습니다. 사용자가 삭제를 클릭하면 is_deleted 같은 표시를 남기고, API 로직에서 is_deleted가 True이면 없는 데이터로 취급해서 접근 권한을 차단하도록 만듭니다. 그리고 실제 파일은 30일 뒤에 물리적으로 삭제 하는 것입니다. 미팅 서비스 특성상 예약 취소 후에도 분쟁이 생길 수 있고, 사용자가 실수로 파일을 지웠을 때 복구할 최소한의 시간을 벌어주고 싶었기 때문입니다. 그렇다고 너무 오래 보관하면 저장 공간이 넘쳐날 수 있으니 최적화를 위해 1달 정도의 유예 기간을 두는 것이 적절하다고 생각했습니다.

답변 1

1

소속감이라는 관점이 신선하네요. 😃

파일 삭제 기능은 실제 삭제 처리를 어떻게 할지도 고민해보세요. 여러 고려사항이 있어서 재밌는 상상의 시간을 가지실 거예요.

김산님의 프로필 이미지
김산

작성한 질문수

질문하기