Skip to content

[PROD] 리펙토링(로그인, OCR), 배치 slack 알림 실서버 배포 #113

Merged
fnzl54 merged 6 commits intomainfrom
dev
Feb 10, 2026
Merged

[PROD] 리펙토링(로그인, OCR), 배치 slack 알림 실서버 배포 #113
fnzl54 merged 6 commits intomainfrom
dev

Conversation

@fnzl54
Copy link
Copy Markdown
Member

@fnzl54 fnzl54 commented Feb 10, 2026

dev 브랜치의 개발팀 내부 QA 리팩토링 및 신규 기능 개발 건을 통합 배포합니다.
별개로 진행된 작업들이지만 작업 완료 시점이 비슷하여 내부 QA 작업본을 한 번에 배포 진행할 예정입니다.
(로그인 리펙토링, 배치 실패 알림 등이 포함 됩니다.)

@fnzl54 fnzl54 self-assigned this Feb 10, 2026
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @fnzl54, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 개발 브랜치에서 진행된 여러 리팩토링 및 신규 기능 개발 사항을 프로덕션 환경에 통합합니다. 주요 변경 사항으로는 로그인 시스템의 사용자 식별자(providerId에서 userId로) 전환, PDF 및 이미지 파일을 모두 처리할 수 있도록 OCR 서비스 확장, 배치 작업 실패 시 Slack 알림 기능 도입 등이 있습니다. 이러한 변경 사항들은 시스템의 안정성, 유연성 및 운영 편의성을 향상시키는 데 중점을 둡니다.

