3.2 KiB
3.2 KiB
설정 및 실행 가이드
설정 규칙
- 공통 설정은
application.yaml, 환경별 차이는application-local.yaml,application-pjt.yaml에 둔다. pjt프로파일은 DB/Redis/JWT/Swagger 계정을 환경변수 치환으로 받으므로 새 민감정보는 하드코딩하지 않는다.- 로깅 설정은 프로파일별
logback-local.xml,logback-pjt.xml을 사용하므로 로그 정책 변경 시 함께 본다. - MyBatis 설정은
application.yaml기준으로 관리하므로 mapper location, alias package, camel case 옵션을 중복 정의하지 않는다. - Redis 는 세션 저장소와 업로드 상태 캐시 용도를 함께 가지므로 키 prefix 충돌 여부를 확인한다.
프로파일
| 프로파일 | 설명 |
|---|---|
local |
로컬 개발 환경 |
pjt |
프로젝트(개발) 환경 |
Swagger 접속
- URL:
http://localhost:8106/swagger-ui.html - 인증:
swagger.login.id/swagger.login.password(환경별 yaml에 설정)
파일 업로드 설정
tus-file.upload.final-root는 TUS 완료 파일과 단순 업로드 파일이 공유하는 최종 저장 루트다.tus-file.upload.tmp-root는 tusd 임시 업로드 루트다. file-domain nginx 에서는/uploads/tmp/접근을 404로 막는다.file.upload.root-path는 보통${tus-file.upload.final-root}를 사용해 단순 업로드와 TUS 완료 파일의 마운트 루트를 맞춘다.file.upload.view.file-domain은 SunEditor 이미지 응답 URL 생성에 사용한다. 예:https://file-alist.pjt.kr.file.upload.max-size는 단순 업로드 전역 최대 용량이다.file.upload.types.{folder}.max-size가 있으면 폴더별 설정이 우선한다.file.upload.allowed-extensions는 단순 업로드 전역 확장자 허용 목록이다.file.upload.types.{key}.folder는 실제 저장 폴더명이다. 설정되지 않은 folder 값도 전역 정책을 통과하면 동적 폴더로 저장할 수 있다.file.upload.types.{key}.image-only가true이면 이미지 확장자만 허용한다.file.upload.types.{key}.resize.enabled가true이고 업로드 파일이 이미지이면 resize 함수를 거친다.width와height가 모두 있으면 중앙 crop 후 고정 크기로 저장하고,max-width만 있으면 비율을 유지해 축소한다.spring.servlet.multipart.max-file-size와max-request-size는-1로 두고, 실제 제한은 업로드 서비스 정책에서 처리한다.
file-domain nginx 기준
/tus/file/는 tusd 로 프록시하며auth_request /_upload_auth로 API의/tus/file/upload/auth를 호출한다./_upload_auth는 내부 location 으로만 열고Authorization,X-File-Uuid, 필요 시Upload-Metadata,Upload-Length헤더를 API 로 전달한다./uploads/는/srv/project/alist/uploads/를 정적 파일로 제공한다./uploads/tmp/는 tusd 임시 파일 노출을 막기 위해 404 처리한다.- 그 외 경로는
location /fallback 에서 차단한다.
실행 명령
- 로컬 실행:
./gradlew bootRun - 테스트 실행:
./gradlew test - jar 생성:
./gradlew bootJar - Windows 명령:
.\gradlew.bat bootRun,.\gradlew.bat test,.\gradlew.bat bootJar