API Layer Contract

Controller, Service, DB는 요청 하나를 서로 다른 계약으로 검증한다

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

ControllerHTTP 계약

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 이벤트 권한도 함께 흔들린다.