강의

멘토링

커뮤니티

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

Green Lee님의 프로필 이미지
Green Lee

작성한 질문수

[매일 완독 챌린지] 저자와 함께하는 <FastAPI로 기획에서 출시까지>

8.1~8.2절 : 호스트별 캘린더 API 구현하기 (p266~p298)

4주 1회차 과제

작성

·

37

2

- is_host를 기준으로 호스트 사용자와 게스트 사용자를 구분하는 것은, 가입 당시부터 본인의 역할을 선택하여 구분 짓는 경우에 효과적인 것으로 판단됩니다. 가입 시점부터 역할(게스트/호스트)을 구분 지어서 관리하고자 하는 경우에 적절한 구조라고 생각되며, 호스트의 자격조건이 있거나, 검증이 필요한 서비스라면 이렇게 관리하는 방법이 적절해 보입니다.

- 반면, 호스트/게스트의 타입을 캘린더의 존재 여부(또는 갯수)로 정의한다고 하면, 모든 가입자가 가입시에 동일한 자격을 갖는 가입자로서 가입처리가 되고, 추가 단계로서 캘린더를 생성 함으로 써, 호스트와 게스트의 역할을 자유롭게 넘나드는 자유도가 생기는 구조가 될 것 같습니다.

- 지금은 커피챗을 목적으로 일정을 조율하는 목적을 갖는 시스템이므로, is_host를 사용하지 않는 결정을 하겠습니다. 전자상거래 시스템같은 판매자와/소비자 처럼 엄격한 구분과 자격을 검증해야 하는 시스템으로 여겨지지는 않기때문입니다. is_host 필드가 없어지는 경우에, 사용자의 상태(또는 역할)을 구분하기 위해서 매번 캘린더의 존재 여부를 확인해야 하지만 앞서 언급한 호스트와 게스트의 역할 변경에 열려있는 점이 중요하게 생각되기 때문입니다. 하지만 모든 가입자가 게스트로 시작하는 만큼 커피챗 호스트를 어떻게 유치할 것인가는 고민이 되는 부분입니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

Green Lee님께서 설명하신 바와 같이, is_host 필드를 사용하여 사용자를 호스트와 게스트로 구분하는 것은 역할을 미리 결정하고 관리하는 데 효과적입니다. 특히, 특정 자격 검증이 필요한 시스템이라면 유용하죠. 반면, 캘린더의 존재 여부로 역할을 관리한다면 동적인 역할 전환이 가능하며, 유연성이 필요할 때 적합할 수 있습니다.

현재 커피챗 시스템에서는, 단일 가입자가 역할을 자유롭게 변환할 수 있는 방식을 선택하셨고, 따라서 is_host 필드를 활용하지 않기로 한 결정은 이 시스템의 목적에 합리적이라고 보입니다. 다만, 모든 사용자가 기본적으로 게스트로 시작하게 되므로, 커피챗 호스트 유치를 위한 방안은 지속적인 고민이 필요할 것 같습니다.

또한, 각 사용자 상태 또는 역할을 확인하기 위해서는 매번 캘린더의 존재 여부를 체크해야 한다고 하셨는데, 이러한 구조적 결정을 두고 각각의 장단점을 충분히 고려하여 시스템을 설계하시면 좋겠습니다.

추가적인 Spring Boot 가이드나, 개발 관련 문서가 필요한 경우에는 spring.io를 참고하셔도 좋습니다.

도움이 되셨기를 바랍니다.

Green Lee님의 프로필 이미지
Green Lee

작성한 질문수

질문하기