왜 메서드 레벨 캐싱(@Cacheable)이 필요한가
·
BackEnd/Spring
1. 서론웹 애플리케이션을 운영하다 보면, 같은 비즈니스 로직을 반복 호출하면서 DB 조회나 복잡한 연산이 잦은 경우가 많습니다. JVM, JDBC 드라이버, 데이터베이스, 운영체제 차원의 여러 캐싱 메커니즘 덕분에 응답 속도가 자연스럽게 빨라지긴 하지만, 실제 애플리케이션 로직 자체는 매번 실행되기 때문에 근본적인 성능 병목이 남을 수 있습니다.이 글에서는 인프라 레벨 캐싱과 애플리케이션 레벨 캐싱(@Cacheable)의 차이를 비교하고, 언제 @Cacheable을 적용해야 할지 명확히 정리합니다.2. 인프라 레벨 캐싱(자동 워밍업)JVM, JDBC 드라이버, 데이터베이스, 운영체제 등 시스템 전반에 걸친 캐싱·버퍼링 기능은 애플리케이션 코드 수정 없이도 워밍업(Warm-up) 효과를 줍니다.JVM J..
Spring에서 .env 파일을 로드하는 방법
·
BackEnd/Spring
Spring Boot에서 환경 변수를 별도의 .env 파일로 관리할 수 있다. 하지만 Spring Boot는 기본적으로 확장자가 없는 파일은 직접 로드할 수 없으므로, 별도의 힌트를 줘야 한다. 🔸 설정 방법spring: config: import: optional:file:.env[.properties]위 설정의 의미는, Spring Boot에게 확장자가 없는 .env 파일을 .properties 형식으로 처리하라는 뜻이다..env 파일의 내용은 일반적으로 key=value 형태이기 때문에 .properties 형식과 호환된다. ⚠️ 주의사항.env 파일의 형식은 YAML(.yml)과 다르기 때문에 [.yml]로 지정하면 파싱 오류가 발생한다.따라서 [.properties] 외에 다른 확장자를..