요청 하나는 Controller, Service, Repository에서 서로 다른 계약으로 검증된다

온라인 코드 에디터 API는 HTTP 모양, 권한과 비즈니스 규칙, 저장소 무결성을 분리해야 실시간 기능을 얹어도 흔들리지 않습니다.

Controller

HTTP 계약

route, DTO, status code, guard로 요청 모양과 인증 주체를 확정합니다.

Service

도메인 계약

소유권, 생성 한도, 파일 경로, 수정 권한을 같은 기준으로 판단합니다.

Repository

저장 계약

relation loading과 transaction으로 구조와 내용을 함께 보호합니다.

영역 고정할 계약 누락 위험 검증 기준
AuthJWT payload 사용자 식별자와 guard 적용 다른 사용자 프로젝트 접근 401/403 e2e 케이스
Project소유권 목록, 상세, 수정, 삭제가 같은 owner 기준 조회 조건 불일치 ownerId 조건과 pagination
File경로와 내용 부모 폴더, 중복 경로, 내용 변경 transaction 부분 저장과 고아 레코드 rollback과 conflict 케이스

확장 전 점검: REST 계약이 흔들리면 WebSocket 이벤트 권한도 함께 흔들립니다.