TL;DR — 문제 은행이 강좌에 종속돼 있어 공유의 최소 단위가 강좌였다. 문제 하나를 주려면 강좌를 통째로 열어야 했다. 공유 단위를 문제로 낮추고 교수 간 개별 공유·해제 API를 두어, 재사용의 단위를 실제로 재사용하고 싶은 크기에 맞췄다.

배경

문제 (증상)

원인 분석

해결

공유의 최소 단위를 문제로 낮추고, 그 단위에 맞는 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 전체 공개 문제 목록

결과