Skip to content

백엔드 조회 최적화 및 오류 응답 강화 - #26

Merged
Heyaaz merged 10 commits into
mainfrom
agent/backend-optimization-local-history
Jul 8, 2026
Merged

백엔드 조회 최적화 및 오류 응답 강화#26
Heyaaz merged 10 commits into
mainfrom
agent/backend-optimization-local-history

Conversation

@Heyaaz

@Heyaaz Heyaaz commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Summary

  • 로컬 선행 사진첩/방 이름/일정 재진입 커밋 포함
  • 방/일정 조회 경로 N+1 완화 및 schedule read assembler 도입
  • TourAPI 배치 upsert/enrichment 트랜잭션 범위 최적화
  • malformed JSON 400 INVALID_REQUEST 처리 및 공격적 계약 테스트 추가
  • origin/main 최신 인증, 공유 토큰, 외부 인기 신호 변경 통합

Verification

  • git diff --check
  • DOCKER_HOST=unix:///Users/byeonheejae/.docker/run/docker.sock ./gradlew compileTestKotlin
  • DOCKER_HOST=unix:///Users/byeonheejae/.docker/run/docker.sock ./gradlew test --rerun-tasks

Notes

  • Draft PR

Heyaaz added 10 commits May 17, 2026 20:37
Shared photo album P0 stores image bytes in PostgreSQL bytea, so the repository test covers visible-photo filtering, soft-delete exclusion, and byte-array round trips. The entity mapping now binds content as binary data instead of a PostgreSQL large-object OID.

Constraint: P0 stores photo files in DB bytea while object storage is deferred

Rejected: Keep @lob mapping | Hibernate persisted an OID/bigint and failed against bytea

Confidence: high

Scope-risk: narrow

Tested: ./gradlew testClasses --no-daemon

Tested: ./gradlew test --tests com.tripsync.domain.repository.TripPhotoRepositoryTest --no-daemon

Not-tested: Full ./gradlew test suite due leader instruction to finish current slice with focused evidence
The album UI needs authenticated endpoints for listing slot-grouped memories, uploading DB-backed image bytes, returning inline image content, and applying uploader/host moderation rules.

Constraint: P0 stores files in DB bytea and excludes public album sharing

Constraint: S3/object storage remains a future extension boundary rather than a P0 dependency

Rejected: Public /share photo endpoints | photo consent and moderation model are not ready for P0

Confidence: high

Scope-risk: moderate

Tested: ./gradlew compileKotlin --no-daemon

Tested: ./gradlew test --tests com.tripsync.domain.repository.TripPhotoRepositoryTest --no-daemon

Not-tested: Full end-to-end multipart upload through browser
@Heyaaz
Heyaaz marked this pull request as ready for review July 8, 2026 01:38

@Heyaaz Heyaaz left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Nogada PR Review

Verdict

  • 승인 가능: blocking 이슈 없음

Blocking issues

  • 없음

Non-blocking notes

  • ./gradlew clean test --no-daemon --no-build-cache는 fresh detached worktree에서 성공함.
  • 테스트 종료 시 Hibernate/Testcontainers 정리 로그가 다소 noisy하지만, Gradle exit 0이고 XML 기준 실패/에러 없음.

Checked scope

  • room/schedule 조회 경로 최적화: member count, schedule summary, stored schedule detail assembly
  • TourAPI sync/enrich 트랜잭션 경계 및 retry/failure accounting
  • Flyway V11/V12 마이그레이션과 인덱스/타입 정합성
  • malformed JSON/invalid auth/soft-delete/public share/hostile text contract 테스트
  • 검증: git diff --check origin/main...pr-26 통과
  • 검증: test XML summary files=16, tests=84, failures=0, errors=0, skipped=0

@Heyaaz
Heyaaz merged commit 02983ae into main Jul 8, 2026
2 checks passed
@Heyaaz
Heyaaz deleted the agent/backend-optimization-local-history branch July 8, 2026 01:40
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.

1 participant