Highlights

  • 로그인 시스템 리팩토링: 리프레시 토큰 및 관련 서비스에서 사용자 식별자를 providerId에서 userId로 변경하여 로그인 처리의 일관성과 보안을 강화했습니다.
  • OCR 서비스 개선: OCR 추출 로직이 PDF 파일뿐만 아니라 다양한 이미지 파일 형식(JPG, PNG 등)을 지원하도록 확장되었으며, 파일 유형 검증 및 오류 처리가 강화되었습니다.
  • 배치 작업 실패 알림 기능 추가: 배치 작업 실패 시 Slack을 통해 알림을 전송하는 새로운 시스템이 도입되어 운영 효율성을 높였습니다.
  • 토큰 재발급 및 로그아웃 기능 강화: 액세스 토큰 재발급 로직이 개선되었고, 리프레시 토큰 무효화를 위한 전용 로그아웃 엔드포인트가 추가되었습니다. 또한, 쿠키 처리 방식이 ResponseCookie를 사용하도록 변경되었습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • build.gradle
    • Apache HTTP 클라이언트 httpclient5 의존성이 추가되었습니다.
  • src/main/java/org/quizly/quizly/account/service/CreateOnboardingService.java
    • 사용자 조회 로직이 providerId 대신 userId를 사용하도록 업데이트되었습니다.
  • src/main/java/org/quizly/quizly/account/service/ReadUserService.java
    • 사용자 조회 로직이 providerId 대신 userId를 사용하도록 업데이트되었습니다.
  • src/main/java/org/quizly/quizly/admin/service/BatchAggregateSummaryService.java
    • 사용자 조회 로직이 providerId 대신 userId를 사용하도록 업데이트되었습니다.
  • src/main/java/org/quizly/quizly/batch/listener/BatchFailureAlertListener.java
    • 배치 작업 실패 시 Slack 알림을 전송하는 새로운 리스너가 추가되었습니다.
  • src/main/java/org/quizly/quizly/batch/message/BatchFailureNotificationMessage.java
    • 배치 실패 알림 메시지 구조를 정의하는 새로운 클래스가 추가되었습니다.
  • src/main/java/org/quizly/quizly/configuration/RestClientConfig.java
    • 연결 및 응답 타임아웃이 설정된 RestTemplate을 위한 새로운 설정 클래스가 추가되었습니다.
  • src/main/java/org/quizly/quizly/core/domin/entity/RefreshToken.java
    • providerIdname 필드가 userId 필드로 변경되었습니다.
  • src/main/java/org/quizly/quizly/core/domin/repository/RefreshTokenRepository.java
    • findByProviderId 메서드가 findByUserId로 변경되었고, deleteByUserId 메서드가 추가되었습니다.
  • src/main/java/org/quizly/quizly/core/notification/NotificationMessage.java
    • 알림 메시지를 위한 새로운 인터페이스가 추가되었습니다.
  • src/main/java/org/quizly/quizly/core/notification/NotificationProvider.java
    • 알림 제공자를 위한 새로운 인터페이스가 추가되었습니다.
  • src/main/java/org/quizly/quizly/external/ocr/service/AsyncOcrService.java
    • OCR 추출 로직이 PDF 및 이미지 파일을 모두 처리하도록 리팩토링되었고, 새로운 오류 코드가 추가되었습니다.
  • src/main/java/org/quizly/quizly/external/slack/dto/Request/SlackRequest.java
    • Slack API 요청 본문을 위한 새로운 레코드가 추가되었습니다.
  • src/main/java/org/quizly/quizly/external/slack/service/NoOpSlackNotificationService.java
    • 로컬 프로파일을 위한 No-Op Slack 알림 서비스가 추가되었습니다.
  • src/main/java/org/quizly/quizly/external/slack/service/SlackNotificationService.java
    • 개발/운영 프로파일을 위한 새로운 Slack 알림 서비스가 추가되었으며, RestTemplate과 통합되었습니다.
  • src/main/java/org/quizly/quizly/jwt/JwtAuthenticationFilter.java
    • 유효하지 않은 JWT 토큰에 대한 로깅이 userId를 포함하도록 수정되었습니다.
  • src/main/java/org/quizly/quizly/jwt/JwtProvider.java
    • JWT 클레임이 providerId에서 userId로 변경되어 토큰 생성 및 검색에 사용됩니다.
  • src/main/java/org/quizly/quizly/oauth/OAuth2LoginSuccessHandler.java
    • providerId 대신 userId를 사용하도록 업데이트되었고, UserRepository 의존성이 추가되었으며, 쿠키 처리가 ResponseCookie를 사용하도록 변경되었습니다.
  • src/main/java/org/quizly/quizly/oauth/UserPrincipal.java
    • provider, providerId, name 대신 userId를 직접 저장하도록 리팩토링되었습니다.
  • src/main/java/org/quizly/quizly/oauth/controller/delete/RevokeRefreshTokenController.java
    • 리프레시 토큰 무효화(로그아웃)를 위한 새로운 컨트롤러가 추가되었습니다.
  • src/main/java/org/quizly/quizly/oauth/controller/post/ReissueAccessTokenController.java
    • 컨트롤러 이름이 변경되었고, 쿠키 처리가 ResponseCookie를 사용하도록 업데이트되었습니다.
  • src/main/java/org/quizly/quizly/oauth/dto/response/KakaoUserInfo.java
    • 카카오 API 응답에서 누락된 필드에 대한 오류 처리가 개선되었고, getName() 메서드가 getNickname()으로 변경되었습니다.
  • src/main/java/org/quizly/quizly/oauth/dto/response/NaverUserInfo.java
    • getName() 메서드가 getNickname()으로 변경되었습니다.
  • src/main/java/org/quizly/quizly/oauth/dto/response/OAuth2UserInfo.java
    • 인터페이스 메서드 getName()getNickname()으로 업데이트되었습니다.
  • src/main/java/org/quizly/quizly/oauth/dto/response/ReissueAccessTokenResponse.java
    • 응답 DTO 이름이 변경되었습니다.
  • src/main/java/org/quizly/quizly/oauth/service/OAuth2LoginUserService.java
    • UserPrincipaluserId를 사용하고 사용자 생성/업데이트에 getNickname()을 사용하도록 업데이트되었습니다.
  • src/main/java/org/quizly/quizly/oauth/service/ReissueAccessTokenService.java
    • 서비스 이름이 변경되었고, userId를 사용하도록 로직이 업데이트되었으며, 오류 처리가 개선되었습니다.
  • src/main/java/org/quizly/quizly/oauth/service/RevokeRefreshTokenService.java
    • 리프레시 토큰 무효화를 위한 새로운 서비스가 추가되었습니다.
  • src/main/resources/application-dev.yml
    • spring.profiles.active: dev 설정이 추가되었습니다.
Activity
  • 개발팀 내부 QA를 거친 리팩토링 및 신규 기능 개발 건이 dev 브랜치에서 통합 배포되었습니다.
  • 로그인 리팩토링, OCR 리팩토링, 배치 실패 알림 기능이 포함된 여러 PR(pull/111, pull/109, pull/107, pull/112)의 변경 사항이 통합되었습니다.
  • 실서버 배포 후 기존 토큰 데이터 삭제 및 refresh_token 테이블 스키마 변경(provider_id, name 컬럼 제거 및 user_id 컬럼 추가)을 위한 SQL 명령어가 제공되었습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

gemini-code-assist[bot]

This comment was marked as resolved.

@Quizly-Team Quizly-Team deleted a comment from gemini-code-assist bot Feb 10, 2026
@Quizly-Team Quizly-Team deleted a comment from gemini-code-assist bot Feb 10, 2026
@Quizly-Team Quizly-Team deleted a comment from gemini-code-assist bot Feb 10, 2026
@fnzl54 fnzl54 requested a review from yeonchaepark February 10, 2026 07:52
@fnzl54 fnzl54 merged commit df6b4ea into main Feb 10, 2026
1 check failed
@fnzl54 fnzl54 changed the title [prod] 리펙토링(로그인, OCR), 배치 slack 알림 실서버 배포 [PROD] 리펙토링(로그인, OCR), 배치 slack 알림 실서버 배포 Feb 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants