본문 바로가기

전체 글27

Cache-Control을 잘못 사용했을 때의 문제점 지난 글에서 Cache-Control을 통한 브라우저 캐싱 최적화에 대해서 다뤄본 적이 있다.👉 HTTP 캐싱을 통한 웹 브라우저 최적화 feat. Cache-Control, ETag HTTP 캐싱을 통한 웹 브라우저 최적화 feat. Cache-Control, ETag실무에서 사용자 경험을 끌어올리기 위해 적용할 수 있는 캐싱 전략은 다양하다. 이번 글에선 ETag와 Cache-Control을 활용해 HTTP 프로토콜 레이어에서의 캐싱을 통해 서버의 부하를 줄이고 네트워크khrdev.tistory.com본 글에선 Cache-Control을 잘못 설정했을 경우 발생할 수 있는 문제점에 대해서 다뤄볼까 한다.물론 캐싱을 잘못했을 때, 데이터가 변경되었음에도 불구하고 캐싱된 이전 데이터를 계속 노출한다거나.. 2025. 9. 17.
[Micrometer] Reached the maximum number of URI tags for 'http.server.requests'. 서비스를 운영 중에 다음과 같은 warning 로그를 모니터링하게 되었다.warning 로그가 발생하고 있는 지점은 micrometer-core의 OnlyOnceLoggingDenyMeterFilter였다. 디버깅을 통해 확인해 본 결과, 직접 커스터마이징 한 필터 이후에 OnlyOnceLoggingDenyMeterFilter가 작동하며 Warning Message를 발생시키고 있던 것이다.Reached the maximum number of URI tags for 'http.server.requests'가 발생한 원인과 해결법http.server.requests 에러는 메트릭 시스템에서 URI 태그의 고유한 조합이 너무 많아질 경우 발생하는 에러다.이는 주로 프로메테우스, 마이크로미터와 같은 모니터링 .. 2025. 9. 16.
HTTP 캐싱을 통한 웹 브라우저 최적화 feat. Cache-Control, ETag 실무에서 사용자 경험을 끌어올리기 위해 적용할 수 있는 캐싱 전략은 다양하다. 이번 글에선 ETag와 Cache-Control을 활용해 HTTP 프로토콜 레이어에서의 캐싱을 통해 서버의 부하를 줄이고 네트워크 대역폭을 감소시켜 사용자 경험을 향상시킬 수 있는 방법에 대해서 작성해 본다. 🤔HTTP Cache-ControlHTTP 응답 헤더 중 하나로, 클라이언트(브라우저)나 프록시 캐시가 응답을 어떻게 캐싱할지 제어하는 역할을 한다. 중요 디렉티브는 다음과 같다.max-age=응답을 캐시에 저장하고 지정된 시간(초) 동안 재검증 없이 사용한다. max-age의 최대치는 31536000으로 최대 1년이다.max-age 대신 Expires 헤더를 통해 캐시 만료 시간을 시점 기준으로 정확히 지정할 수도 있.. 2025. 9. 15.
[SpringBoot] 스프링부트 3.3 이후 boorJar의 새로운 패키징 방식에 대하여 지난 글에서 Java 코드를 빌드할 수 있는 여러 가지 방법에 대해서 소개했었다.👉 Java 코드를 빌드할 수 있는 여러가지 방법 feat. jar, bootJar, shadowJar Java 코드를 빌드할 수 있는 여러가지 방법 feat. jar, bootJar, shadowJarJava와 Kotlin과 같은 JVM 언어들은 Jar 파일로 빌드할 수 있는 다양한 방법이 있다.본 글에선 jar, bootJar, shadowJar 등에 대해 비교해 보고 각각 어떤 역할을 하는지에 대해 소개해본다. 🙂‍↕️ Java나khrdev.tistory.com Fat Jar에 속하는 bootJar가 동작하는 원리와 의존성 라이브러리들을 어떻게 관리하는지에 관한 내용을 담고 있다.본 글에선 스프링 부트가 애플리케이션.. 2025. 9. 14.