inflearn logo
강의

Course

Instructor

[Daily Completion Challenge] <From Planning to Launch with FastAPI> with the Author

Sections 8.1–8.2: Implementing Calendar APIs per Host (p266~p298)

4주 1회차 과제 제출합니다.

Resolved

43

griotold

25 asked

0

저는 is_host 필드와 calendar 존재 여부를 둘 다 검증해야 한다고 판단했습니다.

왜 두 가지를 모두 사용해야 할까요?

우선 두 요소는 서로 다른 의미를 가지고 있다고 생각합니다.

현실로 비유하자면, is_host는 사업자등록증을 가지고 있는 상태이고, calendar가 있다는 건 실제로 가게를 오픈한 상태라고 볼 수 있습니다. 사업자등록증은 있지만 아직 가게를 열지 않은 사람도 있을 수 있잖아요?

그래서 둘 중 하나만 체크하면 문제가 생긴다고 봅니다.

만약 calendar 존재 여부만 체크한다면?

calendar만 보고 판단하면 권한 체계가 무너질 수 있습니다. 예를 들어 일반 사용자가 억지로 캘린더를 생성하면 호스트로 둔갑할 수 있는 보안 문제가 생기죠. 또 호스트가 일시적으로 캘린더를 삭제했다가 다시 만들 때마다 권한 관리가 복잡해집니다.

만약 is_host만 체크한다면?

반대로 is_host만 체크하면, 캘린더가 없는데도 예약 관련 API를 호출할 수 있게 되어서 500 에러가 발생할 수 있습니다. "호스트인데 캘린더는 없는" 이상한 상태를 어떻게 처리해야 할지도 애매해지고요.

두 가지를 순차적으로 검증하는 게 좋습니다

저는 이렇게 단계적으로 확인하는 게 맞다고 봅니다:

  1. 먼저 is_host로 호스트 자격이 있는지 확인

  2. 그 다음 calendar 존재로 실제 운영 가능한지 확인

이렇게 하면 사용자에게도 명확한 피드백을 줄 수 있어요. "호스트 권한이 없습니다" vs "캘린더를 먼저 생성해주세요" 처럼 무엇을 해야 하는지 정확히 알려줄 수 있죠.

미래 확장성도 고려했습니다

나중에 서비스가 커지면 호스트 상태를 더 세분화할 수도 있을 것 같아요:

이런 식으로 관리하려면 역할과 리소스를 분리해서 체크하는 게 필수라고 생각합니다.

성능 걱정은 없을까요?

is_host는 User 모델의 필드라서 추가 DB 쿼리가 필요 없고, calendar 조회도 어차피 해야 하는 작업이라 성능에 큰 영향은 없다고 봅니다.

python aws tdd FastAPI 북-챌린지

Answer 1

1

hannal

자격과 상태로 구분하는 정책이군요. 👍

그렇다면 is_host=False 는 캘린더 보유 여부와 무관하게 게스트로 분류하시는 거예요? 명료하네요. 🙂

4주 1회차 과제

0

44

2

4주 5회차 과제

0

44

1

4주 5회차 과제 제출

0

52

2

4주 4회차 과제 제출

0

62

2

351쪽 질문

0

52

2

4주 3회차 과제

0

49

2

refresh() 메서드와 픽스처에 대해 질문이 있습니다.

0

59

2

4주 2회차 과제 질문

0

57

3

4주 1회차 과제

0

53

2

4주 1회차 과제

0

44

2

4주 3회차 과제

0

55

2

4주 1회차 과제

0

52

2

4주 3회차 과제

0

38

1

4주 5회차 과제

0

38

2

4주 1회차 과제

0

30

2

4주 1회차 과제

0

25

2

4주 4회차 과제 제출

0

36

2

4주 2회차 과제

0

49

1

patch 요청시 payload가 넘어가지 않습니다.

0

60

3

4주 1회차 과제

3

119

2

페이지 144 코드 문의

0

61

3

책과 github 코드가 다릅니다 p130

0

50

2

120페이지 코드 질문드립니다.

0

48

2

테스팅과 학습법의 관계 (?)

0

67

2