Skip to content

[DEV-89/BE] feat: 면접 pdf 파일 업로드 api 개발#387

Merged
zxc534 merged 17 commits intodevfrom
DEV-89/feat/면접-PDF-파일-업로드-API-개발
Feb 16, 2026

Hidden character warning

The head ref may contain hidden characters: "DEV-89/feat/\uba74\uc811-PDF-\ud30c\uc77c-\uc5c5\ub85c\ub4dc-API-\uac1c\ubc1c"
Merged

[DEV-89/BE] feat: 면접 pdf 파일 업로드 api 개발#387
zxc534 merged 17 commits intodevfrom
DEV-89/feat/면접-PDF-파일-업로드-API-개발

Conversation

@zxc534
Copy link
Collaborator

@zxc534 zxc534 commented Feb 15, 2026

관련 이슈

close #90

작업한 내용

  • 면접 pdf 파일 업로드 api 개발

PR 리뷰시 참고할 사항

AWS access key를 발급할 수 있는 권한이 없어서 로컬 테스트가 불가능합니다.
EC2에는 권한을 부여할 수 있어서 배포 후 확인이 필요해 보이네요.
access key는 내일 댕글님께 요청드리려합니다.

@zxc534 zxc534 self-assigned this Feb 15, 2026
@vercel
Copy link

vercel bot commented Feb 15, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
web-team4-refit Ignored Ignored Preview Feb 16, 2026 2:16am

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @zxc534, 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!

이 풀 리퀘스트는 면접 PDF 파일을 AWS S3에 업로드할 수 있도록 백엔드 기능을 구현합니다. 사용자가 PDF 파일을 안전하게 업로드할 수 있도록 사전 서명된 URL을 생성하는 새로운 API 엔드포인트와 관련 서비스 로직 및 S3 설정이 추가되었습니다.

Highlights

  • AWS S3 SDK 의존성 추가: AWS S3 SDK 관련 의존성(bom, s3, sso, ssooidc)이 backend/build.gradle 파일에 추가되었습니다.
  • PDF 업로드 사전 서명된 URL API 구현: 면접 PDF 파일을 AWS S3에 업로드하기 위한 사전 서명된 URL을 생성하는 새로운 API 엔드포인트가 InterviewController에 추가되었습니다.
  • S3 관련 서비스 로직 및 설정 추가: InterviewService에 PDF 업로드 URL 생성 로직이 구현되었으며, S3 설정을 위한 S3ConfigS3Property 클래스가 새로 추가되었습니다.
  • S3 설정 파일 정의: S3 버킷, 리전, 접두사, 사전 서명 만료 시간 등의 속성을 정의하는 application-s3.yml 파일이 추가되었습니다.
Changelog
  • backend/build.gradle
    • AWS S3 SDK 관련 의존성(bom, s3, sso, ssooidc)이 추가되었습니다.
  • backend/src/main/java/com/shyashyashya/refit/domain/interview/api/InterviewController.java
    • 면접 PDF 파일 업로드를 위한 사전 서명된 URL을 요청하는 getUploadUrl GET API 엔드포인트가 추가되었습니다.
  • backend/src/main/java/com/shyashyashya/refit/domain/interview/dto/response/PdfUploadUrlResponse.java
    • PDF 업로드 URL 응답을 위한 PdfUploadUrlResponse 레코드 클래스가 새로 추가되었습니다.
  • backend/src/main/java/com/shyashyashya/refit/domain/interview/service/InterviewService.java
    • PDF 업로드 URL을 생성하는 createPdfUploadUrl 메서드가 추가되었으며, S3Presigner 및 S3Property 의존성이 주입되었습니다.
  • backend/src/main/java/com/shyashyashya/refit/global/config/S3Config.java
    • S3Presigner 빈을 설정하는 S3Config 클래스가 새로 추가되었습니다.
  • backend/src/main/java/com/shyashyashya/refit/global/property/S3Property.java
    • S3 관련 설정 속성(region, bucket, prefix, presignExpireSeconds)을 정의하는 S3Property 레코드 클래스가 새로 추가되었습니다.
  • backend/src/main/resources/application-s3.yml
    • S3 서비스에 필요한 설정 값(리전, 버킷, 접두사, 사전 서명 만료 시간)이 정의되었습니다.
  • backend/src/test/resources/application-s3.yml
    • 테스트 환경에서 S3 서비스에 필요한 설정 값(리전, 버킷, 접두사, 사전 서명 만료 시간)이 정의되었습니다.
  • backend/src/test/resources/application.yml
    • application-s3.yml 설정 파일을 포함하도록 업데이트되었습니다.
Activity
  • AWS 액세스 키 권한 문제로 인해 로컬 테스트가 불가능하다는 점이 언급되었습니다.
  • 배포 후 EC2 환경에서 권한 부여를 통한 확인이 필요하다는 의견이 제시되었습니다.
  • 액세스 키 발급을 위해 다른 팀원에게 요청할 계획이 공유되었습니다.
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.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이 PR은 면접용 PDF 파일을 S3에 업로드하기 위한 pre-signed URL을 생성하는 API를 추가합니다. S3 설정, 속성, 그리고 URL 생성 로직이 포함된 구현입니다. 코드는 전반적으로 잘 작성되었지만, 몇 가지 개선점을 제안합니다.

주요 피드백:

  1. createPdfUploadUrl 메서드는 데이터베이스에 쓰기 작업을 수행하지 않으므로 @Transactional(readOnly = true)로 변경하여 성능을 향상시키고 메서드의 의도를 명확히 하는 것이 좋습니다.
  2. S3 객체 키가 현재 결정적(deterministic)이고 추측 가능합니다. UUID와 같은 임의의 값을 키에 포함하여 고유성을 보장하고 보안을 강화하는 것이 좋습니다.
  3. 현재 구현에서는 파일 업로드 후 서버에 파일 참조가 저장되지 않아 기능이 미완성 상태입니다. Interview 엔티티의 pdfUrl 필드가 업데이트되지 않습니다. 파일 업로드 완료를 서버에 알리고 파일 정보를 데이터베이스에 저장하는 후속 로직이 필요해 보입니다.

Copy link
Collaborator

@kckc0608 kckc0608 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 수고 많으셨습니다!
설에 댕글 리퀘스트.. 결국 보내야 하는군요..

@zxc534 zxc534 merged commit c130392 into dev Feb 16, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[DEV-89/BE] feat: 면접 PDF 파일 업로드 API 개발

2 participants