내일배움캠프27 내일배움캠프 최종프로젝트 - 캐싱 적용-1 최종프로젝트 주제로 e커머스를 설계를 하게 되면서 조회 api 사용시 응답속도 개선 및 변경될 일이 없거나 변경 기회가 적은 데이터에 대한 서버와 DB 와의 트래픽 의 비용감소 및 최적화 목적으로 캐싱을 적용을 하려고 한다. 기본적으로 캐싱 전략에 대해 알아야한다. 캐싱 전략 웹 서비스 환경에서 시스템 성능 향상을 기대할 수 있는 중요한 기술로 일반적으로 캐시는 메모리(RAM)을 사용하기 때문에 기존 데이터 베이스보다 훨씬 빠르게 데이터를 응답 할 수 있어 이용자에게 빠르게 서비스를 제공할 수 있다. 하지만 기본적으로 RAM은 용량이 커봐야 16~32G 정도로 데이터를 모든 캐시에 저장해버리면 용량 부족현상이 일어나 시스템이 다운될 경우가 있다. 따라서 어느 종류에 대한 데이터를 캐시에 저장할지, 얼마만.. 2024. 4. 4. 내일 배움 캠프 TIL -QueryDSL을 사용해서 수정일 순으로 정렬해서 가져오자 개인과제로 만들었었던 프로젝트로 기본적인 스프링 부트 crud 구현에서 조회 부분에 querydsl을 적용해보려고 한다. QueryDsL 이란 정적 타입을 이용하여, SQL과 같은 쿼리를 코드형태로 생성할 수 있도록 해주는 오픈소스 빌더 API이다. JPQL처럼 query문을 문자열로 작성하는 하드 코딩이 아닌 코드형태로 작성을하여 컴파일 시간에 에러가 식별되어 리스크를 줄일 수가 있다. JPQL을 사용한 quey문 public interface PersonRepository extends JpaRepository{ /*변수 바인딩 시, ?시퀀스 사용하는 경우 */ @Query("select p from Person p where p.firstName = ?1 and p.lastName = ?2") Pe.. 2024. 3. 11. 내일배움캠프TIL - @RestControllerAdvice 뉴스피드 프로젝트를 하게 되면서 api 요청에 대한 예외처리 응답을 따로따로 관리해주기가 힘들어 이것을 관리해 주는 것이 필요로 하였다. 이러한 부분을 해결하기위해 스프링 부트에서 제공하는 @RestControllerAdvice를 사용하여 예외처리를 하게 되었다. RestControllerAdvice는 주로 @RestController + @RestControllerAdvice + @ExceptionHandler 조합으로 사용된다. 먼저 예외를 담아서 Client에 보내줄 객체를 만든다. @Getter @Setter @AllArgsConstructor public class ExceptionDto { private int statusCode; private HttpStatus state; private .. 2024. 2. 14. 내일배움캠프TIL - ResponseEntity 개인과제를 통한 API 구현 중 클라이언트의 응답을 상태코드와 메세지 그리고 Response하는 data를 반환하기 위하여 ResponseEntity에 대해 알아 보고 적용을 시켰다. ResponseEntity는 Spring Framework에서 제공하는 클래스 중 HttpEntity라는 클래스가 존재한다. 것은 HTTP 요청(Request) 또는 응답(Response)에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스 public class HttpEntity { private final HttpHeaders headers; @Nullable private final T body; } public class RequestEntity extends HttpEntity public clas.. 2024. 2. 6. 이전 1 2 3 4 5 ··· 7 다음