Fastapi

Chapter 1-1 Meetifyr - 간편한 약속 일정 조율 웹사이트 리뷰

Chansman 2025. 5. 23. 10:18

🗓️ Meetifyr - 간편한 약속 일정 조율 웹사이트 리뷰

🔗 사이트 주소

http://www.meetifyr.com/

🧩 Meetifyr란?

Meetifyr는 로그인 없이도 누구나 사용할 수 있는 간편한 약속 일정 조율 서비스입니다.

  • 주로 회식, 동아리 모임, 프로젝트 회의 등 여러 사람의 일정 조율이 필요한 상황에서 유용합니다.
  • 이름만 입력하고 가능한 날짜만 체크하면, 자동으로 모두가 가능한 날짜를 추천해줍니다.

📌 핵심 기능 요약

1. 미팅 생성

  • 고유한 meeting URL 생성.
  • 주제 및 장소 입력 가능.
  • 장소는 지도 마커 기능도 있으나, Google Maps 설정 이슈로 기능 미흡.

2. 날짜 선택

  • 최대 4주간 날짜 범위를 지정할 수 있음.
  • 각 참여자는 이름을 추가한 뒤 가능한 날짜(Free) 를 체크.
  • 자동으로 참석 가능 인원이 많은 날짜를 추천.
  • 결정 우선순위:
    1. 가장 많은 인원이 가능한 날
    2. 같은 경우 ⭐ 표시 많은 날
    3. 그것도 같으면 가장 빠른 날짜

3. 참가자 관리

  • 이름 등록/변경/삭제 가능.
  • 날짜 상태 변경 가능 (Free ↔ Busy).

4. 댓글 기능 및 타임라인

  • 댓글을 남겨 의사소통 가능.
  • 모든 변경 이력은 타임라인에 기록됨 (필수 기능은 아님).

🐍 기술적 특징

  • Python으로 구현된 웹 애플리케이션입니다.

🐞 발견된 버그

  • 시작 날짜가 종료 날짜보다 이후인 경우에도 생성 가능.
  • 날짜 유효성 검증(validation) 누락 → 강의 구현 시 보완 예정.

🧪 API 스펙 살펴보기

📌 주요 API 목록

✅ Meeting 관련

  • POST /v1/meetings : 미팅 생성
  • GET /v1/meetings/{meeting_url_code} : 미팅 조회

✅ Participant 관련

  • POST /v1/people : 참가자 추가
  • DELETE /v1/people/{participant_id} : 참가자 삭제
  • 날짜 상태 변경 API (ON/OFF)

🔁 토글 API 고민

🧠 Toggle API의 문제점

  • 단일 toggle API를 사용할 경우, read timeout 시 중복 요청으로 인해 상태가 원래 상태로 돌아갈 수 있음
  • 따라서 멱등성 보장 API가 더 안정적
sequenceDiagram
  autonumber
	  Client ->> Server: "toggle 요청 보냄 (OFF → ON 의도)"
	  Server ->> Server: "처리 지연"
	  Client ->> Client: "read timeout, 재시도"
	  Server ->> Server: "이미 ON 처리, 재요청으로 OFF 변경됨"
	  Server -->> Client: "OFF 응답"

✅ 해결 방법 제안

  • 명시적 상태 변경 API 설계 권장
    • /v1/people/{id}/change 와 같은 엔드포인트에서
      • body에 status: on 또는 status: off 전달
    • 하지만 이 방식은 URL만으로 상태를 파악하기 어려움
    • API 관찰 도구(APM) 사용 시 request body는 쉽게 확인 불가
    • 따라서 실제 운영에서는 on/off로 URL을 분리하는 방식이 더 실용적

⭐ Star 기능

  • POST /v1/stars : 특정 날짜에 별 표시 추가
  • DELETE /v1/stars/{participant_date_id} : 별 삭제

✅ 마무리

Meetifyr는 로그인 없이 일정 조율이 가능한 유용한 도구로, 회의나 약속을 쉽게 조율할 수 있게 도와줍니다.
단순한 기능이지만, 실용성과 UI의 직관성이 매우 뛰어난 서비스입니다. Python 기반의 웹 서비스라는 점도 개발자에게는 반가운 요소입니다.