상위 Epic
#6
왜
추천 결과 화면(내 코스에 담기 전)에서 공유를 누르면 지금은 "먼저 내 코스에 담아주세요" 안내만 뜬다.
사용자 입장에서 "공유하려면 왜 먼저 담아야 하지?" 가 자연스럽지 않다. 담기는 여행 날짜 선택까지 거쳐야 해서, 그냥 친구에게 보여주고 싶은 사람에게는 단계가 과하다. 보여주려는 것과 내 계획으로 삼는 것은 다른 행동인데 지금은 후자를 강제하고 있다.
무엇을
POST /api/v1/courses/share — 요청 payload 는 저장 API(POST /api/v1/courses)와 같고, 응답은 { shareToken }.
- 발급한 링크는
GET /api/v1/public/courses/{shareToken} 으로 지금처럼 열린다. 공유 URL 은 /c/{shareToken}.
- 내 코스 목록·상세에는 나오지 않는다. 담은 것이 아니므로 목록에 끼면 사용자가 담지 않은 코스를 담았다고 오해한다.
정할 것
- 저장하지 않는데 무엇을 저장하는가. 공유 링크로 열려면 코스 데이터가 어딘가에 있어야 한다. 코스 행은 만들되 목록에 안 보이게 할지, 별도로 보관할지 정한다. 기존
CourseScope·guestId 필터가 어떻게 도는지 보고 결정한다.
- 정리(retention). 담지 않은 코스가 쌓인다. 지금 삭제 배치까지 만들 필요는 없지만, 쌓인다는 사실과 지울 수 있는 근거를 남긴다 — 운영 DB 는 EC2 도커 안의 MySQL 하나뿐이다.
상위 Epic
#6
왜
추천 결과 화면(내 코스에 담기 전)에서 공유를 누르면 지금은 "먼저 내 코스에 담아주세요" 안내만 뜬다.
사용자 입장에서 "공유하려면 왜 먼저 담아야 하지?" 가 자연스럽지 않다. 담기는 여행 날짜 선택까지 거쳐야 해서, 그냥 친구에게 보여주고 싶은 사람에게는 단계가 과하다. 보여주려는 것과 내 계획으로 삼는 것은 다른 행동인데 지금은 후자를 강제하고 있다.
무엇을
POST /api/v1/courses/share— 요청 payload 는 저장 API(POST /api/v1/courses)와 같고, 응답은{ shareToken }.GET /api/v1/public/courses/{shareToken}으로 지금처럼 열린다. 공유 URL 은/c/{shareToken}.정할 것
CourseScope·guestId필터가 어떻게 도는지 보고 결정한다.