Java/Spring

Java/Spring

SpringBoot 배포 직후 첫요청의 응답 지연현상

aws에 spring boot로 만든 프로젝트를 배포 후에 생각지 못한 현상을 발견하게 되었습니다.첫번째 응답에서 매우 느린 응답 지연현상을 발견했기 때문입니다. 처음에 이유는 분명 어딘가에서 쿼리 결과를 캐싱하고 있다고 생각했습니다. (이제와서 다시보니 캐싱되었다고 보기에는 3초의 시간은 너무 느리네요ㅎㅎ..)현재는 따로 쿼리 결과를 Redis에 캐싱하지 않고 있어 어디에서 캐싱을 하고 있는지 알아내려고 했습니다. 1. 데이터베이스(Mysql) 쿼리 캐싱Mysql 8.0 버전 이상부터는 쿼리 캐싱이 제거되었다고 합니다. 따라서 8.0 버전을 쓰고 있는 저에게는 해당 사항이 없습니다. 2. JPA의 1차 캐싱Jpa의 1차 캐싱은 같은 트랜잭션 내에서 유효합니다.API를 여러번 호출 했을 때, 각 호출은 ..

Java/Spring

Spring Interceptor를 활용한 Jwt 유저 정보 추출

Json Web Token을 활용해 사용자를 인증하는 방식은 서버에 사용자의 상태를 저장하지 않기 때문에 stateless 합니다.또한 Jwt에는 사용자의 간단한 정보를 담을 수 있습니다.이 정보를 활용하기 위해서는 요청헤더에서 토큰을 얻고 토큰에서 사용자의 정보를 다음과 같이 추출할 수 있습니다. @Operation(summary = "회원이 작성한 게시물 목록") @GetMapping("wrote/boards") public RestResult boardListByMember(@RequestParam(defaultValue = "0") int pageNumber, @RequestParam(defaultValue..

Java/Spring

Server Side Rendering 방식의 웹 앱에서 JWT을 사용하는 SpringSecurity 적용의 어려움

그간 팀프로젝트를 하느라 바빠 오랜만에 글을 써봅니다.이번 주제는 팀프로젝트를 하는동안 만났던 문제점과 그 문제를 해결한 방법에대해 써볼까 합니다. 제가 네이버클라우드 캠프에서 팀원들과 했던 프로젝트는 SpringBoot와 Thymeleaf를 사용하는 Server Side Rendering 방식의 웹 어플리케이션이였습니다.서버사이드렌더링 방식은 Front-end와 Back-end가 구분되어 있는 구조가 아닌1. 서버측에서 필요한 데이터를 준비하고2. 해당 데이터를 Model 객체에 담아 템플릿 엔진을 사용해 HTML 파일에 데이터를 그려낸후,3. 클라이언트의 요청에 대한 응답으로 정적 파일(HTML, CSS, JAVASCRIPT)을 내려주는 방식을 말합니다.그림으로 나타내면 다음과 같죠이때, 문제가 있었..

chobo5
'Java/Spring' 카테고리의 글 목록