Files
api2/docs/runtime-config.md
T
2026-05-28 15:05:43 +09:00

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-onlytrue 이면 이미지 확장자만 허용한다.
  • file.upload.types.{key}.resize.enabledtrue 이고 업로드 파일이 이미지이면 resize 함수를 거친다. widthheight 가 모두 있으면 중앙 crop 후 고정 크기로 저장하고, max-width 만 있으면 비율을 유지해 축소한다.
  • spring.servlet.multipart.max-file-sizemax-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