Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (2)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
|
|
||
| // aws | ||
| implementation 'software.amazon.awssdk:s3:2.25.60' | ||
| implementation 'software.amazon.awssdk:s3' |
There was a problem hiding this comment.
버전 번호를 지우시면서 AWS SDK가 2.25.60 → 2.31.78로 올라가는 상황이에요.
이걸 기존 /api/v1/uploads presigned URL 발급도 같이 쓰는데, UploadServiceTest는 FakeFileStorage라 SDK를 안 타서 동작이 바뀌어도 못 잡고, 이걸 잡아줄 테스트도 없는 상황인 것 같습니다.
ADR 4절 "기존 S3 presigner 동작은 dependency 변경 전후 회귀 테스트로 고정한다"가 이 경우인 것 같습니다.
S3MediaOriginalStorageTest처럼 실제 presigner 쓰는 테스트를 하나 추가해주시거나, 2.25.60 버전으로 유지하는게 좋을 것 같습니다!
There was a problem hiding this comment.
실제 presigner로 기존 업로드 URL을 발급하는 테스트를 추가했습니다!
라이브러리 버전은 현재 설정을 유지햇습니다.
| recoverStalledProcessing(); | ||
| } | ||
|
|
||
| @EventListener(ApplicationReadyEvent.class) |
There was a problem hiding this comment.
ApplicationReadyEvent 리스너 세 개에 try/catch가 없어 보입니다.
Boot가 이 리스너 예외를 기동 실패로 처리하는 걸로 알고 있는데, 맞다면
recoverStalledProcessing()이 최대 1,000건 도는 중 락 타임아웃 한 번에 앱이 안 뜰 수 있지 않을까라는 생각이 듭니다!
try/catch로 감싸거나 @async로 떼는 건 어떠실까요?
There was a problem hiding this comment.
시작할 때 실행하는 이미지 작업은 각각 오류를 처리하도록 수정했습니다!
하나가 실패해도 나머지는 실행하고, 실패한 작업은 기존 주기에 다시 확인하게 햇습니다
437dde1 to
dd94616
Compare
c21c359 to
6c1cb94
Compare
🔥 작업 내용 (What)
Spring 서버에서 이미지 변환 요청을 보내고, worker의 처리 결과를 받아 이미지 상태를 갱신하도록 연결했습니다. 메시지가 중복되거나 순서가 바뀌어도 기존 정상 이미지 상태가 잘못 변경되지 않도록 처리했습니다.
🧩 변경 사항 (Details)
이번 실패 코드 보완
SOURCE_TOO_SMALL결과를 받아 저장하도록 했습니다. 기존 대용량 오류 코드 3종은 그대로 유지합니다.9d29d6a에서 결과 파싱 테스트 11개와 MySQL 결과 처리 통합 테스트 20개를 실행했습니다. 실패·오류·건너뛴 테스트는 없습니다.팀원 리뷰 반영
a34e097: 기존 업로드도 실제 AWS SDK presigner로 URL을 만드는지 확인하는 테스트 9개를 추가했습니다. PUT, 만료시간, 파일 헤더와 키 인코딩을 검사하며 AWS에는 요청하지 않습니다.133b089: 시작 시 이미지 작업 세 가지를 각각 실행하고, 하나가 실패해도 나머지 작업과 서버 시작을 막지 않도록 했습니다. 트랜잭션 시작·종료 실패도 처리하고 작업명과 오류 유형을 기록합니다. 정기 실행 간격과 재시도 조건은 유지했습니다.build를 실행해 테스트 330개가 통과했습니다. 실패·오류·건너뛴 테스트는 없습니다. 테스트 종료 시 MySQL 연결 및 EPR 종료 경고가 있었으나 빌드는 성공했습니다.최신 #187 반영
bddbccd에서 #187의 최신 변경(7449b7c)을 반영했습니다. worker 오류 처리·테스트, CI 구성, 문서 변경이 포함됩니다.이전 검증 기록
c21c359에서 테스트 JVM을 UTC로 설정해 전체 빌드·테스트를 실행했습니다. 서버 테스트 300개 통과, 실패·오류·건너뛴 테스트 0개입니다.988be41검증 결과는 worker 테스트 40개, 인프라 스크립트 테스트 33개, SAM 빌드·Lambda ZIP 검증 통과입니다.📸 스크린샷
화면 변경은 없습니다. 테스트 결과는 위에 정리했습니다.
develop/main대상 PR에서 실행됩니다. 대상 브랜치를 정리한 뒤 현재 커밋의 GitHub 빌드·테스트를 확인해야 합니다.issuance_enabled=false와 대상 PROCESSING 작업이 없는지 확인해야 합니다.🔗 관련 이슈
Closes #188
선행 PR: #187
✅ 체크리스트