본문 바로가기

분류 전체보기146

[Spring] Json 응답 gzip 압축하기 - 2 이전 글에서 min-reponse-size 설정값에 대한 문제가 있었습니다. 해결방법을 찾아서 돌아온다고 했지만.. 시도해보려고 한 방법은 두 가지 입니다. 1. 응답값에 대한 Content-Length 헤더를 직접 HttpServletResponse에 넣어준다. 이 방법에는 큰 문제가 있습니다. 이전 글에서도 언급했듯이 Transfer-Encoding 헤더 문서를 보면 Content-Length가 생략된다고 나와있습니다. 생략되는 이유는 rfc 7230 section 2.2.2 을 보면 스펙으로 정해놓을 것을 볼 수 있습니다. (Spring Framekwork 깃허브 저장소에 같은 내용의 이슈가 등록되어 있습니다.) 간단하게 요약하자만 Transfer-Encoding 과 Content-Length 헤더.. 2021. 9. 11.
[Spring] Json 응답 gzip 압축하기 - 1 Json 컨텐츠를 gzip으로 압축해서 보낼 수 있다는것을 알았습니다. (참고자료 : https://www.baeldung.com/json-reduce-data-size) baeldung님의 말에 따르면 Json응답 181kb를 기준으로 gzip 압축을 했을 때 45.9kb로 압축됐다고 합니다. 원래 크기의 25.3%가 돼서 74.7%가 압축된 셈이죠. 설정하는 법은 간단합니다. 설정파일에 아래와 같이 설정할 수 있습니다. // application.yml server: compression: enabled: true mime-types: text/html,text/plain,text/css,application/javascript,application/json min-response-size: 500 .. 2021. 9. 10.
[AWS]Cloudfront에서 이미지 캐싱하기 우테코에서 웹 성능 개선에 대한 수업을 듣고 놀토 서비스의 성능을 개선하기 위해 웹 페이지 테스트를 돌려봤습니다. https://www.webpagetest.org/ WebPageTest - Website Performance and Optimization Test Select Test Location Virginia - EC2Salt Lake City, Utah - GCECalifornia - EC2Toronto, Canada - EC2Sao Paulo, Brazil - EC2Ireland - EC2London, UK - EC2Paris - EC2Amsterdam, NL - GCEFrankfurt, Germany - EC2Milan, Italy - EC2Stockholm, Sweden - EC2Cape.. 2021. 9. 10.
글 조회시 조회수 중복 증가 방지를 위해 Session VS Cookie 팀 프로젝트를 진행하면서 글의 조회수를 조작해서 방금 올렸던 글을 자기 자신이 100번 새로고침하면 조회수가 100회가 되는 마술이 있었습니다. 따라서 글의 조회수 중복 증가를 방지하지 위해 글 조회시 이전에 조회를 했던 이력이 있다면 조회수가 증가하지 않도록 구현하고싶었습니다. 처음에 나왔던 의견이 세션 스토리지를 활용하는 것이었습니다. 세션 스토리지를 활용한 흐름은 아래처럼 흘러갑니다. 1. 글을 조회 요청이 오면 세션에 글의 고유 ID를 키(Key)로 하는 값이 존재하는지 확인합니다. 2. 세션에 글의 고유ID가 존재하지 않는다면 세션 스토리지에 글의 고유 ID를 Key로 저장하고 글의 조회수를 증가시키고 글의 정보를 응답해줍니다. 3. 세션에 글의 고유 ID가 존재한다면 글의 조회수를 증가시키지 .. 2021. 9. 2.
[Java] ExecutorService 인터페이스 execute() 와 submit() 차이점 ExecutorService 인터페이스는 스레드의 실행을 관리하고 제어하는 데 도움이 되는 메서드를 추가하여 Executor를 상속합니다. java.util.concurrent 패키지에 정의되어 있습니다. 결과를 반환하는 스레드, 스레드 집합을 실행하고 종료 상태를 결정하는 메서드를 정의합니다. 이 글에서는 execute()와 submit()라는 두 가지 방법의 차이를 살펴보겠습니다. 제목에는 ExecutorService 인터페이스의 execute() 메서드와 submit() 메서드라고 했지만 실제 구조는 아래와 같습니다. execute() 메서드는 Executor 인터페이스에 정의 되어있습니다. submit() 메서드는 ExecutorService 인터페이스에 정의되어있고 Executor 인터페이스를 .. 2021. 8. 29.