안녕하세요~ 오늘은 서버에서 자주 사용하는 Spring Framework의 캐시에 대한 정의와 Spring Framework에서 제공하는 추상화 어노테이션인 위의 3개의 어노테이션와 관련된 기능에 대해 알아보려고 합니다. 1. Spring이 제공하는 캐시는 어떤 일을 할까요? 캐시는 서버의 부담을 줄이고, 성능을 높이기 위해 사용되는 기술입니다. 같은 파라미터로 넘어오는 요청에 대하여 계산이 복잡하고, 같은 데이터를 여러번 조회하는 것은 서버의 입장으로 큰 손해입니다. 캐시는 값을 저장하고 사용하기 때문에 동일한 응답을 주는 것에 대해 이점을 가지고 있습니다. 그래서 사람들은 동일한 데이터를 서버의 리소스 낭비 없이 전달해주기 위해 캐시를 적용하였습니다. Spring 도 마찬가지로 이런 점을 반영하여 캐..
Author: 니용 서버 개발자라면 한 번은 들어본 Redis라는 캐시 메모리가 있습니다. 성능적인 면에서도 우수하고 부하가 거의 없기에 잘 사용하고 있는 라이브러리 중 하나이지요. Java는 2가지의 Redis Client를 지원합니다. 1. Jedis 2. Lettuce 이전에는 발생하지 않았었는데 최근 Spring Boot의 버전이 업그레이드되면서 자연스럽게 Jedis가 deprecated 되는 증상이 발생하였습니다. Boot Version 2.1.x 정도였을 것으로 생각됩니다. 사용을 아예 못하는 것은 아니지만 찜찜하기에... 그래서 이번에 라이브러리 업데이트를 하려고 합니다. 먼저 이전에 적용되어 있던 Jedis 관련 gradle을 뜯어보겠습니다. Jedis build.gradle depende..
Author: 주니용 웹 프로젝트에서 /resource/static에 들어가는 파일의 대부분은 캐시의 영향을 받습니다. 배포를 하더라도 기존의 캐시가 적용되면 캐시 삭제를 하지 않는 이상 변경되지 않습니다. 대개 *.js 파일이나 *.css 파일이 많이 수정이 되는 경우 이슈가 생겨 배포를 하더라도 클라이언트가 캐시 삭제를 하지 않는 이상 보통은 기존의 파일을 가지고 있게 됩니다. 따라서, 이를 해결하기 위한 Thymeleaf만의 꿀팁이 있습니다. 먼저 Controller의 Model에서 아무 키값에 System.currentTimemillis()를 넣어줍니다. @Controller @RequestMapping("/test") public class TestController { @RequestMappi..
Author: 주니용 2019년 기준으로 한국과 미국 간의 비행기 거리는 비행기 시간으로 18시간이 걸린다. 하지만 김포공항에서 출발한 비행기는 제주도까지 불과 1시간밖에 걸리지 않는다. 갑자기 뜬금포로 비행기 시간의 얘기가 왜 나오는 것이지?? 거리가 멀수록 데이터를 전송할 때 걸리는 시간도 비례한다. 즉, 우리는 서울에 서버를 위치해둔 홈페이지를 제주도에서 들어가는데 1초가 걸린다면 미국에서는 18배인 18초가 걸려야 하는 것이다. 충격이다. 대부분의 한국 사용자들은 못기다리고 탈주하겠지... (나는 그래요) 이런 문제를 해결하기 위해 한국 서버 미국 서버 사이에 중계기를 두어서 조금 더 빠르게 접근하고 전달하는데 필요한 자원낭비를 최소로 하는 것이 바로 CDN(Contents Delievery Ne..