요약 — CodeQuest에서 문제 한 건을 공유하려면 강좌 전체를 열어야 하는 도메인 경계를 분석했다. 공유 단위를 문제로 낮추고 개별 공유·해제와 전체 공개 목록을 분리했다. 기능 구조 개선은 보존하되 사용률 상승을 측정한 성과로 쓰지 않으며 소유자/공유 대상/공개 권한, 해제 후 조회·직접 URL 인가의 검증 범위를 구분한다.

배경

문제 (증상)

원인 분석

해결

공유의 최소 단위를 문제로 낮추고, 그 단위에 맞는 API를 폈다.

메서드 · 경로 기능
POST /problem/{problemId}/share 문제 한 건을 지정한 교수에게 공유
POST /problem/{problemId}/unshare 공유 해제
GET /problem/{problemId}/shared-users 현재 공유 중인 대상 조회
GET /problem/{problemId}/shareable-users 공유 가능한 대상 조회
GET /shared-list 나에게 공유된 문제 목록
GET /public-list 전체 공개 문제 목록

결과