v2.37change journal

POP-SPOT v2.37 — 레이트리밋 컴파일 오류와 Java 포맷 정리

김동현223
#백엔드#프론트엔드#회고#트러블슈팅
v2.37 릴리즈에 포함된 Git 기록을 빠짐없이 펼친 기술 기록이다. 전문 용어는 바로 풀어 쓰고, 바뀐 모든 코드 줄을 Before → After로 비교했다.

먼저 쉽게 설명하면

레이트리밋 컴파일 오류와 Java 포맷 정리 작업이 중심이다. 이 릴리즈는 눈에 보이는 결과뿐 아니라 그 결과를 만든 파일과 코드까지 모두 추적했다.

읽는 법

  • Before는 바뀌기 전 줄이다.
  • After는 바뀐 뒤 줄이다.
  • ‘해당 코드 없음’은 새로 추가했거나 완전히 지운 구간이라는 뜻이다.
  • 영상·이미지처럼 글자로 비교할 수 없는 파일은 Git의 추가·수정·삭제 상태로 기록했다.
  • Git 기준 범위

  • 릴리즈: v2.37
  • 기준 날짜: 2026-07-20
  • 커밋: 9개
  • 파일 변경 기록: 53개
  • 추가한 줄: 1346줄
  • 삭제한 줄: 237줄
  • 검증 ID: b39e3b29a58f6609a57149ff198bf3c4a5c907e025e5d2c761e5aa2bfa24c890
  • 기준 커밋: 898bd80b149c

  • 커밋 402ab2b — fix(보안): 무단 takedown 차단 + 업로드 파일 실체 검증변경 파일 7

    GitHub에서 이 커밋 보기

    쉬운 설명: 무단 takedown 차단 + 업로드 파일 실체 검증 작업이다.

    바꾼 이유: [P0] 비로그인 사용자가 팝업을 즉시 비노출시킬 수 있었다. /api/ 가 전부 공개인데 POST /api/popups/{id}/takedown 이 즉시 reviewStatus=TAKEDOWN 을 설정하고 공개 조회 쿼리가 그것을 제외한다. "즉시 차단" 자체는 약관 §11 과 about 페이지에 공표된 권리자 보호 정책이라 유지해야 하므로 남용 경로만 막는다.

    파일 수: 7개이다.


    파일 1. popspot-backend/src/main/java/com/example/popspotbackend/config/RateLimitInterceptor.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 2. popspot-backend/src/main/java/com/example/popspotbackend/config/WebConfig.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 3. popspot-backend/src/main/java/com/example/popspotbackend/controller/ChatFileController.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 4. popspot-backend/src/main/java/com/example/popspotbackend/controller/PopupStoreController.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 5. popspot-backend/src/main/java/com/example/popspotbackend/controller/UserProfileController.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 6. popspot-backend/src/main/java/com/example/popspotbackend/repository/PopupStoreRepository.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 7. popspot-backend/src/main/java/com/example/popspotbackend/service/media/ImageUploadGuard.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    커밋 7e0dc15 — fix(신뢰): 종료된 팝업 노출 차단 + 지킬 수 없는 알림 약속 제거변경 파일 6

    GitHub에서 이 커밋 보기

    쉬운 설명: 종료된 팝업 노출 차단 + 지킬 수 없는 알림 약속 제거 작업이다.

    바꾼 이유: 검색으로 들어온 사용자가 "성수 팝업" 을 보러 왔는데 어제 닫힌 곳이 나오는 문제, 그리고 존재하지 않는 알림 기능을 광고하던 문구를 정리한다.

    파일 수: 6개이다.


    파일 1. popspot-frontend/app/HomeClient.tsx

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 2. popspot-frontend/app/feed.xml/route.ts

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 3. popspot-frontend/app/layout.tsx

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 4. popspot-frontend/app/page.tsx

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 5. popspot-frontend/app/popups/[slug]/page.tsx

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 6. popspot-frontend/src/lib/popupSlices.ts

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    커밋 06016dc — fix(툴링): ESLint 가 실행조차 못 하던 문제 — react-hooks 플러그인 해석 실패변경 파일 1

    GitHub에서 이 커밋 보기

    쉬운 설명: ESLint 가 실행조차 못 하던 문제 — react-hooks 플러그인 해석 실패 작업이다.

    바꾼 이유: npm run lint 이 파일 검사를 시작하기도 전에 죽고 있었다.

    파일 수: 1개이다.


    파일 1. popspot-frontend/eslint.config.mjs

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    커밋 3de8feb — fix(날짜): parseDate 형식 검증 보강 — parseInt·slice 우회 차단변경 파일 1

    GitHub에서 이 커밋 보기

    쉬운 설명: parseDate 형식 검증 보강 — parseInt·slice 우회 차단 작업이다.

    바꾼 이유: 7e0dc15 에서 달력 유효성(2026-02-31, 2026-99-99)은 막았지만, 숫자 변환 전에 문자열 모양을 확정하지 않아 두 가지가 남아 있었다.

    파일 수: 1개이다.


    파일 1. popspot-frontend/src/lib/popupSlices.ts

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    커밋 c908634 — fix(만료): 종료된 팝업 이중 차단 + 만료 스케줄러 타임존 버그변경 파일 3

    GitHub에서 이 커밋 보기

    쉬운 설명: 종료된 팝업 이중 차단 + 만료 스케줄러 타임존 버그 작업이다.

    바꾼 이유: 프론트(7e0dc15)에서 화면 단을 막았지만 검색·인기·음악추천·상세는 여전히 종료된 팝업을 내보내고 있었다. 근본 원인까지 함께 고친다.

    파일 수: 3개이다.


    파일 1. popspot-backend/src/main/java/com/example/popspotbackend/repository/PopupStoreRepository.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 2. popspot-backend/src/main/java/com/example/popspotbackend/service/PopupStoreService.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 3. popspot-backend/src/main/java/com/example/popspotbackend/service/crawler/PopupExpireScheduler.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    커밋 b084152 — style(백엔드): spotlessApply 적용 (google-java-format 1.17.0 aosp)변경 파일 22

    GitHub에서 이 커밋 보기

    쉬운 설명: spotlessApply 적용 (google-java-format 1.17.0 aosp) 작업이다.

    바꾼 이유: 로직 변경 없음. javadoc 재배치, 긴 인자 목록·문자열 배열 줄바꿈, 로그 호출 래핑 등 포매터 산출물만 반영한다. 22개 파일 전부 주석·공백·줄바꿈 변경이다.

    파일 수: 22개이다.


    파일 1. popspot-backend/src/main/java/com/example/popspotbackend/controller/MateController.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 2. popspot-backend/src/main/java/com/example/popspotbackend/controller/MyPageController.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 3. popspot-backend/src/main/java/com/example/popspotbackend/controller/PopupWaitController.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 4. popspot-backend/src/main/java/com/example/popspotbackend/controller/SpotifyAuthController.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 5. popspot-backend/src/main/java/com/example/popspotbackend/controller/StampController.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 6. popspot-backend/src/main/java/com/example/popspotbackend/controller/VisitController.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 7. popspot-backend/src/main/java/com/example/popspotbackend/entity/MatePost.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 8. popspot-backend/src/main/java/com/example/popspotbackend/entity/PopupWaitReport.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 9. popspot-backend/src/main/java/com/example/popspotbackend/entity/VisitLog.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 10. popspot-backend/src/main/java/com/example/popspotbackend/repository/ChatRepository.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 11. popspot-backend/src/main/java/com/example/popspotbackend/repository/PopupImageRepository.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 12. popspot-backend/src/main/java/com/example/popspotbackend/service/AiSearchService.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 13. popspot-backend/src/main/java/com/example/popspotbackend/service/AuthService.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 14. popspot-backend/src/main/java/com/example/popspotbackend/service/ChatIdentityResolver.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 15. popspot-backend/src/main/java/com/example/popspotbackend/service/EmailService.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 16. popspot-backend/src/main/java/com/example/popspotbackend/service/MateService.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 17. popspot-backend/src/main/java/com/example/popspotbackend/service/PexelsPhotoService.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 18. popspot-backend/src/main/java/com/example/popspotbackend/service/PopupDedupService.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 19. popspot-backend/src/main/java/com/example/popspotbackend/service/PopupPhotoService.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 20. popspot-backend/src/main/java/com/example/popspotbackend/service/PopupWaitService.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 21. popspot-backend/src/main/java/com/example/popspotbackend/service/backup/DatabaseBackupScheduler.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 22. popspot-backend/src/main/java/com/example/popspotbackend/service/music/MusicService.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    커밋 c160b41 — feat(수집): 검색 키워드 91→391개 확장 + 수집 주기 2회→4회변경 파일 5

    GitHub에서 이 커밋 보기

    쉬운 설명: 검색 키워드 91→391개 확장 + 수집 주기 2회→4회 작업이다.

    바꾼 이유: 하루 수집량이 10건 안팎에 머물던 원인은 빈도가 아니라 커버리지였다. 같은 키워드로 하루 두 번 돌면 같은 블로그를 다시 읽을 뿐이다. 실제로 진행 중이던 팝업(안경만두 더현대, 라테일 연남, 하츠투하츠 등)이 검색 키워드에 아예 없어 한 번도 조회되지 않았다.

    파일 수: 5개이다.


    파일 1. popspot-backend/src/main/java/com/example/popspotbackend/service/PopupDedupScheduler.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 2. popspot-backend/src/main/java/com/example/popspotbackend/service/crawler/PopupCrawlOrchestrator.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 3. popspot-backend/src/main/java/com/example/popspotbackend/service/crawler/PopupCrawlScheduler.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 4. popspot-backend/src/main/java/com/example/popspotbackend/service/crawler/PopupNormalizationService.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 5. popspot-backend/src/main/resources/application.properties

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    커밋 bdfb0c9 — fix(보안): 무인증 전체 팝업 노출 차단 + Algolia 인덱스에도 만료 필터변경 파일 3

    GitHub에서 이 커밋 보기

    쉬운 설명: 무인증 전체 팝업 노출 차단 + Algolia 인덱스에도 만료 필터 작업이다.

    바꾼 이유: c908634 에서 남겨둔 두 건을 마저 처리한다.

    파일 수: 3개이다.


    파일 1. popspot-backend/src/main/java/com/example/popspotbackend/controller/AdminController.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 2. popspot-backend/src/main/java/com/example/popspotbackend/controller/GoodsController.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 3. popspot-backend/src/main/java/com/example/popspotbackend/service/SearchService.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    커밋 898bd80 — fix(빌드): 레이트리밋 컴파일 오류와 Java 포맷 정리변경 파일 5

    GitHub에서 이 커밋 보기

    쉬운 설명: 레이트리밋 컴파일 오류와 Java 포맷 정리 작업이다.

    바꾼 이유: 커밋 제목에 적힌 문제를 해결하기 위해 코드를 바꿨다.

    파일 수: 5개이다.


    파일 1. popspot-backend/src/main/java/com/example/popspotbackend/config/RateLimitInterceptor.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 2. popspot-backend/src/main/java/com/example/popspotbackend/config/WebConfig.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 3. popspot-backend/src/main/java/com/example/popspotbackend/controller/ChatFileController.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 4. popspot-backend/src/main/java/com/example/popspotbackend/controller/UserProfileController.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    파일 5. popspot-backend/src/main/java/com/example/popspotbackend/service/media/ImageUploadGuard.java

    파일 전체 문맥

    조각만 보면 알기 어려운 코드를 파일 처음부터 끝까지 보여 준다. 초록은 추가·수정, 빨강은 삭제된 줄이다.

    공유XLinkedIn

    댓글