백엔드 계약

백엔드 API 정합성 경계

온라인 코드 에디터 백엔드는 ConfigModule, TypeORM, Passport-JWT, 프로젝트 서비스가 연결되어 사용자별 프로젝트와 파일 작업을 보호한다.

config

환경 변수와 TypeORM

DATABASE_HOST, DATABASE_NAME, JWT_SECRET을 로드하고 엔티티 목록을 명시해 앱 시작 시 연결한다.

기반 설정
auth

회원가입과 로그인

비밀번호는 bcryptjs로 해싱하고, 로그인 성공 시 sub와 이메일을 담은 JWT를 발급한다.

토큰 발급
guard

AuthGuard('jwt')

프로젝트 컨트롤러 전체에 가드를 적용해 req.user가 있는 요청만 파일과 폴더 API에 접근하게 한다.

보호 API
owner

ownerId 기반 조회

findProjectById(projectId, userId)로 프로젝트 소유자를 함께 확인해 다른 사용자의 파일을 열지 못하게 한다.

권한 경계
tree

폴더 삭제 트랜잭션

하위 파일과 폴더를 함께 지울 때 하나라도 실패하면 전체를 롤백해 파일만 사라지는 상태를 막는다.

정합성 유지