Skip to content

9ITHON/7-ToGetHer-BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

267 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‘©πŸΌβ€β€οΈβ€πŸ‘¨πŸΌ ToGetHer

우리의 ν”Όμž„, ν•¨κ»˜λΌμ„œ 더 μ•ˆμ „ν•˜κ³  νŽΈμ•ˆν•˜κ²Œ.


πŸ“Œ Main Function

πŸ‘€ νšŒμ› κΈ°λŠ₯ (인증 및 인가)

λ³Έ ν”„λ‘œμ νŠΈλŠ” 카카였 둜그인 APIλ₯Ό ν™œμš©ν•˜μ—¬ μ‚¬μš©μž 인증 및 인가λ₯Ό μ²˜λ¦¬ν•©λ‹ˆλ‹€.

  1. μ‚¬μš©μžκ°€ 카카였 λ‘œκ·ΈμΈμ„ μ‹œλ„ν•˜λ©΄, μ„œλ²„λŠ” OAuth2User 객체λ₯Ό 톡해 λ‹€μŒκ³Ό 같은 μ‚¬μš©μž 정보λ₯Ό λ°›μ•„ μ €μž₯ν•©λ‹ˆλ‹€.

    • 이메일
    • λ‹‰λ„€μž„
    • 카카였 ID
  2. μΉ΄μΉ΄μ˜€λ‘œλΆ€ν„° 인증 μ½”λ“œλ₯Ό 받은 ν›„, 이λ₯Ό 기반으둜 JWT 토큰을 λ°œκΈ‰ν•©λ‹ˆλ‹€:

    • AccessToken은 λΈŒλΌμš°μ €μ˜ 쿠킀에 μ €μž₯λ©λ‹ˆλ‹€.
      • XSS 곡격 λ°©μ§€: HttpOnly 속성을 μ μš©ν•˜μ—¬ μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό ν†΅ν•œ 접근을 μ°¨λ‹¨ν•˜κ³  λ³΄μ•ˆμ„±μ„ κ°•ν™”ν•©λ‹ˆλ‹€.
      • νŽΈμ˜μ„±: μΏ ν‚€λŠ” 동일 도메인 μš”μ²­ μ‹œ μžλ™μœΌλ‘œ HTTP μš”μ²­μ— ν¬ν•¨λ˜λ―€λ‘œ, ν”„λ‘ νŠΈμ—”λ“œμ—μ„œ 토큰을 직접 헀더에 μΆ”κ°€ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.
    • RefreshToken은 Redis에 μ €μž₯λ˜μ–΄ μ•ˆμ „ν•˜κ²Œ κ΄€λ¦¬λ©λ‹ˆλ‹€.
  3. μ‚¬μš©μžκ°€ λ‘œκ·Έμ•„μ›ƒν•  경우 λ‹€μŒκ³Ό 같은 μ²˜λ¦¬κ°€ μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€:

    • 쿠킀에 μ €μž₯된 AccessToken을 μ¦‰μ‹œ λ§Œλ£Œμ‹œν‚΅λ‹ˆλ‹€.
    • ν•΄λ‹Ή AccessToken은 Redis λΈ”λž™λ¦¬μŠ€νŠΈμ— λ“±λ‘λ˜μ–΄ 더 이상 μ‚¬μš©ν•  수 없도둝 μ²˜λ¦¬ν•©λ‹ˆλ‹€.

πŸ”— 카카였 곡유 κΈ°λŠ₯

카카였 곡유 APIλ₯Ό μ‚¬μš©ν•˜μ—¬ μ‚¬μš©μžμ™€ νŒŒνŠΈλ„ˆκ°€ μ‰½κ²Œ 연동될 수 μžˆλ„λ‘ μ§€μ›ν•©λ‹ˆλ‹€.

  • μ˜¨λ³΄λ”© κ³Όμ •μ—μ„œ μ‚¬μš©μžλŠ” νŒŒνŠΈλ„ˆμ™€ κ³΅μœ ν•  수 μžˆλŠ” μ»€μŠ€ν…€ URL을 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

  • νŒŒνŠΈλ„ˆλŠ” 이 URL을 클릭해 κ°„νŽΈν•˜κ²Œ 연동 절차λ₯Ό μ‹œμž‘ν•˜λ©°, 연동이 μ™„λ£Œλ˜λ©΄ 두 μ‚¬μš©μžλŠ” 같은 μΊ˜λ¦°λ”λ₯Ό κ³΅μœ ν•˜κ²Œ λ©λ‹ˆλ‹€.

  • 이제 두 μ‚¬μš©μžλŠ” 각자의 역할에 따라 λ‹€μŒκ³Ό 같은 기둝을 ν•¨κ»˜ 남기고 이쀑 ν”Όμž„μ„ μ‹€μ²œν•  수 μžˆμŠ΅λ‹ˆλ‹€:

    • ν”Όμž„μ•½ 볡용
    • 감정 기둝
    • 관계 μ—¬λΆ€
    • μ½˜λ” μ‚¬μš© μ—¬λΆ€

πŸ“… μΊ˜λ¦°λ” κΈ°λŠ₯

νŒŒνŠΈλ„ˆμ™€ μ‚¬μš©μžκ°€ 같은 μΊ˜λ¦°λ”λ₯Ό κ³΅μœ ν•˜μ—¬ ν•¨κ»˜ 기둝을 μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • 카카였 곡유 APIλ₯Ό 톡해 μ—°κ²°λœ μ‚¬μš©μžμ™€ νŒŒνŠΈλ„ˆλŠ” ν•˜λ‚˜μ˜ μΊ˜λ¦°λ”μ—μ„œ μ•„λž˜μ™€ 같은 기둝을 ν•¨κ»˜ μž‘μ„±ν•©λ‹ˆλ‹€:

    • ν”Όμž„μ•½ 볡용 기둝
    • 감정 기둝
    • 관계 μ—¬λΆ€
    • μ½˜λ” μ‚¬μš© μ—¬λΆ€
  • μ‚¬μš©μžμ˜ role κ°’(ROLE_USER, ROLE_PARTNER)에 따라 기둝 κ°€λŠ₯ν•œ ν•­λͺ©κ³Ό μ ‘κ·Ό κΆŒν•œμ΄ λ‹€λ¦…λ‹ˆλ‹€.

    • μ—¬μ„±(ROLE_USER): 관계 μ—¬λΆ€, ν”Όμž„μ•½ 볡용 μ—¬λΆ€, 감정 기둝
    • 남성(ROLE_PARTNER): 관계 μ—¬λΆ€, μ½˜λ” μ‚¬μš© μ—¬λΆ€

πŸ”” μ•Œλ¦Ό κΈ°λŠ₯

μ‹œμŠ€ν…œ 및 μ—°λ™λœ μ‚¬μš©μžμ™€μ˜ μƒν˜Έμž‘μš©μ„ μ•Œλ¦Ό μŠ€νƒμœΌλ‘œ μ œκ³΅ν•©λ‹ˆλ‹€.

  • SseEmitterλ₯Ό ν™œμš©ν•œ **SSE(Server-Sent Events)**λ₯Ό 톡해 μ‹€μ‹œκ°„ μ•Œλ¦Όμ„ μ „μ†‘ν•©λ‹ˆλ‹€.

  • μ‚¬μš©μžλŠ” λ‹€μŒκ³Ό 같은 μ•Œλ¦Όμ„ μ‹€μ‹œκ°„μœΌλ‘œ 받을 수 μžˆμŠ΅λ‹ˆλ‹€:

    • ν”Όμž„μ•½ 볡용 μ•Œλ¦Ό
    • 감정 기둝 μ•Œλ¦Ό
    • μ•½ ꡬ맀 μ•Œλ¦Ό
    • νŒŒνŠΈλ„ˆ 연동 수락 μ•Œλ¦Ό

✨ Contributors

ν•­λͺ© λ°•μ€€μ„  μž„μŠΉμš°
ν”„λ‘œν•„
GitHub @goodjunseon @Lims

πŸ’« Architecture

ToGetHer-Architecture.png


πŸ“€ ERD

ToGetHer-erd.png


🀝🏻 Git Convention


🀝🏻 Code Convention


Tech Stack

My Skills

My Skills

My Skills

My Skills

My Skills


πŸ“ Folder Structure

도메인 쀑심 ꡬ쑰 섀계(DDD ꡬ쑰)

β”œβ”€β”€ java
β”‚Β Β  └── com
β”‚Β Β      └── together
β”‚Β Β          └── backend
β”‚Β Β              β”œβ”€β”€ ToGetHerApplication.java
β”‚Β Β              β”œβ”€β”€ domain
β”‚Β Β              β”‚Β Β  β”œβ”€β”€ calendar
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ controller
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── CalendarController.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ dto
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ CalendarDetailResponse.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ CalendarRecordRequest.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ CalendarRecordResponse.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── CalendarSummaryResponse.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ model
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── entity
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ BasicRecord.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ CondomUsage.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ IntakeRecord.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ IntakeType.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ MoodType.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      └── RelationRecord.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ repository
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ BasicRecordRepository.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ IntakeRecordRepository.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── RelationRecordRepository.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  └── service
β”‚Β Β              β”‚Β Β  β”‚Β Β      β”œβ”€β”€ CalendarService.java
β”‚Β Β              β”‚Β Β  β”‚Β Β      └── IntakeRecordInitService.java
β”‚Β Β              β”‚Β Β  β”œβ”€β”€ couple
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ controller
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── CoupleController.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ model
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ entity
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Couple.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── CoupleStatus.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ request
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ConnectRequest.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── CoupleRequest.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── response
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ ConnectResponse.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      └── CoupleResponse.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ repository
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── CoupleRepository.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  └── service
β”‚Β Β              β”‚Β Β  β”‚Β Β      └── CoupleService.java
β”‚Β Β              β”‚Β Β  β”œβ”€β”€ notification
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ controller
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ NotificationSettingsController.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── NotificationSseController.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ model
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Notification.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ NotificationSettings.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ NotificationType.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ intake
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ request
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── IntakeRequest.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── response
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β      └── IntakeResponse.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── notification
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ request
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ NotificationDayRequest.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ NotificationEnabledRequest.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”‚Β Β  └── NotificationTimeRequest.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      └── response
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β          β”œβ”€β”€ NotificationDayResponse.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β          β”œβ”€β”€ NotificationEnabledResponse.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β          └── NotificationTimeResponse.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ repository
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ NotificationRepository.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── NotificationSettingsRepository.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  └── service
β”‚Β Β              β”‚Β Β  β”‚Β Β      β”œβ”€β”€ NotificationService.java
β”‚Β Β              β”‚Β Β  β”‚Β Β      β”œβ”€β”€ NotificationSettingsService.java
β”‚Β Β              β”‚Β Β  β”‚Β Β      └── NotificationSseService.java
β”‚Β Β              β”‚Β Β  β”œβ”€β”€ pill
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ controller
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── UserPillController.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ model
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ IntakeInfo.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ IntakeOption.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ UserPill.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ request
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── UserPillRequest.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── response
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ TodayPillResponse.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ UserPillRemainResponse.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      └── UserPillResponse.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ repository
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ IntakeInfoRepository.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── UserPillRepository.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  └── service
β”‚Β Β              β”‚Β Β  β”‚Β Β      └── UserPillService.java
β”‚Β Β              β”‚Β Β  β”œβ”€β”€ sharing
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ controller
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── SharingController.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ model
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Sharing.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ request
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ConfirmRequest.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── SaveUrlRequest.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── response
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ ConfirmResponse.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      └── SaveUrlResponse.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ repository
β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── SharingRepository.java
β”‚Β Β              β”‚Β Β  β”‚Β Β  └── service
β”‚Β Β              β”‚Β Β  β”‚Β Β      └── SharingService.java
β”‚Β Β              β”‚Β Β  └── user
β”‚Β Β              β”‚Β Β      β”œβ”€β”€ controller
β”‚Β Β              β”‚Β Β      β”‚Β Β  β”œβ”€β”€ MainPageController.java
β”‚Β Β              β”‚Β Β      β”‚Β Β  β”œβ”€β”€ UserAuthController.java
β”‚Β Β              β”‚Β Β      β”‚Β Β  β”œβ”€β”€ UserController.java
β”‚Β Β              β”‚Β Β      β”‚Β Β  └── UserRedirectionController.java
β”‚Β Β              β”‚Β Β      β”œβ”€β”€ model
β”‚Β Β              β”‚Β Β      β”‚Β Β  β”œβ”€β”€ entity
β”‚Β Β              β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Role.java
β”‚Β Β              β”‚Β Β      β”‚Β Β  β”‚Β Β  └── User.java
β”‚Β Β              β”‚Β Β      β”‚Β Β  β”œβ”€β”€ request
β”‚Β Β              β”‚Β Β      β”‚Β Β  β”‚Β Β  └── UserRequest.java
β”‚Β Β              β”‚Β Β      β”‚Β Β  └── response
β”‚Β Β              β”‚Β Β      β”‚Β Β      β”œβ”€β”€ MyPageResponse.java
β”‚Β Β              β”‚Β Β      β”‚Β Β      β”œβ”€β”€ UserResponse.java
β”‚Β Β              β”‚Β Β      β”‚Β Β      └── mainpageinfo
β”‚Β Β              β”‚Β Β      β”‚Β Β          β”œβ”€β”€ PartnerInfoResponse.java
β”‚Β Β              β”‚Β Β      β”‚Β Β          β”œβ”€β”€ PillInfoResponse.java
β”‚Β Β              β”‚Β Β      β”‚Β Β          └── UserInfoResponse.java
β”‚Β Β              β”‚Β Β      β”œβ”€β”€ repository
β”‚Β Β              β”‚Β Β      β”‚Β Β  └── UserRepository.java
β”‚Β Β              β”‚Β Β      └── service
β”‚Β Β              β”‚Β Β          β”œβ”€β”€ MainPageService.java
β”‚Β Β              β”‚Β Β          β”œβ”€β”€ UserAuthService.java
β”‚Β Β              β”‚Β Β          β”œβ”€β”€ UserDeleteService.java
β”‚Β Β              β”‚Β Β          └── UserProfileService.java
β”‚Β Β              └── global
β”‚Β Β                  β”œβ”€β”€ common
β”‚Β Β                  β”‚Β Β  β”œβ”€β”€ BaseResponse.java
β”‚Β Β                  β”‚Β Β  β”œβ”€β”€ BaseResponseStatus.java
β”‚Β Β                  β”‚Β Β  └── model
β”‚Β Β                  β”‚Β Β      └── BaseEntity.java
β”‚Β Β                  β”œβ”€β”€ config
β”‚Β Β                  β”‚Β Β  β”œβ”€β”€ CorsMvcConfig.java
β”‚Β Β                  β”‚Β Β  β”œβ”€β”€ RedisConfig.java
β”‚Β Β                  β”‚Β Β  └── SecurityConfig.java
β”‚Β Β                  └── security
β”‚Β Β                      β”œβ”€β”€ jwt
β”‚Β Β                      β”‚Β Β  β”œβ”€β”€ JWTFilter.java
β”‚Β Β                      β”‚Β Β  β”œβ”€β”€ model
β”‚Β Β                      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ BlackListToken.java
β”‚Β Β                      β”‚Β Β  β”‚Β Β  └── RefreshToken.java
β”‚Β Β                      β”‚Β Β  β”œβ”€β”€ service
β”‚Β Β                      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ BlackListTokenService.java
β”‚Β Β                      β”‚Β Β  β”‚Β Β  └── JwtTokenService.java
β”‚Β Β                      β”‚Β Β  └── util
β”‚Β Β                      β”‚Β Β      β”œβ”€β”€ CookieUtil.java
β”‚Β Β                      β”‚Β Β      └── JWTUtil.java
β”‚Β Β                      └── oauth2
β”‚Β Β                          β”œβ”€β”€ CustomOAuth2UserService.java
β”‚Β Β                          β”œβ”€β”€ CustomSuccessHandler.java
β”‚Β Β                          └── dto
β”‚Β Β                              β”œβ”€β”€ CustomOAuth2User.java
β”‚Β Β                              β”œβ”€β”€ KakaoResponse.java
β”‚Β Β                              β”œβ”€β”€ OAuth2Response.java
β”‚Β Β                              └── UserDTO.java
└── resources
    β”œβ”€β”€ application-dev.yml
    β”œβ”€β”€ application-prod.yml
    └── application.yml

About

πŸ‘©πŸΌβ€β€οΈβ€πŸ‘¨πŸΌμš°λ¦¬μ˜ ν”Όμž„, ν•¨κ»˜λΌμ„œ 더 μ•ˆμ „ν•˜κ³  νŽΈμ•ˆν•˜κ²Œ. ToGetHer server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors