REST API는 현대 웹 애플리케이션에서 가장 많이 사용되는 데이터 전송 방식입니다. 그러나 빈번한 API 호출로 인해 서버 부하가 증가하거나 응답 속도가 느려질 수 있습니다. 이를 해결하기 위한 방법 중 하나가 Caching(캐싱)입니다. 이번 글에서는 REST API의 성능을 극대화할 수 있는 세 가지 주요 Caching 전략과 실습 예제를 소개합니다. 1. 브라우저 캐싱브라우저 캐싱은 클라이언트가 캐싱된 데이터를 활용하도록 하는 전략입니다. HTTP 응답 헤더에 Cache-Control이나 ETag를 설정하여 브라우저 캐싱 동작을 제어할 수 있습니다.예제: Cache-Control 설정Spring Boot에서 Cache-Control 헤더를 설정하는 예제입니다.@RestController@Requ..
트러블슈팅

레거시 자체 프레임워크에서 동적 쿼리 리팩토링 해보기 담당하고 있는 사이트의 관리자페이지 수정사항 요청인데 기록해두고 공유하면 좋을 것 같아서 써보려고 합니다. java1.8, oracle11, 자체프레임워크를 사용중입니다. 실무내용이라 보안상 테이블구조나 전체쿼리는 공개하지 않습니다. 그리고 최대한 다른곳에 영향이 없게끔 큰 구조를 변경 하지않고 요구사항을 충족하는게 목표입니다. 상황설명 ??? : 주문번호를 전부 적어야되서 불편해요 -> 419495-00012, 419495-00013, 419495-00014 전체 입력해야됨 나 : 그러네요 저런식이면 주문번호 필터기능을 사용을 안하고 정렬만 눌러서 사용하겠네요 -> 419495 만 입력했을때 해당 주문번호의 서브주문이 같이 검색되게 처리해야겠따! -..

추석 시즌이라 사용자가 몰리면서, 사이트에 접속이 안된다는 연락을 받았다 😱추석 복지몰 전용서버를 스카우터로 확인해보니 200명가량에서 멈춰있었고,내가 url을 쳐서 접속해보려니 접속대기상태가 되었다. 서버는 죽지 않았고, HEAP, GC TIME 정상, 에러로그도 안나왔다.다른 connector가 연결이 끊어질때까지 기다리는 느낌이였다 😩 새로 셋팅한 서버인데 옵션을 좀 조정해줘야 할 것 같아서, 정리해두고 밤에 작업을 해주었다.추가적으로 서버 재기동하는김에 JVM쪽 튜닝도 아주 살짝만 해줄려고 한다. 1. JVM 튜닝"JVM 튜닝을 한다는건 GC(Garbage Collection)를 튜닝하는 것과 마찬가지다"라고 봅니다GC가 돌아갈때 다른 스레드들이 전부 멈추게 되는데요 -> SWT(Stop T..

최근 이직한 회사에서 서버 이전 진행 하면서 SCOUTER 라는 오픈소스 APM툴을 톰캣에 붙이고 alert를 커스텀하여 모니터링과 이메일로 에러등을 받는 것을 셋팅하였다 👩💻 그리고 위와 같은 에러메세지를 이메일로 받았다 근본적인 원인은 자체프레임워크 사용중인데 DBCP 관련해서 문제가 있는거 같았다 😵 TCP포트도 많이 물고 있다 (뜯어보는중이고, 사실 다른 문제들도 많아서 쉽지는 않겠지만 스프링으로 넘길 생각이다) 어쨋든 당장 주어진 상황에서 최적의 방법을 생각해야 좋은 개발자 아니겠습니까 에러부터 해결해봅시다 😀 0. 1번의 쿼리 조회시 ORA-00942: table or view does not exist ORA-00942: table or view does not exist 이런 문구가 나온..