🧑💻 오늘의 개발하면서 생긴 크고 작은 이슈사항을 기록해주세요
💚 어떤 기능인가요?
설정은 있으나 실제로는 효력이 없어 운영에서 조용히 오동작하던 항목들을 바로잡습니다.
1. 캐시 키가 SpEL 이 아님 — 커스텀 CachingAspect 가 key = "#policyId" 를 리터럴 문자열로 씁니다. 모든 정책이 policy:#policyId 한 키를 공유해, 1번을 조회한 뒤 2번을 조회하면 1번 데이터가 돌아옵니다.
2. Redis 설정 무시 — spring.redis.* 는 Boot 2.x 키입니다. Boot 3 에서는 spring.data.redis.* 여야 하므로 REDIS_HOST 가 반영되지 않고 항상 localhost 로 붙습니다.
3. prod 첫 배포 실패 — Flyway 베이스라인이 SELECT 1; 한 줄인데 prod 는 ddl-auto=validate. 신규 DB 에 배포하면 기동 불가입니다. 실제 DDL 은 db/index.sql 에 있지만 마이그레이션 경로 밖이고 DROP TABLE 로 시작합니다.
4. 설정 3중 관리 — properties + dev.yml + prod.yml 중복, 한글 주석이 ? 로 깨져 있습니다.
✅ To Dos
🧑💻 오늘의 개발하면서 생긴 크고 작은 이슈사항을 기록해주세요
💚 어떤 기능인가요?
설정은 있으나 실제로는 효력이 없어 운영에서 조용히 오동작하던 항목들을 바로잡습니다.
1. 캐시 키가 SpEL 이 아님 — 커스텀
CachingAspect가key = "#policyId"를 리터럴 문자열로 씁니다. 모든 정책이policy:#policyId한 키를 공유해, 1번을 조회한 뒤 2번을 조회하면 1번 데이터가 돌아옵니다.2. Redis 설정 무시 —
spring.redis.*는 Boot 2.x 키입니다. Boot 3 에서는spring.data.redis.*여야 하므로REDIS_HOST가 반영되지 않고 항상 localhost 로 붙습니다.3. prod 첫 배포 실패 — Flyway 베이스라인이
SELECT 1;한 줄인데 prod 는ddl-auto=validate. 신규 DB 에 배포하면 기동 불가입니다. 실제 DDL 은db/index.sql에 있지만 마이그레이션 경로 밖이고DROP TABLE로 시작합니다.4. 설정 3중 관리 — properties + dev.yml + prod.yml 중복, 한글 주석이
?로 깨져 있습니다.✅ To Dos
@Cacheable/@CacheEvict+RedisCacheManager사용,JavaTimeModule등록spring.data.redis.*로 키 교정index.sqlDDL 을V1__baseline.sql로 이관(DROP 제거), 중복 파일 삭제application.properties제거, 공통은application.yml로 통합하고 프로파일은 차이만 유지