Skip to content

HOTSPOT-pro/HOTSPOT-ADMIN-BE

Repository files navigation

HotSpot πŸ”₯

κ³΅μœ λŠ” μ—¬κΈ°μ„œ, 차단은 μ €κΈ°μ„œ? NO!!

κ°€μ‘± 데이터 곡유 + μ‚¬μš© μ œμ–΄, 흩어진 κΈ°λŠ₯을 ν•˜λ‚˜μ˜ 톡합 μ„œλΉ„μŠ€λ‘œ




πŸ“ Overview

ADMIN-BE λ ˆν¬μ§€ν† λ¦¬λŠ” κ°€μ‘± 곡유 데이터/차단 μ •μ±…/μ‚¬μš©λŸ‰μ„ μš΄μ˜μžκ°€ μ•ˆμ „ν•˜κ²Œ 관리할 수 μžˆλ„λ‘ μ„€κ³„λœ λ°±μ—”λ“œμž…λ‹ˆλ‹€.
λŒ€μš©λŸ‰ κ°€μž…μž/νšŒμ„  데이터λ₯Ό 기반으둜 κ°€μ‘± 쑰회, κ°€μ‘± μš”μ²­ 승인, μ •μ±… 운영, μ‚¬μš©λŸ‰ 쑰회, μ „ν™”λ²ˆν˜Έ 보호 처리, outbox 이벀트 λ°œν–‰κΉŒμ§€ 운영 μ‹œμŠ€ν…œμ˜ 핡심 흐름을 μ œκ³΅ν•©λ‹ˆλ‹€.


πŸ“Œ λͺ©μ°¨

πŸš€ HotSpot Admin-BE: κ΄€λ¦¬μž νŽ˜μ΄μ§€

πŸ’Ύ λ°μ΄ν„°λ² μ΄μŠ€ 및 운영 포인트

πŸš€ κ΄€λ¦¬μž νŽ˜μ΄μ§€ 운영 포인트




πŸš€ HotSpot Admin-BE: κ΄€λ¦¬μž νŽ˜μ΄μ§€

κ°€μ‘± 운영, μ •μ±… 운영, μ‚¬μš©λŸ‰ μš΄μ˜μ„ ν†΅ν•©ν•˜λŠ” 핡심 κ΄€λ¦¬μž API μ„œλΉ„μŠ€


πŸ“– κ°œμš”

μ„œλΉ„μŠ€μ˜ 운영자 접점(Admin Web)을 μ§€μ›ν•˜λŠ” λ°±μ—”λ“œ μ„œλ²„

1) μ£Όμš” μ—­ν• 

  • κ΄€λ¦¬μž 둜그인 및 JWT μΏ ν‚€ 기반 인증
  • κ°€μ‘± λͺ©λ‘/검색/μš”μ•½ 쑰회
  • κ°€μ‘± ꡬ성원별 μ œμ–΄ μƒνƒœ 및 μ •μ±… 적용 μƒνƒœ 관리
  • μ‹œκ°„ μ •μ±… / μ•± μ •μ±… 생성, 쑰회, ν™œμ„±ν™”/λΉ„ν™œμ„±ν™”, μ‚­μ œ
  • κ°€μ‘± 생성/μΆ”κ°€/μ‚­μ œ μš”μ²­ 쑰회 및 승인/반렀
  • κ°€μ‘±/νšŒμ„  λ‹¨μœ„ 데이터 μ‚¬μš©λŸ‰ 쑰회

2) 섀계 μ§€ν–₯점

  • 운영 μ •ν•©μ„± 쀑심: κ°€μ‘± μ •μ±…, μš”μ²­ 승인, μ •μ±… ν™œμ„± μƒνƒœλ₯Ό μ‹€μ œ 운영 κ·œμΉ™μ— 맞좰 μ—°κ²°
  • κ°œμΈμ •λ³΄ 보호: μ „ν™”λ²ˆν˜ΈλŠ” ν•΄μ‹œ 기반 검색 + λ³΅ν˜Έν™” ν›„ λ§ˆμŠ€ν‚Ή 응닡
  • 싀데이터 λŒ€μ‘ μ•”ν˜Έν™”: subscription_key 기반 DEK λ³΅ν˜Έν™” ꡬ쑰 적용
  • 읽기 μ„±λŠ₯ κ³ λ €: κ°€μ‘± λͺ©λ‘/μš”μ•½/검색 쿼리 μ΅œμ ν™” 및 인덱슀 μ „λž΅ 반영
  • ν™•μž₯ κ°€λŠ₯ν•œ ꡬ쑰: Controller / Service / Port / Infrastructure 뢄리



