Skip to content

[Chore]: main -> dev 동기화#88

Merged
juwoojae merged 5 commits into
devfrom
main
Jun 28, 2026
Merged

[Chore]: main -> dev 동기화#88
juwoojae merged 5 commits into
devfrom
main

Conversation

@juwoojae

@juwoojae juwoojae commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

연관된 이슈

공유 사항

체크리스트

  • Reviewer에 팀원들을 선택했나요?
  • Assignees에 본인을 선택했나요?
  • 컨벤션에 맞는 Labels를 선택했나요?
  • Development에 이슈를 연동했나요?
  • Project를 연동했나요?
  • Merge 하려는 브랜치가 올바르게 설정되어 있나요?
  • 컨벤션을 지키고 있나요?
  • 로컬에서 실행했을 때 에러가 발생하지 않나요?
  • 팀원들에게 PR 링크 공유를 했나요?

스크린샷

리뷰 요구사항

이후의 dev -> main 간 merge 에서 이전 commit 이나 변경사항이 그대로 반영되지 않는지 확인 부탁드립니다.

user040131 and others added 5 commits June 24, 2026 21:02
url 중복 매핑 등 해결 후 dev -> main
* [Refactor]: OAuth 로그인 구조를 백엔드 중심 handoff token 방식으로 변경 (#74)

* [Feat]: 백엔드 주도 OAuth handoff 로그인 구현

  - Google/Kakao OAuth 로그인 시작 및 콜백 API 추가
  - OAuth state 생성, 저장, 검증 로직 추가
  - OAuth callback 처리 후 앱 딥링크로 handoff token 전달
  - Google/Kakao OAuth 설정 프로퍼티 추가
  - OAuth 경로 Security permitAll 처리 추가
  - OAuth state, handoff token 관련 예외 코드 추가

* [Feat]: OAuth state 및 handoff token 저장소 구현

  - OAuth state 저장 및 1회성 소비 인터페이스 추가
  - handoff token 저장 및 1회성 소비 인터페이스 추가
  - Redis 기반 OAuth state 저장소 구현
  - Redis 기반 handoff token 저장소 구현
  - handoff token payload 엔트리 추가
  - URL-safe OAuth 토큰 생성기 추가

* [Refactor]: handoff token 교환 로직 인증 서비스로 통합

  - handoff token 교환 API를 AuthController로 이동
  - handoff token 검증 후 access token, refresh token 발급 처리 추가
  - 로그인 토큰 발급 공통 로직 분리
  - handoff token 교환 응답을 기존 LoginRes로 통일
  - 기존 Google authorization code 로그인 API 제거
  - 기존 Kakao authorization code 로그인 API 제거

---------

Co-authored-by: seungjub270 <seungjub270@gmail.com>

* [Feat]: 찜 활동 목록 조회 API에 sort 파라미터 추가 (#80)

- 기본 정렬 기준으로 담은순(saved) 적용
- 마감순(deadline) 정렬 요청 시 활동 모집 마감일 기준 오름차순 조회
- 모집 마감일이 없는 활동은 마감순 조회 결과에서 제외
- 찜 활동 조회 Repository 쿼리 및 Service 분기 로직 추가

Co-authored-by: seungjub270 <seungjub270@gmail.com>

---------

Co-authored-by: seungjub270 <seungjub270@gmail.com>
* [Refactor]: OAuth 로그인 구조를 백엔드 중심 handoff token 방식으로 변경 (#74)

* [Feat]: 백엔드 주도 OAuth handoff 로그인 구현

  - Google/Kakao OAuth 로그인 시작 및 콜백 API 추가
  - OAuth state 생성, 저장, 검증 로직 추가
  - OAuth callback 처리 후 앱 딥링크로 handoff token 전달
  - Google/Kakao OAuth 설정 프로퍼티 추가
  - OAuth 경로 Security permitAll 처리 추가
  - OAuth state, handoff token 관련 예외 코드 추가

* [Feat]: OAuth state 및 handoff token 저장소 구현

  - OAuth state 저장 및 1회성 소비 인터페이스 추가
  - handoff token 저장 및 1회성 소비 인터페이스 추가
  - Redis 기반 OAuth state 저장소 구현
  - Redis 기반 handoff token 저장소 구현
  - handoff token payload 엔트리 추가
  - URL-safe OAuth 토큰 생성기 추가

* [Refactor]: handoff token 교환 로직 인증 서비스로 통합

  - handoff token 교환 API를 AuthController로 이동
  - handoff token 검증 후 access token, refresh token 발급 처리 추가
  - 로그인 토큰 발급 공통 로직 분리
  - handoff token 교환 응답을 기존 LoginRes로 통일
  - 기존 Google authorization code 로그인 API 제거
  - 기존 Kakao authorization code 로그인 API 제거

---------

Co-authored-by: seungjub270 <seungjub270@gmail.com>

* [Feat]: 찜 활동 목록 조회 API에 sort 파라미터 추가 (#80)

- 기본 정렬 기준으로 담은순(saved) 적용
- 마감순(deadline) 정렬 요청 시 활동 모집 마감일 기준 오름차순 조회
- 모집 마감일이 없는 활동은 마감순 조회 결과에서 제외
- 찜 활동 조회 Repository 쿼리 및 Service 분기 로직 추가

Co-authored-by: seungjub270 <seungjub270@gmail.com>

* #75 [Feat] discovery/page 응답 정리 및 태그 분류 통합 (#79)

* [Feat] discovery 파이프라인 및 activity 도메인 정리

* [Refactor] page 응답 정리 및 태그 분류 보정

* [Feat] page 카드 광고 여부 추가

* [Feat] page 응답 JSON 계약 정리

* [Refactor] 가격 선호 태그 제거 및 Swagger 한글화

* [Fix] page controller test 생성자 불일치 수정

* [Refactor] review/favorite/image 도메인 이름 정리

* [Refactor] activity 패키지 구조 및 favorite/review 도메인 분리

* [Fix] CodeRabbit AI 피드백 적용

* [Fix] 한글 깨짐 해결

* [Fix] 한글 깨짐 해결

* [Fix] Discovery 로그 접두어 정리

---------

Co-authored-by: seungjub270 <seungjub270@gmail.com>

---------

Co-authored-by: 주제 니 주우재를 알라 <107352588+juwoojae@users.noreply.github.com>
Co-authored-by: seungjub270 <seungjub270@gmail.com>
@coderabbitai

coderabbitai Bot commented Jun 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 164 files, which is 14 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 595985a4-90d0-4072-aadb-9f7ca1415e2b

📥 Commits

Reviewing files that changed from the base of the PR and between 7b8afa8 and bb711f2.

⛔ Files ignored due to path filters (2)
  • .gitignore is excluded by none and included by none
  • build.gradle is excluded by none and included by none
📒 Files selected for processing (164)
  • src/main/java/com/jjikmeok/app/AppApplication.java
  • src/main/java/com/jjikmeok/app/domain/activity/controller/ActivityController.java
  • src/main/java/com/jjikmeok/app/domain/activity/controller/ActivityFavoriteController.java
  • src/main/java/com/jjikmeok/app/domain/activity/controller/AdminActivityIngestionController.java
  • src/main/java/com/jjikmeok/app/domain/activity/converter/ActivityConverter.java
  • src/main/java/com/jjikmeok/app/domain/activity/converter/ActivityFavoriteConverter.java
  • src/main/java/com/jjikmeok/app/domain/activity/converter/ActivityReviewConverter.java
  • src/main/java/com/jjikmeok/app/domain/activity/dto/request/ActivityRequest.java
  • src/main/java/com/jjikmeok/app/domain/activity/dto/response/page/ActivityCategoryPageResponse.java
  • src/main/java/com/jjikmeok/app/domain/activity/dto/response/page/ActivityCustomPageResponse.java
  • src/main/java/com/jjikmeok/app/domain/activity/dto/response/page/ActivityHomePageResponse.java
  • src/main/java/com/jjikmeok/app/domain/activity/entity/Activity.java
  • src/main/java/com/jjikmeok/app/domain/activity/enums/ActivityCategory.java
  • src/main/java/com/jjikmeok/app/domain/activity/enums/ActivityType.java
  • src/main/java/com/jjikmeok/app/domain/activity/enums/PreferenceTag.java
  • src/main/java/com/jjikmeok/app/domain/activity/enums/PreferenceTagGroup.java
  • src/main/java/com/jjikmeok/app/domain/activity/enums/SourceType.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/collector/DiscoveryCollectorService.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/deduplication/DiscoveryDeduplicationService.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/dto/DiscoveryCandidateDto.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/dto/SearchResultDto.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/dto/response/DiscoverySheetRowDto.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/enums/DiscoveryDuration.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/enums/DiscoveryGroupSize.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/enums/DiscoveryIntensity.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/enums/DiscoveryMood.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/enums/DiscoveryPurpose.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/enums/DiscoverySheetStatus.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/enums/DiscoverySourceChannel.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/enums/ExtractionMode.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/enums/RobotsPolicy.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/extractor/DiscoveryMetadataExtractorService.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/keyword/DiscoveryKeywordService.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/publish/DiscoveryPublishService.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/scheduler/DiscoveryPublishScheduler.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/scheduler/DiscoveryScheduler.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/search/SearchService.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/search/SerperSearchServiceImpl.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/service/DiscoveryUrlQualityService.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/service/RobotsPolicyService.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/sheets/GoogleSheetsService.java
  • src/main/java/com/jjikmeok/app/domain/activity/privateactivity/support/DiscoveryUrlNormalizer.java
  • src/main/java/com/jjikmeok/app/domain/activity/publicactivity/dto/ActivitySyncResponse.java
  • src/main/java/com/jjikmeok/app/domain/activity/publicactivity/dto/NormalizedActivity.java
  • src/main/java/com/jjikmeok/app/domain/activity/publicactivity/entity/RawActivity.java
  • src/main/java/com/jjikmeok/app/domain/activity/publicactivity/repository/RawActivityRepository.java
  • src/main/java/com/jjikmeok/app/domain/activity/publicactivity/service/ActivityAttachmentStorageService.java
  • src/main/java/com/jjikmeok/app/domain/activity/publicactivity/service/ActivityDetailEnricher.java
  • src/main/java/com/jjikmeok/app/domain/activity/publicactivity/service/ActivityNormalizer.java
  • src/main/java/com/jjikmeok/app/domain/activity/publicactivity/service/ActivityRegionResolver.java
  • src/main/java/com/jjikmeok/app/domain/activity/publicactivity/service/ActivitySyncScheduler.java
  • src/main/java/com/jjikmeok/app/domain/activity/publicactivity/service/ActivitySyncService.java
  • src/main/java/com/jjikmeok/app/domain/activity/publicactivity/service/ActivitySyncServiceImpl.java
  • src/main/java/com/jjikmeok/app/domain/activity/publicactivity/service/ActivitySyncUtils.java
  • src/main/java/com/jjikmeok/app/domain/activity/publicactivity/service/CategoryClassifier.java
  • src/main/java/com/jjikmeok/app/domain/activity/publicactivity/service/ExternalActivityGateway.java
  • src/main/java/com/jjikmeok/app/domain/activity/publicactivity/service/RawActivityArchiveService.java
  • src/main/java/com/jjikmeok/app/domain/activity/repository/ActivityFavoriteRepository.java
  • src/main/java/com/jjikmeok/app/domain/activity/repository/ActivityRepository.java
  • src/main/java/com/jjikmeok/app/domain/activity/repository/ActivityReviewRepository.java
  • src/main/java/com/jjikmeok/app/domain/activity/service/ActivityFavoriteService.java
  • src/main/java/com/jjikmeok/app/domain/activity/service/ActivityReviewService.java
  • src/main/java/com/jjikmeok/app/domain/activity/service/ActivityServiceImpl.java
  • src/main/java/com/jjikmeok/app/domain/activity/service/ActivityTagAutoAttachService.java
  • src/main/java/com/jjikmeok/app/domain/activity/service/ActivityTagSuggestionService.java
  • src/main/java/com/jjikmeok/app/domain/activity/service/AdminActivityIngestionService.java
  • src/main/java/com/jjikmeok/app/domain/activity/service/UrlManualActivityService.java
  • src/main/java/com/jjikmeok/app/domain/advertisement/controller/AdvertisementController.java
  • src/main/java/com/jjikmeok/app/domain/ai/dto/DiscoveryAnalysisDto.java
  • src/main/java/com/jjikmeok/app/domain/ai/dto/ExtractedActivityDto.java
  • src/main/java/com/jjikmeok/app/domain/ai/service/AiActivityParser.java
  • src/main/java/com/jjikmeok/app/domain/ai/service/DiscoveryAiAnalysisService.java
  • src/main/java/com/jjikmeok/app/domain/auth/client/google/GoogleOAuthClient.java
  • src/main/java/com/jjikmeok/app/domain/auth/client/kakao/KakaoOAuthClient.java
  • src/main/java/com/jjikmeok/app/domain/auth/config/GoogleOAuthProperties.java
  • src/main/java/com/jjikmeok/app/domain/auth/config/KakaoOAuthProperties.java
  • src/main/java/com/jjikmeok/app/domain/auth/controller/AuthController.java
  • src/main/java/com/jjikmeok/app/domain/auth/controller/OAuthController.java
  • src/main/java/com/jjikmeok/app/domain/auth/dto/request/HandoffTokenReq.java
  • src/main/java/com/jjikmeok/app/domain/auth/dto/request/SocialLoginReq.java
  • src/main/java/com/jjikmeok/app/domain/auth/service/AuthService.java
  • src/main/java/com/jjikmeok/app/domain/auth/service/GoogleAuthService.java
  • src/main/java/com/jjikmeok/app/domain/auth/service/GoogleOAuthHandoffService.java
  • src/main/java/com/jjikmeok/app/domain/auth/service/KakaoAuthService.java
  • src/main/java/com/jjikmeok/app/domain/auth/service/KakaoOAuthHandoffService.java
  • src/main/java/com/jjikmeok/app/domain/auth/store/HandoffTokenStore.java
  • src/main/java/com/jjikmeok/app/domain/auth/store/OAuthStateStore.java
  • src/main/java/com/jjikmeok/app/domain/auth/store/RedisHandoffTokenStore.java
  • src/main/java/com/jjikmeok/app/domain/auth/store/RedisOAuthStateStore.java
  • src/main/java/com/jjikmeok/app/domain/auth/token/HandoffTokenEntry.java
  • src/main/java/com/jjikmeok/app/domain/auth/token/OAuthTokenGenerator.java
  • src/main/java/com/jjikmeok/app/domain/favorite/controller/FavoriteController.java
  • src/main/java/com/jjikmeok/app/domain/favorite/converter/FavoriteConverter.java
  • src/main/java/com/jjikmeok/app/domain/favorite/dto/request/FavoriteRequest.java
  • src/main/java/com/jjikmeok/app/domain/favorite/dto/response/FavoriteResponse.java
  • src/main/java/com/jjikmeok/app/domain/favorite/entity/Favorite.java
  • src/main/java/com/jjikmeok/app/domain/favorite/repository/FavoriteRepository.java
  • src/main/java/com/jjikmeok/app/domain/favorite/service/FavoriteService.java
  • src/main/java/com/jjikmeok/app/domain/favorite/service/FavoriteServiceImpl.java
  • src/main/java/com/jjikmeok/app/domain/image/controller/ImageController.java
  • src/main/java/com/jjikmeok/app/domain/image/converter/ActivityImageConverter.java
  • src/main/java/com/jjikmeok/app/domain/image/converter/ImageConverter.java
  • src/main/java/com/jjikmeok/app/domain/image/dto/request/ImageRequest.java
  • src/main/java/com/jjikmeok/app/domain/image/dto/response/ImageResponse.java
  • src/main/java/com/jjikmeok/app/domain/image/entity/Image.java
  • src/main/java/com/jjikmeok/app/domain/image/repository/ImageRepository.java
  • src/main/java/com/jjikmeok/app/domain/image/service/ActivityImageService.java
  • src/main/java/com/jjikmeok/app/domain/image/service/ImageService.java
  • src/main/java/com/jjikmeok/app/domain/image/service/ImageServiceImpl.java
  • src/main/java/com/jjikmeok/app/domain/page/controller/PageController.java
  • src/main/java/com/jjikmeok/app/domain/page/converter/PageConverter.java
  • src/main/java/com/jjikmeok/app/domain/page/dto/response/ActivityCardResponse.java
  • src/main/java/com/jjikmeok/app/domain/page/dto/response/ActivityCategoryPageResponse.java
  • src/main/java/com/jjikmeok/app/domain/page/dto/response/ActivityCustomPageResponse.java
  • src/main/java/com/jjikmeok/app/domain/page/dto/response/ActivityDetailPageResponse.java
  • src/main/java/com/jjikmeok/app/domain/page/dto/response/ActivityFilterOptionResponse.java
  • src/main/java/com/jjikmeok/app/domain/page/dto/response/ActivityHomePageResponse.java
  • src/main/java/com/jjikmeok/app/domain/page/dto/response/ActivityListItemResponse.java
  • src/main/java/com/jjikmeok/app/domain/page/dto/response/ActivitySectionResponse.java
  • src/main/java/com/jjikmeok/app/domain/page/dto/response/ActivityShortcutResponse.java
  • src/main/java/com/jjikmeok/app/domain/page/dto/response/HomePageResponse.java
  • src/main/java/com/jjikmeok/app/domain/page/dto/response/ImageItemResponse.java
  • src/main/java/com/jjikmeok/app/domain/page/service/PageService.java
  • src/main/java/com/jjikmeok/app/domain/page/service/PageServiceImpl.java
  • src/main/java/com/jjikmeok/app/domain/personalization/service/PersonlizationService.java
  • src/main/java/com/jjikmeok/app/domain/region/controller/RegionController.java
  • src/main/java/com/jjikmeok/app/domain/review/controller/ReviewController.java
  • src/main/java/com/jjikmeok/app/domain/review/converter/ReviewConverter.java
  • src/main/java/com/jjikmeok/app/domain/review/dto/request/ReviewRequest.java
  • src/main/java/com/jjikmeok/app/domain/review/dto/response/ReviewResponse.java
  • src/main/java/com/jjikmeok/app/domain/review/entity/Review.java
  • src/main/java/com/jjikmeok/app/domain/review/repository/ReviewRepository.java
  • src/main/java/com/jjikmeok/app/domain/review/service/ReviewService.java
  • src/main/java/com/jjikmeok/app/domain/review/service/ReviewServiceImpl.java
  • src/main/java/com/jjikmeok/app/domain/sync/controller/ActivitySyncController.java
  • src/main/java/com/jjikmeok/app/domain/sync/service/ActivitySyncScheduler.java
  • src/main/java/com/jjikmeok/app/domain/sync/service/CategoryClassifier.java
  • src/main/java/com/jjikmeok/app/domain/tag/controller/TagController.java
  • src/main/java/com/jjikmeok/app/domain/tag/repository/TagRepository.java
  • src/main/java/com/jjikmeok/app/domain/tag/service/TagServiceImpl.java
  • src/main/java/com/jjikmeok/app/domain/user/controller/UserProfileController.java
  • src/main/java/com/jjikmeok/app/global/common/exception/ErrorCode.java
  • src/main/java/com/jjikmeok/app/global/common/response/ApiResponse.java
  • src/main/java/com/jjikmeok/app/global/config/SecurityConfig.java
  • src/main/resources/application.yml
  • src/main/resources/db/migration/V20260625_1100__merge_activity_categories.sql
  • src/test/java/com/jjikmeok/app/domain/activity/controller/ActivityControllerTest.java
  • src/test/java/com/jjikmeok/app/domain/activity/enums/ActivityTaxonomyTest.java
  • src/test/java/com/jjikmeok/app/domain/activity/privateactivity/service/DiscoveryUrlQualityServiceTest.java
  • src/test/java/com/jjikmeok/app/domain/activity/privateactivity/service/RobotsPolicyServiceTest.java
  • src/test/java/com/jjikmeok/app/domain/activity/privateactivity/support/DiscoveryUrlNormalizerTest.java
  • src/test/java/com/jjikmeok/app/domain/activity/publicactivity/service/ActivityNormalizerTest.java
  • src/test/java/com/jjikmeok/app/domain/activity/publicactivity/service/CategoryClassifierTest.java
  • src/test/java/com/jjikmeok/app/domain/activity/publicactivity/service/ExternalActivityGatewayTest.java
  • src/test/java/com/jjikmeok/app/domain/activity/service/ActivityServiceImplTest.java
  • src/test/java/com/jjikmeok/app/domain/activity/service/UrlManualActivityServiceTest.java
  • src/test/java/com/jjikmeok/app/domain/image/service/ImageServiceImplTest.java
  • src/test/java/com/jjikmeok/app/domain/page/controller/PageControllerTest.java
  • src/test/java/com/jjikmeok/app/domain/page/converter/PageConverterTest.java
  • src/test/java/com/jjikmeok/app/domain/page/service/PageServiceImplTest.java
  • src/test/java/com/jjikmeok/app/domain/sync/service/ActivityNormalizerTest.java
  • src/test/java/com/jjikmeok/app/domain/sync/service/ActivitySyncServiceImplTest.java
  • src/test/java/com/jjikmeok/app/domain/sync/service/CategoryClassifierTest.java
  • src/test/java/com/jjikmeok/app/domain/tag/service/TagServiceImplTest.java

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch main

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@juwoojae juwoojae self-assigned this Jun 28, 2026
@juwoojae juwoojae added Chore 패키지 매니저 수정, 설정 변경 등 기타 작업을 위해 사용합니다. Fix 버그를 수정할 때 사용합니다. labels Jun 28, 2026
@juwoojae juwoojae merged commit 9da4f34 into dev Jun 28, 2026
2 of 4 checks passed
@juwoojae juwoojae deleted the main branch June 28, 2026 04:44
@github-project-automation github-project-automation Bot moved this from Backlog to Done in 찍먹 server kanban Jun 28, 2026
@juwoojae juwoojae requested review from jucheonsu and user040131 June 28, 2026 04:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Chore 패키지 매니저 수정, 설정 변경 등 기타 작업을 위해 사용합니다. Fix 버그를 수정할 때 사용합니다.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants