Redis란 ✔️ 메모리 기반의 데이터 저장소로, 높은 성능을 제공하는 NoSQL 데이터베이스입니다. Key, Value 구조의 비정형 데이터를 저장하고 관리할 수 있습니다. 규모가 작은, 사용자가 많지 않은 서비스의 경우에는 WEB - WAS - DB의 구조로 모든 정보를 데이터베이스에 저장합니다. 하지만 사용자가 늘어나 조회의 빈도가 늘어난다면, 데이터베이스가 과부하될 수 있고, 또한 성능 저하가 일어날 수 있습니다. 그래서 이를 개선하고자, 캐시 서버를 도입하여 데이터베이스 서버의 과부하를 줄여주는데 이때 사용할 수 있는 캐시 서버 중 하나가 Redis입니다. 캐시란 ✔️ 캐시는 한번 읽어온 데이터를 임의의 공간에 저장하여 다음에 읽을 때는 빠르게 결괏값을 받을 수 있도록 도와주는 공간입니다. 같은..
1. @PageableDefault() 사용하여 페이징 처리하기여러 개의 리스트를 한 번에 보여주지 않고, 정해진 개수로 페이징 처리할 때 @PageableDefault() 어노테이션을 사용하면 쉽게 처리할 수 있습니다. Service 클래스@Transactional(readOnly = true) public Page BoardList(Pageable pageable) { return postsRepository.findAll(pageable);}우리는 JpaRepository를 상속받은 Repository의 findAll 함수를 사용하여 파라미터로 Pageable 객체를 넣어주면 간단하게 페이징 기능을 구현할 수 있습니다.Page 를 타입으로 지정하면, 반드시 파라미터로 Pageabl..
1. @AuthenticationPrincipal 어노테이션이란 무엇인가? 스프링 시큐리티를 사용하여 사용자 인증을 처리하고 있는 경우, @AuthenticationPrincipal 어노테이션을 통해 현재 인증된(로그인된) 사용자의 정보를 편리하게 가져와 사용할 수 있습니다. @AuthenticationPrincipal은 스프링 프레임워크에서 사용되는 어노테이션 중 하나로, 사용자 인증 정보를 주입받기 위해 사용합니다. 주로 웹 애플리케이션에서 인증된(로그인한) 사용자의 정보를 Controller이나 Service 클래스에서 접근하고 활용하는 데 사용됩니다. @AuthenticationPrincipal을 통해 매번 인증된 사용자의 정보를 DB에 접근해서 데이터를 가져오는 것을 막을 수 있습니다. 한 번 ..
[인프런] 김영한님의 실전 스프링부트와 JPA 활용 2편을 수강하면서 공부한 내용을 바탕으로 작성하였습니다. API 개발 중 요청 값과 응답 값을 DTO로 주고받는 방법과 지연 로딩 최적화에 대해 작성한 글입니다. [스프링부트 API 개발] API 개발 1 - DTO로 데이터 전달하기, 지연 로딩, 컬렉션 최적화 [인프런] 김영한님의 실전 스프링부트와 JPA 활용 2편을 수강하면서 공부한 내용을 바탕으로 작성하였습니다. 스프링부트를 통해 API를 개발할 때 요청(Request)하는 값과 반환(Response) 받는 값을 엔 kylo8.tistory.com [Spring Framework/JPA] - [스프링부트 API 개발] API 개발 1 - DTO로 데이터 전달하기, 지연 로딩, 컬렉션 최적화 컬렉션..