πŸ‘₯ κ΄€λ¦¬μž κΆŒν•œ 및 μ—­ν• 

민감 μ•‘μ…˜μ€ μ •ν•©μ„±κ³Ό 좔적 κ°€λŠ₯성을 μ „μ œλ‘œ μš΄μ˜ν•©λ‹ˆλ‹€.

πŸ›‘οΈ 1) ADMIN

  • κ΄€λ¦¬μž μ½”λ“œ 기반 둜그인
  • κ°€μ‘± 쑰회 및 μ „ν™”λ²ˆν˜Έ 기반 검색
  • κ°€μ‘± ꡬ성원 μ œμ–΄ μƒνƒœ μˆ˜μ •
  • κ°€μ‘± ꡬ성원 μ‹œκ°„/μ•± μ •μ±… 적용 μƒνƒœ μˆ˜μ •
  • μ •μ±… 생성/ν™œμ„±ν™”/λΉ„ν™œμ„±ν™”/μ‚­μ œ
  • κ°€μ‘± 생성/μΆ”κ°€/μ‚­μ œ μš”μ²­ 승인 및 반렀



✨ ν˜„μž¬ 제곡 κΈ°λŠ₯

1) 인증

  • κ΄€λ¦¬μž 둜그인
  • JWT access token λ°œκΈ‰
  • HttpOnly μΏ ν‚€ 기반 인증

2) κ°€μ‘± 운영

  • κ°€μ‘± λͺ©λ‘ 쑰회
  • κ°€μ‘± 상세 μš”μ•½ 쑰회
  • μ „ν™”λ²ˆν˜Έ 기반 κ°€μ‘± 검색
  • κ°€μ‘± μ œμ–΄ μƒνƒœ 쑰회
  • ꡬ성원별 데이터 ν•œλ„ / 차단 μƒνƒœ / μ—­ν•  μˆ˜μ •
  • κ°€μ‘± μš°μ„ μˆœμœ„ νƒ€μž…(FIFO / PRIORITY) μˆ˜μ •

3) μ •μ±… 운영

  • μ‹œκ°„ μ •μ±… λͺ©λ‘ 쑰회
  • μ•± μ •μ±… λͺ©λ‘ 쑰회
  • μ‹œκ°„ μ •μ±… 생성
  • μ•± μ •μ±… 생성
  • μ •μ±… ν™œμ„± / λΉ„ν™œμ„± λ³€κ²½
  • μ •μ±… μ‚­μ œ

4) κ°€μ‘± μ •μ±… 적용

  • ꡬ성원별 μ‹œκ°„ μ •μ±… 적용 ν˜„ν™© 쑰회
  • ꡬ성원별 μ•± μ •μ±… 적용 ν˜„ν™© 쑰회
  • ꡬ성원별 μ‹œκ°„ μ •μ±… 적용 μ—¬λΆ€ μˆ˜μ •
  • ꡬ성원별 μ•± μ •μ±… 적용 μ—¬λΆ€ μˆ˜μ •

5) κ°€μ‘± μš”μ²­ 운영

  • κ°€μ‘± 생성/μΆ”κ°€/μ‚­μ œ μš”μ²­ λͺ©λ‘ 쑰회
  • μš”μ²­ 승인 / 반렀

6) μ‚¬μš©λŸ‰ 운영

  • κ°€μ‘± λ‹¨μœ„ μ‚¬μš©λŸ‰ 쑰회
  • νšŒμ„  λ‹¨μœ„ μ‚¬μš©λŸ‰ 쑰회
  • Redis 기반 μ‚¬μš©λŸ‰/μ„ λ¬Ό 데이터 집계 쑰회



πŸ› οΈ 핡심 운영 μ •μ±…

1) μ •μ±… 2계측 관리

  • ν…œν”Œλ¦Ώ μ •μ±…(BLOCK_POLICY, APP_BLOCKED_SERVICE): 운영 ν‘œμ€€ μ •μ±… 등둝/관리
  • νšŒμ„  적용 μ •μ±…(POLICY_SUB, BLOCKED_SERVICE_SUB): μ‹€μ œ ꡬ성원별 μ •μ±… ν™œμ„± μƒνƒœ 반영

