🧑💻 오늘의 개발하면서 생긴 크고 작은 이슈사항을 기록해주세요
💚 어떤 기능인가요?
prod 프로파일로 실제 기동을 시도한 결과, 애플리케이션이 한 번도 정상적으로 뜬 적이 없다는 사실을 확인했습니다.
DB 스키마·로깅 설정·기동 러너까지 순차적으로 막혀 있었고, 기동에 성공한 뒤에도 병원 API가 전부 401/500이었습니다.
발견한 기동 차단 원인
| # | 증상 | 원인 |
|---|
| 1 | 로그 경로가 ..._IS_UNDEFINED | Logback 은 ${VAR:-기본값} 문법인데 Spring 문법 ${VAR:기본값} 을 씀 |
| 2 | Function 'ngram' is not defined | V4 의 WITH PARSER ngram 은 MySQL 전용, MariaDB 미지원 |
| 3 | 전 테이블 검증 실패 | Boot 기본 네이밍 전략이 테이블명을 소문자로 바꿈. 마이그레이션은 대문자 |
| 4 | missing table 다수 | TBL_POLICY_BOOKMARKS, TBL_NOTIFICATION_CHANNEL 이 DDL 에 없음 |
| 5 | missing column view_count | 엔티티·서비스는 쓰는데 컬럼이 없어 조회수가 저장된 적 없음 |
| 6 | 죽은 매핑 | HealthRecordType 은 참조 0건이고 테이블도 없음 |
| 7 | Table 'carecode.tbl_hospital' doesn't exist | 기동 러너가 소문자 네이티브 SQL 사용. 게다가 병원을 정원 50·평점 4.5 허구값으로 시설 테이블에 복사 |
| 8 | /actuator/health 503 | 메일 헬스체크가 SMTP 장애만으로 전체를 DOWN 시킴 |
기동 이후 발견한 문제
- 병원 API 실제 경로는
/health/hospitals/** 인데 SecurityConfig 공개 규칙은 존재하지 않는 /hospitals/** 에 걸려 있었음.
앞선 /health/** → authenticated() 가 전부 잡아 병원 목록·검색·리뷰 조회가 모두 로그인 필수였음 - 클래스 레벨
@PreAuthorize("isAuthenticated()") 가 URL 규칙을 덮고 있었음 - 없는 URL 과 권한 거부가 404/403 이 아니라 500 + 운영 알림으로 처리됨
✅ To Dos
🧑💻 오늘의 개발하면서 생긴 크고 작은 이슈사항을 기록해주세요
💚 어떤 기능인가요?
prod 프로파일로 실제 기동을 시도한 결과, 애플리케이션이 한 번도 정상적으로 뜬 적이 없다는 사실을 확인했습니다.
DB 스키마·로깅 설정·기동 러너까지 순차적으로 막혀 있었고, 기동에 성공한 뒤에도 병원 API가 전부 401/500이었습니다.
발견한 기동 차단 원인
..._IS_UNDEFINED${VAR:-기본값}문법인데 Spring 문법${VAR:기본값}을 씀Function 'ngram' is not definedWITH PARSER ngram은 MySQL 전용, MariaDB 미지원missing table다수TBL_POLICY_BOOKMARKS,TBL_NOTIFICATION_CHANNEL이 DDL 에 없음missing column view_countHealthRecordType은 참조 0건이고 테이블도 없음Table 'carecode.tbl_hospital' doesn't exist/actuator/health503기동 이후 발견한 문제
/health/hospitals/**인데 SecurityConfig 공개 규칙은 존재하지 않는/hospitals/**에 걸려 있었음.앞선
/health/**→authenticated()가 전부 잡아 병원 목록·검색·리뷰 조회가 모두 로그인 필수였음@PreAuthorize("isAuthenticated()")가 URL 규칙을 덮고 있었음✅ To Dos
CareCodeNamingStrategy추가HealthRecordType매핑 제거