diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 131a670..4030fab 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,33 +9,6 @@ jobs: name: Test & Build runs-on: ubuntu-latest - services: - # PostGIS 확장 자동 활성화된 PostgreSQL 16 - # 주의: pgvector 확장은 미포함 — 벡터 의존 테스트는 별도 처리 필요 - postgres: - image: postgis/postgis:16-3.4 - env: - POSTGRES_USER: test - POSTGRES_PASSWORD: test - POSTGRES_DB: test - ports: - - 5432:5432 - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 10 - - redis: - image: redis:7-alpine - ports: - - 6379:6379 - options: >- - --health-cmd "redis-cli ping" - --health-interval 10s - --health-timeout 5s - --health-retries 5 - steps: - uses: actions/checkout@v4 diff --git a/src/main/java/com/catchtable/store/service/StoreService.java b/src/main/java/com/catchtable/store/service/StoreService.java index f1a63ec..2dba805 100644 --- a/src/main/java/com/catchtable/store/service/StoreService.java +++ b/src/main/java/com/catchtable/store/service/StoreService.java @@ -58,7 +58,7 @@ public StoreCreateResponse createStore(Long userId, StoreCreateRequest request) * 매장 목록 통합 조회 (이름·카테고리·지역 옵셔널 필터 + DB 페이지네이션 + 인기 정렬) * Specification 사용으로 PostgreSQL+enum 조합에서 :param IS NULL 회피. */ - @Cacheable(value = "storeList", key = "T(String).valueOf(#category) + ':' + T(String).valueOf(#district) + ':' + #page + ':' + #size", condition = "#name == null") + @Cacheable(value = "storeList", key = "(#category?.name() ?: 'ALL') + ':' + (#district?.name() ?: 'ALL') + ':' + #page + ':' + #size", condition = "#name == null || #name.isBlank()") @Transactional(readOnly = true) public List getStores(String name, Category category, District district, int page, int size) { int limitedSize = Math.min(size, 100);