2) κ°€μ‘± μš”μ²­ 승인 μ›Œν¬ν”Œλ‘œμš°

  • μš”μ²­ μƒνƒœ: PENDING, APPROVED, REJECTED, CANCELED
  • μš”μ²­ λͺ©λ‘μ€ ν˜„μž¬ family_apply_id κΈ°μ€€ μ˜€λ¦„μ°¨μˆœ μ •λ ¬
  • 승인/λ°˜λ €λŠ” κ°€μ‘± 운영 데이터와 후속 처리 νλ¦„μœΌλ‘œ 이어짐

3) κ°œμΈμ •λ³΄ 보호 μ •μ±…

  • μ „ν™”λ²ˆν˜ΈλŠ” phone_enc + phone_hash ꡬ쑰
  • 검색은 ν•΄μ‹œ 기반
  • 응닡 ν‘œμ‹œλŠ” λ³΅ν˜Έν™” ν›„ λ§ˆμŠ€ν‚Ή
  • λ³΅ν˜Έν™”λŠ” decryptPhone(encryptedPhone, subId) ꡬ쑰 μ‚¬μš©

4) μ „ν™”λ²ˆν˜Έ μ•”ν˜Έν™” 운영 κ·œμΉ™

  • subscription.phone_key_bucket_id, subscription.phone_key_version μ‚¬μš©
  • subscription_key(bucket_id, key_version, encrypted_dek, kek_key_id, status) μ°Έμ‘°
  • ENCRYPTION_PROVIDER=local|kms λΆ„κΈ° 지원
  • gcm: prefix μš°μ„  λ³΅ν˜Έν™”
  • legacy CBC fallback 지원

5) μ•± μ •μ±… ν™œμ„± μƒνƒœ 연동

  • λΉ„ν™œμ„± μ•± 정책은 κ°€μ‘± μ •μ±… 쑰회 κ²°κ³Όμ—μ„œ μ œμ™Έ
  • λΉ„ν™œμ„± μ•± 정책은 κ°€μ‘± μ •μ±… 적용 λŒ€μƒμœΌλ‘œ μΈμ •ν•˜μ§€ μ•ŠμŒ
  • μ•± μ •μ±… λΉ„ν™œμ„±ν™” μ‹œ κΈ°μ‘΄ blocked_service_sub 연결도 일괄 λΉ„ν™œμ„±ν™”



πŸ—οΈ 기술적 섀계

μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

flowchart LR
    A[Admin Frontend] -->|JWT Cookie| B[HOTSPOT-ADMIN-BE]
    B --> C[(PostgreSQL)]
    B --> D[(Redis)]
    B --> E[Outbox Events]
    F[Dummy Data Generator] -->|Seed Data| C
Loading

λ ˆμ΄μ–΄ ꡬ쑰

flowchart TD
    C1[Controller] --> S1[Service]
    S1 --> P1[Port Interface]
    P1 --> I1[Infrastructure]
    I1 --> DB[(PostgreSQL / Redis)]
Loading

기술 μŠ€νƒ

  • Java 17
  • Spring Boot 3
  • Spring Web / Validation / Security
  • Spring Data JPA / Redis
  • PostgreSQL
  • Redis
  • JWT
  • AWS SDK KMS
  • JUnit5 / Mockito



πŸ’Ύ λ°μ΄ν„°λ² μ΄μŠ€ 및 운영 포인트

