Skip to content

[Feat] 프로필 이미지 backfill 실행 추가 (#199) - #200

Open
hwistlezz wants to merge 111 commits into
developfrom
feat/#199/user-profile-image-backfill
Open

hwistlezz wants to merge 111 commits into
developfrom
feat/#199/user-profile-image-backfill

Conversation

@hwistlezz

@hwistlezz hwistlezz commented Sep 4, 2026

Copy link
Copy Markdown
Member

🔥 작업 내용 (What)

회원의 기존 프로필 사진을 최적화 이미지로 전환하는 실행기를 추가했습니다. 새 이미지가 준비되기 전에는 기존 사진을 유지합니다.


🧩 변경 사항 (Details)

  • 탈퇴 회원·기본 프로필·이미 전환된 사진은 제외합니다.
  • 대상 확인, 복사·변환 요청, 준비된 이미지 연결을 나눠 실행합니다.
  • V23에 진행 위치와 실행 상태를 저장합니다. 진행 기록에 개인정보나 원본 key는 넣지 않습니다.
  • 연결 직전에 탈퇴 여부와 현재 사진을 다시 확인하고, 이미지 연결과 진행 기록을 함께 저장합니다.
  • 실행 권한이 만료된 작업은 진행 기록을 덮어쓰지 못하도록 했습니다.

📸 스크린샷

화면 변경은 없습니다. 현재 커밋의 CI 결과로 확인할 수 있습니다.


⚠️ 주의 사항 (Caution)

  • 전환 기능은 기본 비활성 상태이며, 실제 AWS 전환은 실행하지 않았습니다.
  • [Feat] 식당 및 메뉴 이미지 backfill 실행 추가 (#196) #198·#202와 반복되는 실행 코드의 공통화 범위는 팀원 리뷰를 검토한 뒤 정리할 예정입니다.
  • 운영 실행 전 #203의 관측·반복 접근 오류 중단 기능과 개발 환경 전체 흐름 검증이 필요합니다.
  • 복사 중 회원이 탈퇴하면 연결되지 않은 파일이 남을 수 있습니다. 파일 정리는 별도 작업입니다.
  • 프로필 수정 API나 인증 정책은 바꾸지 않습니다. 기존 key도 유지합니다.

🔗 관련 이슈

Closes #199


✅ 체크리스트

  • 현재 커밋의 빌드 및 테스트 CI 통과
  • 테스트 결과 링크 첨부
  • 남은 팀원 리뷰 보완 완료
  • 실제 AWS 환경 통합 검증

gichanGim
gichanGim previously approved these changes Sep 8, 2026

@gichanGim gichanGim left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

수고하셨어요~

Comment on lines +15 to +37
class UserProfileBackfillCheckpointStore {

private static final String INSERT_IF_ABSENT_SQL = """
INSERT INTO user_profile_backfill_checkpoint (
run_id, mode, status, upper_bound_id, cursor_id,
scanned_count, prepared_count, attached_count, skipped_count, failed_count
) VALUES (?, ?, 'PAUSED', ?, 0, 0, 0, 0, 0, 0)
ON DUPLICATE KEY UPDATE run_id = run_id
""";
private static final String SELECT_SQL = """
SELECT run_id, mode, status, upper_bound_id, cursor_id,
lease_token, lease_until, scanned_count, prepared_count,
attached_count, skipped_count, failed_count
FROM user_profile_backfill_checkpoint
WHERE run_id = ?
""";
private static final String SELECT_FOR_UPDATE_SQL = SELECT_SQL + " FOR UPDATE";

private final JdbcTemplate jdbcTemplate;

UserProfileBackfillCheckpointStore(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

#198 백필 골격을 그대로 가져오신 것 같은데, 다른 게 target 파라미터 유무랑 이름·로그 문구뿐이고 루프·lease·재시도·체크포인트는 똑같아보입니다!

#202에서 magazine이 세 번째로 같은 걸 만드는 것도 봤는데, 지금 공용으로 빼두면 #202는 후보 조회랑 연결만 하면 되지 않을까요?

@gichanGim
gichanGim force-pushed the feat/#199/user-profile-image-backfill branch from c98d2ee to f0f2cf9 Compare September 9, 2026 00:25
@gichanGim
gichanGim force-pushed the feat/#196/restaurant-menu-image-backfill branch from e52341f to c62ba44 Compare September 9, 2026 00:26
@hwistlezz
hwistlezz changed the base branch from feat/#196/restaurant-menu-image-backfill to develop September 16, 2026 15:02
@hwistlezz
hwistlezz dismissed gichanGim’s stale review September 16, 2026 15:02

The base branch was changed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat] 프로필 이미지 backfill 실행 추가

2 participants