🧑💻 오늘의 개발하면서 생긴 크고 작은 이슈사항을 기록해주세요
💚 어떤 기능인가요?
공공데이터 연동(#61)으로 시설·정책 데이터가 늘어나면서 기존 조회 방식의 한계가 드러났습니다. 검색·추천·관측을 함께 손봅니다.
위치 검색이 아예 동작하지 않음 — findWithinRadius 가 존재하지 않는 테이블 care_facilities 를 참조합니다(실제는 TBL_CARE_FACILITIES). 게다가 전체 행에 대해 Haversine 을 계산해 인덱스를 타지 못합니다.
키워드 검색이 LIKE '%키워드%' — 선행 와일드카드라 인덱스를 쓸 수 없고, 관련도 정렬도 없습니다.
챗봇이 단일 키워드로만 검색 — 조사가 붙은 채로("어린이집은") 검색해 매칭률이 낮습니다.
개인화 없음 — 자녀 정보를 받아두고도 추천에 쓰지 않습니다. 유치원생 부모에게 신생아 정책이 그대로 노출됩니다.
N+1 을 추측으로 판단 중 — 어느 엔드포인트가 몇 건의 쿼리를 쏘는지 측정할 수단이 없습니다.
동기화 대상에 유치원이 없음 — FacilityType.KINDERGARTEN 이 정의돼 있는데 이 값을 채우는 경로가 하나도 없어 유치원 검색은 항상 0건입니다.
✅ To Dos
🧑💻 오늘의 개발하면서 생긴 크고 작은 이슈사항을 기록해주세요
💚 어떤 기능인가요?
공공데이터 연동(#61)으로 시설·정책 데이터가 늘어나면서 기존 조회 방식의 한계가 드러났습니다. 검색·추천·관측을 함께 손봅니다.
위치 검색이 아예 동작하지 않음 —
findWithinRadius가 존재하지 않는 테이블care_facilities를 참조합니다(실제는TBL_CARE_FACILITIES). 게다가 전체 행에 대해 Haversine 을 계산해 인덱스를 타지 못합니다.키워드 검색이
LIKE '%키워드%'— 선행 와일드카드라 인덱스를 쓸 수 없고, 관련도 정렬도 없습니다.챗봇이 단일 키워드로만 검색 — 조사가 붙은 채로("어린이집은") 검색해 매칭률이 낮습니다.
개인화 없음 — 자녀 정보를 받아두고도 추천에 쓰지 않습니다. 유치원생 부모에게 신생아 정책이 그대로 노출됩니다.
N+1 을 추측으로 판단 중 — 어느 엔드포인트가 몇 건의 쿼리를 쏘는지 측정할 수단이 없습니다.
동기화 대상에 유치원이 없음 —
FacilityType.KINDERGARTEN이 정의돼 있는데 이 값을 채우는 경로가 하나도 없어 유치원 검색은 항상 0건입니다.✅ To Dos
V4__search_indexes.sql), 잘못된 테이블 참조 수정MATCH ... AGAINST전문 검색 도입 + 짧은 키워드·연산자 문자·미지원 DB 는 LIKE 폴백(FullTextSearchSupport)GET /policies/recommendations)app.monitoring.query-count.enabled, 기본 비활성)/policies/recommendations·/policies/bookmarks가/policies/*permitAll 에 걸려 있던 인가 구멍 수정AgeRangeParser) — 동기화 정책이 개인화에서 제외되던 문제 해소PagedSyncTemplate) + 첫 페이지 전건 실패 시 매핑 불일치로 조기 중단@Operationdescription 축약