File API Boundary

파일 관리 API는 소유권, 경로, 삭제 정합성을 함께 지킨다

프로젝트, 폴더, 파일은 다른 리소스지만 한 작업 흐름에서 움직인다. API는 저장 구조보다 소유자와 트랜잭션 경계를 먼저 보여야 한다.

Owner사용자 소유권

모든 조회와 변경은 token의 userId와 project ownerId를 함께 본다.

Tree프로젝트-폴더-파일

Folder와 File은 Project 안에서 부모 경로와 이름 충돌을 관리한다.

Transaction삭제와 이동

재귀 삭제나 이동은 하위 파일과 폴더가 함께 성공하거나 롤백되어야 한다.

작업 먼저 확인 서비스 책임 실패 응답
프로젝트 조회GET /projects/:id projectId + userId 소유자 기준으로 파일 트리 반환 404 또는 403로 노출 차단
파일 생성POST /files 부모 폴더와 이름 충돌 DTO 필드 제한, 경로 계산 400/409로 원인 분리
폴더 삭제DELETE /folders/:id 하위 파일과 폴더 범위 재귀 삭제 트랜잭션 부분 삭제 없이 rollback

API 기준: 파일 작업은 항상 소유자 검증을 먼저 통과하고, 트리 변경은 트랜잭션으로 묶어 고아 레코드를 막는다.