Author: 니용 안녕하세요! 이번 글에서는 Java에서 종종 보게 되는 직렬화에 대해 알아보고자 합니다. 직렬이라고 하면 학창시절 과학시간에 전지가 일렬로 놓여져 있는 것을 종종 보셨을텐데, 그 개념을 그대로 따온 것이라고 이해하시면 빠르실 겁니다. 먼저 직렬화의 정의에 대해서 알아보겠습니다. 직렬화: 객체들을 일렬로 정렬해놓아 서로 정보 전달이 가능한 상태를 의미하고, 연속적으로 데이터를 변형하기 때문에 Stream을 사용하기 유리합니다. 역직렬화: 직렬화된 객체들을 다시 풀어놓아 원래의 상태로 복원하는 것을 의미합니다. 정의 직렬화 인터페이스는 기본적으로 serialVersionUID를 가지고 있습니다. public interface Serializable { private static final..
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..