erDiagram
    MEMBER{
        BIGINT member_id PK
        VARCHAR(10) name
        VARCHAR(6) birth
        VARCHAR(10) status
        BOOL is_deleted
        DATETIME created_time
        DATETIME modified_time
    }

    FAMILY {
        BIGINT family_id PK
        INTEGER family_num
        BIGINT family_data_amount
        ENUM priority_type
        BOOL is_deleted
        DATETIME created_time
        DATETIME modified_time
    }

    FAMILY_SUB {
        BIGINT family_sub_id PK
        BIGINT sub_id FK
        BIGINT family_id FK
        ENUM family_role
        INTEGER priority
        BIGINT data_limit
    }

    SUBSCRIPTION {
        BIGINT sub_id PK
        BIGINT plan_id FK
        BIGINT member_id FK
        VARCHAR(255) phone_enc
        VARCHAR(64) phone_hash
        INTEGER phone_key_bucket_id
        INTEGER phone_key_version
        BOOL is_locked
        BOOL is_deleted
        DATETIME created_time
        DATETIME modified_time
    }

    SUBSCRIPTION_KEY {
        BIGINT subscription_key_id PK
        INTEGER bucket_id
        INTEGER key_version
        TEXT encrypted_dek
        VARCHAR(255) kek_key_id
        VARCHAR(20) status
        DATETIME created_time
        DATETIME modified_time
    }

    PLAN {
        BIGINT plan_id PK
        VARCHAR(20) plan_name
        BIGINT plan_data_amount
        VARCHAR(10) data_period
        BOOL is_deleted
        DATETIME created_time
        DATETIME modified_time
    }

    SOCIAL_ACCOUNT {
        BIGINT social_account_id PK
        BIGINT member_id FK
        VARCHAR(50) email
        VARCHAR(50) social_id
        VARCHAR(10) provider
        BOOL is_deleted
        DATETIME created_time
        DATETIME modified_time
    }

    APP_BLOCKED_SERVICE {
        BIGINT app_blocked_service_id PK
        VARCHAR(30) blocked_service_name
        VARCHAR(30) blocked_service_code
        BOOL is_active
        BOOL is_deleted
    }

    BLOCKED_SERVICE_SUB {
        BIGINT blocked_service_sub_id PK
        BIGINT sub_id FK
        BIGINT blocked_service_id FK
        BOOL is_active
    }

    BLOCK_POLICY {
        BIGINT block_policy_id PK
        VARCHAR(30) policy_name
        ENUM policy_type
        JSON policy_snapshot
        BOOL is_active
        BOOL is_deleted
    }

    POLICY_SUB {
        BIGINT policy_sub_id PK
        BIGINT sub_id FK
        BIGINT block_policy_id FK
        BOOL is_active
    }

    FAMILY_APPLY {
        BIGINT family_apply_id PK
        BIGINT requester_sub_id FK
        BIGINT family_id FK
        ENUM apply_type
        VARCHAR(255) doc_url
        ENUM status
        DATETIME created_time
        DATETIME modified_time
    }

    FAMILY_APPLY_TARGET {
        BIGINT family_apply_target_id PK
        BIGINT family_apply_id FK
        BIGINT target_sub_id FK
        ENUM target_family_role
    }

    FAMILY_REMOVE_SCHEDULE {
        BIGINT family_remove_schedule_id PK
        BIGINT target_sub_id FK
        BIGINT family_id FK
        ENUM status
        DATE schedule_date
        DATETIME created_time
        DATETIME modified_time
    }

    NOTIFICATION {
        BIGINT notification_id PK
        BIGINT sub_id FK
        VARCHAR(50) notification_type
        VARCHAR(100) notification_title
        VARCHAR(200) notification_content
        DATETIME created_time
        BOOL is_read
        VARCHAR(100) event_id
    }

    NOTIFICATION_ALLOW {
        BIGINT notification_allow_id PK
        BIGINT sub_id FK
        VARCHAR(20) notification_category
        BOOL notification_allow
        BOOL is_deleted
        DATETIME created_time
        DATETIME modified_time
    }

    PRESENT_DATA {
        BIGINT present_data_id PK
        BIGINT target_sub_id FK
        BIGINT provide_sub_id FK
        BIGINT data_amount
        DATETIME created_time
    }

    MEMBER ||--o{ SUBSCRIPTION : owns
    MEMBER ||--o{ SOCIAL_ACCOUNT : has
    PLAN ||--o{ SUBSCRIPTION : provides
    FAMILY ||--o{ FAMILY_SUB : has
    SUBSCRIPTION ||--o{ FAMILY_SUB : mapped
    SUBSCRIPTION ||--o{ NOTIFICATION : receives
    SUBSCRIPTION ||--o{ NOTIFICATION_ALLOW : configures
    SUBSCRIPTION ||--o{ PRESENT_DATA : target_sub
    SUBSCRIPTION ||--o{ PRESENT_DATA : provide_sub
    SUBSCRIPTION ||--o{ POLICY_SUB : applies
    BLOCK_POLICY ||--o{ POLICY_SUB : mapped
    SUBSCRIPTION ||--o{ BLOCKED_SERVICE_SUB : applies
    APP_BLOCKED_SERVICE ||--o{ BLOCKED_SERVICE_SUB : mapped
    FAMILY ||--o{ FAMILY_APPLY : owns
    FAMILY_APPLY ||--o{ FAMILY_APPLY_TARGET : has
    SUBSCRIPTION ||--o{ FAMILY_APPLY : requester
    SUBSCRIPTION ||--o{ FAMILY_APPLY_TARGET : target
    FAMILY ||--o{ FAMILY_REMOVE_SCHEDULE : schedules
    SUBSCRIPTION ||--o{ FAMILY_REMOVE_SCHEDULE : target
Loading

κΈ°μ€€ 데이터 사전

μš”κΈˆμ œ

μš”κΈˆμ œλͺ… 데이터 μ œκ³΅λŸ‰ μ œκ³΅λŸ‰ κΈ°μ€€
5G μ‹œκ·Έλ‹ˆμ²˜ λ¬΄μ œν•œ MONTH
5G μŠ€νƒ λ‹€λ“œ 150GB MONTH
5G 베이직+ 24GB MONTH
LTE 데이터 33 1.5GB MONTH
LTE λ‹€μ΄λ ‰νŠΈ 45 1GB DAY

μ•± μ„œλΉ„μŠ€

μ„œλΉ„μŠ€λͺ… μ„œλΉ„μŠ€ μ½”λ“œ
μΉ΄μΉ΄μ˜€ν†‘ MSG_KAKAO
라인 MSG_LINE
YouTube MEDIA_YOUTUBE
Netflix MEDIA_NETFLIX
μΉ˜μ§€μ§ MEDIA_CHZZK
SOOP MEDIA_SOOP
Instagram SNS_INSTAGRAM
TikTok SNS_TIKTOK
Facebook SNS_FACEBOOK
EBS STUDY_EBS
λ©”κ°€μŠ€ν„°λ”” STUDY_MEGA
μ—…λΉ„νŠΈ FIN_UPBIT
ν‚€μ›€μ¦κΆŒ FIN_KIWOOM
Chrome WEB_CHROME
Safari WEB_SAFARI
λ‘€ν† μ²΄μŠ€ GAME_TFT
λ°°ν‹€κ·ΈλΌμš΄λ“œ GAME_PUBG
넀이버 μ›Ήνˆ° TOON_NAVER
카카였 μ›Ήνˆ° TOON_KAKAO

μ •μ±… ν…œν”Œλ¦Ώ μ˜ˆμ‹œ

μ •μ±…λͺ… μ •μ±… μœ ν˜• μ„€λͺ…
수면 λͺ¨λ“œ SCHEDULED 맀일 μ§€μ •ν•œ 수면 μ‹œκ°„ λ™μ•ˆ μ•± μ‚¬μš©μ„ μ œν•œν•΄ κ·œμΉ™μ μΈ μƒν™œμ„ λ•λŠ” μ •μ±…
λ°©ν•΄ κΈˆμ§€ λͺ¨λ“œ ONCE 일정 μ‹œκ°„ λ™μ•ˆ μ¦‰μ‹œ μ•± μ‚¬μš©μ„ 차단해 집쀑이 ν•„μš”ν•œ μˆœκ°„μ„ μ§€μ›ν•˜λŠ” μ •μ±…
μˆ˜μ—… 집쀑 λͺ¨λ“œ SCHEDULED 평일 μˆ˜μ—… μ‹œκ°„μ— 맞좰 μ•± μ‚¬μš©μ„ μžλ™ μ œν•œν•΄ ν•™μŠ΅ 집쀑도λ₯Ό λ†’μ΄λŠ” μ •μ±…
μ‹œν—˜ κΈ°κ°„ 집쀑 λͺ¨λ“œ ONCE μ‹œν—˜ λŒ€λΉ„ 기간에 μž₯μ‹œκ°„ μ•± μ‚¬μš©μ„ μ œν•œν•΄ ν•™μŠ΅ λͺ°μž…을 κ°•ν™”ν•˜λŠ” μ •μ±…

수면 λͺ¨λ“œ

{
  "days": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"],
  "startTime": "00:00",
  "endTime": "07:00"
}

λ°©ν•΄ κΈˆμ§€ λͺ¨λ“œ

{
  "durationMinutes": 180
}

μˆ˜μ—… 집쀑 λͺ¨λ“œ

{
  "days": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"],
  "startTime": "09:00",
  "endTime": "14:00"
}

μ‹œν—˜ κΈ°κ°„ 집쀑 λͺ¨λ“œ

{
  "startTime": "06:00",
  "endTime": "23:59"
}

운영 포인트

  • .generator-dummy κΈ°μ€€ 총 μ‚¬μš©μž 1,000,000λͺ… / κ°€μ‘± 250,000개 데이터λ₯Ό κΈ°μ€€μœΌλ‘œ ꡬ성
  • κ°€μ‘± ꡬ성은 2~8인, 역할은 OWNER / PARENT / CHILD
  • κ°€μ‘± 데이터 곡유 정책은 FIFO λ˜λŠ” PRIORITY
  • μ •μ±… ν…œν”Œλ¦Ώμ€ κ΄€λ¦¬μž ν…œν”Œλ¦Ώ 볡사 / μ»€μŠ€ν„°λ§ˆμ΄μ¦ˆ / μ‹ κ·œ 생성 λ°©μ‹μœΌλ‘œ 가쑱에 λ§€ν•‘
  • 싀데이터 정합성을 μœ„ν•΄ subscription_key 기반 λ³΅ν˜Έν™” μ‚¬μš©



πŸš€ κ΄€λ¦¬μž νŽ˜μ΄μ§€ 운영 포인트

🎯 1) μ •μ±… 운영

  • μ‹œκ°„ μ •μ±… / μ•± 정책을 별도 ν…œν”Œλ¦ΏμœΌλ‘œ 운영
  • μ •μ±… ν™œμ„± / λΉ„ν™œμ„± μƒνƒœλ₯Ό κ°€μ‘± 적용 μ‘°νšŒμ™€ μ—°κ²°
  • μ•± μ •μ±… λΉ„ν™œμ„±ν™” μ‹œ κ°€μ‘± 적용 λ°μ΄ν„°κΉŒμ§€ ν•¨κ»˜ 정리

πŸ“‘ 2) 데이터 운영

  • κ°€μ‘± λ‹¨μœ„ / νšŒμ„  λ‹¨μœ„ μ‚¬μš©λŸ‰ 쑰회 지원
  • Redis 기반으둜 μ‚¬μš©λŸ‰ 데이터λ₯Ό λΉ λ₯΄κ²Œ 쑰회
  • μ„ λ¬Ό 데이터와 μš”κΈˆμ œ λ°μ΄ν„°λŸ‰μ„ ν•¨κ»˜ 계산

πŸ‘¨β€πŸ‘©β€πŸ‘§ 3) κ°€μ‘± 운영

  • κ°€μ‘± λͺ©λ‘ / μš”μ•½ / 검색 지원
  • κ°€μ‘± 상세 μ œμ–΄ μƒνƒœ 및 μ •μ±… μƒνƒœ 쑰회 지원
  • κ°€μ‘± 생성/μΆ”κ°€/μ‚­μ œ μš”μ²­ 승인 흐름 지원
  • κ°€μ‘± ꡬ성원별 차단/ν•œλ„/μš°μ„ μˆœμœ„ μˆ˜μ • 지원

πŸ”” 4) 인증 및 μ•Œλ¦Ό

  • κ΄€λ¦¬μž λ‘œκ·ΈμΈμ€ JWT μΏ ν‚€ 기반으둜 λ™μž‘
  • outbox 기반 후속 이벀트 λ°œν–‰ ꡬ쑰 포함
  • 운영 ν™˜κ²½μ—μ„œλŠ” μΏ ν‚€ domain / secure / sameSite / CORS μ •ν•©μ„± 점검 ν•„μš”



▢️ μ‹€ν–‰ 방법

1) μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰

./gradlew bootRun

2) 컴파일

./gradlew compileJava --no-daemon

3) ν…ŒμŠ€νŠΈ

./gradlew test --no-daemon

4) Swagger

  • /swagger-ui/index.html



✨ ν•œ 쀄 정리

이 ν”„λ‘œμ νŠΈλŠ” κ°€μ‘± 운영, μ •μ±… 운영, μ‚¬μš©λŸ‰ 운영, κ°œμΈμ •λ³΄ 보호λ₯Ό μ‹€μ œ 운영 κ·œμΉ™μ— 맞좰 λ¬Άμ–΄λ‚Έ κ΄€λ¦¬μž λ°±μ—”λ“œμž…λ‹ˆλ‹€.

About

❀️‍πŸ”₯ HOTSPOT Admin Domain Server

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages