๋ณธ ํ๋ก์ ํธ๋ ์นด์นด์ค ๋ก๊ทธ์ธ API๋ฅผ ํ์ฉํ์ฌ ์ฌ์ฉ์ ์ธ์ฆ ๋ฐ ์ธ๊ฐ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
- 
์ฌ์ฉ์๊ฐ ์นด์นด์ค ๋ก๊ทธ์ธ์ ์๋ํ๋ฉด, ์๋ฒ๋ OAuth2User ๊ฐ์ฒด๋ฅผ ํตํด ๋ค์๊ณผ ๊ฐ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๋ฐ์ ์ ์ฅํฉ๋๋ค. - ์ด๋ฉ์ผ
- ๋๋ค์
- ์นด์นด์ค ID
 
- 
์นด์นด์ค๋ก๋ถํฐ ์ธ์ฆ ์ฝ๋๋ฅผ ๋ฐ์ ํ, ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก JWT ํ ํฐ์ ๋ฐ๊ธํฉ๋๋ค: - AccessToken์ ๋ธ๋ผ์ฐ์ ์ ์ฟ ํค์ ์ ์ฅ๋ฉ๋๋ค.- XSS ๊ณต๊ฒฉ ๋ฐฉ์ง: HttpOnly์์ฑ์ ์ ์ฉํ์ฌ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํตํ ์ ๊ทผ์ ์ฐจ๋จํ๊ณ ๋ณด์์ฑ์ ๊ฐํํฉ๋๋ค.
- ํธ์์ฑ: ์ฟ ํค๋ ๋์ผ ๋๋ฉ์ธ ์์ฒญ ์ ์๋์ผ๋ก HTTP ์์ฒญ์ ํฌํจ๋๋ฏ๋ก, ํ๋ก ํธ์๋์์ ํ ํฐ์ ์ง์  ํค๋์ ์ถ๊ฐํ ํ์๊ฐ ์์ต๋๋ค.
 
- XSS ๊ณต๊ฒฉ ๋ฐฉ์ง: 
- RefreshToken์ Redis์ ์ ์ฅ๋์ด ์์ ํ๊ฒ ๊ด๋ฆฌ๋ฉ๋๋ค.
 
- 
์ฌ์ฉ์๊ฐ ๋ก๊ทธ์์ํ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง๋๋ค: - ์ฟ ํค์ ์ ์ฅ๋ AccessToken์ ์ฆ์ ๋ง๋ฃ์ํต๋๋ค.
- ํด๋น AccessToken์ Redis ๋ธ๋๋ฆฌ์คํธ์ ๋ฑ๋ก๋์ด ๋ ์ด์ ์ฌ์ฉํ ์ ์๋๋ก ์ฒ๋ฆฌํฉ๋๋ค.
 
- ์ฟ ํค์ ์ ์ฅ๋ 
์นด์นด์ค ๊ณต์ API๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์ ํํธ๋๊ฐ ์ฝ๊ฒ ์ฐ๋๋ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
- 
์จ๋ณด๋ฉ ๊ณผ์ ์์ ์ฌ์ฉ์๋ ํํธ๋์ ๊ณต์ ํ ์ ์๋ ์ปค์คํ  URL์ ์์ฑํ ์ ์์ต๋๋ค. 
- 
ํํธ๋๋ ์ด URL์ ํด๋ฆญํด ๊ฐํธํ๊ฒ ์ฐ๋ ์ ์ฐจ๋ฅผ ์์ํ๋ฉฐ, ์ฐ๋์ด ์๋ฃ๋๋ฉด ๋ ์ฌ์ฉ์๋ ๊ฐ์ ์บ๋ฆฐ๋๋ฅผ ๊ณต์ ํ๊ฒ ๋ฉ๋๋ค. 
- 
์ด์  ๋ ์ฌ์ฉ์๋ ๊ฐ์์ ์ญํ ์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ก์ ํจ๊ป ๋จ๊ธฐ๊ณ ์ด์ค ํผ์์ ์ค์ฒํ ์ ์์ต๋๋ค: - ํผ์์ฝ ๋ณต์ฉ
- ๊ฐ์  ๊ธฐ๋ก
- ๊ด๊ณ ์ฌ๋ถ
- ์ฝ๋ ์ฌ์ฉ ์ฌ๋ถ
 
ํํธ๋์ ์ฌ์ฉ์๊ฐ ๊ฐ์ ์บ๋ฆฐ๋๋ฅผ ๊ณต์ ํ์ฌ ํจ๊ป ๊ธฐ๋ก์ ์์ฑํ ์ ์์ต๋๋ค.
- 
์นด์นด์ค ๊ณต์ API๋ฅผ ํตํด ์ฐ๊ฒฐ๋ ์ฌ์ฉ์์ ํํธ๋๋ ํ๋์ ์บ๋ฆฐ๋์์ ์๋์ ๊ฐ์ ๊ธฐ๋ก์ ํจ๊ป ์์ฑํฉ๋๋ค: - ํผ์์ฝ ๋ณต์ฉ ๊ธฐ๋ก
- ๊ฐ์  ๊ธฐ๋ก
- ๊ด๊ณ ์ฌ๋ถ
- ์ฝ๋ ์ฌ์ฉ ์ฌ๋ถ
 
- 
์ฌ์ฉ์์ role๊ฐ(ROLE_USER,ROLE_PARTNER)์ ๋ฐ๋ผ ๊ธฐ๋ก ๊ฐ๋ฅํ ํญ๋ชฉ๊ณผ ์ ๊ทผ ๊ถํ์ด ๋ค๋ฆ ๋๋ค.- ์ฌ์ฑ(ROLE_USER): ๊ด๊ณ ์ฌ๋ถ, ํผ์์ฝ ๋ณต์ฉ ์ฌ๋ถ, ๊ฐ์  ๊ธฐ๋ก
- ๋จ์ฑ(ROLE_PARTNER): ๊ด๊ณ ์ฌ๋ถ, ์ฝ๋ ์ฌ์ฉ ์ฌ๋ถ
 
์์คํ  ๋ฐ ์ฐ๋๋ ์ฌ์ฉ์์์ ์ํธ์์ฉ์ ์๋ฆผ ์คํ์ผ๋ก ์ ๊ณตํฉ๋๋ค.
- 
SseEmitter๋ฅผ ํ์ฉํ **SSE(Server-Sent Events)**๋ฅผ ํตํด ์ค์๊ฐ ์๋ฆผ์ ์ ์กํฉ๋๋ค. 
- 
์ฌ์ฉ์๋ ๋ค์๊ณผ ๊ฐ์ ์๋ฆผ์ ์ค์๊ฐ์ผ๋ก ๋ฐ์ ์ ์์ต๋๋ค: - ํผ์์ฝ ๋ณต์ฉ ์๋ฆผ
- ๊ฐ์  ๊ธฐ๋ก ์๋ฆผ
- ์ฝ ๊ตฌ๋งค ์๋ฆผ
- ํํธ๋ ์ฐ๋ ์๋ฝ ์๋ฆผ
 
| ํญ๋ชฉ | ๋ฐ์ค์ | ์์น์ฐ | 
|---|---|---|
| ํ๋กํ |  |  | 
| GitHub | @goodjunseon | @Lims | 
โโโ 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

