Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • I intern-homework-was
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 2
    • Issues 2
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • mingyeong.cha
  • intern-homework-was
  • Issues
  • #1
Closed
Open
Issue created Sep 14, 2026 by mingyeong.cha@mingyeong.chaOwner

[feat] 프로젝트 골격

name: Feature Request
labels: 'Type : Feature'

기능 요약

Gradle, Docker, 보안, 예외 응답, Swagger 전역 설정

상세 설명

  • Spring Boot 4.1.1 / Java 21 Gradle 프로젝트 골격 구성
  • Docker Compose로 PostgreSQL 16 + pgvector 실행 환경 구성 (앱 전용 계정 slexn_app: NOSUPERUSER·NOBYPASSRLS, 확장 설치 init 스크립트)
  • DB 공통 정의 schema.sql 추가 (visibility_t 도메인, acl_scope 계산 함수, RLS 헬퍼 함수)
  • Spring Security 설정: HTTP Basic + 세션 유지, /api/logout(204), 미인증 시 401 JSON 응답
  • 공통 예외 처리: RFC 9457 Problem Details 형식 + traceId, 404/403/409/400/500 매핑
  • JPA Auditing 설정 (createdAt 자동 기록)
  • Swagger(springdoc) 전역 설정: API 문서 정보, Authorize(Basic) 버튼, 시드 계정 안내
  • 애플리케이션 기동 테스트(SlexnWasApplicationTests) 통과

참고 자료

  • spring boot, spring mvc, spring framework
  • aplication.yml
  • psql domain
  • Activeprofiles
  • EXPLAIN 스캔
  • CSRF, http.csrf().disable()
  • JWT vs JESSIOINID
  • Session vs JESSIONID
  • ConfigurationProperties
  • ProblemDetail
  • Enumerated
Assignee
Assign to
Time tracking