[트러블 슈팅] 인기 검색어 구현 Redis 설정 및 문제 해결하기
·
DBMS/Redis
1. 레디스 설정package com.example.eightyage.global.config;import org.springframework.cache.CacheManager;import org.springframework.cache.annotation.EnableCaching;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.cache.RedisCacheConfiguration;import org.springframework.data.redis.cache.RedisCacheManager;..
[Spring] 캐시를 이용한 인기 검색어 조회 기능 개발 로그
·
Spring
1. 캐시란?데이터나 값을 미리 복사해두는 임시 저장소 라고 생각하면 된다.클라이언트가 증가하면 DB에 대한 요청이 많아지고, 이로 인해 DB가 발생해 성능이 떨어질 수 있다. 이때, 서버와 데이터베이스 사이에 캐시를 두어,주로 자주 사용하는 데이터를 캐시에 임시로 저장해 두면,동일한 요청에 대해서 DB에 직접 접근하지 않고 빠르게 응답할 수 있어 성능이 향상된다.   🤔 이 프로젝트에서 왜 캐시를 사용하였는가?이번 프로젝트에서는 인기 검색어 기능 구현해야 했다. 여러 사용자가 키워드를 입력하여 제품을 검색하면, 해당 검색어는 SearchLog 테이블에 저장된다. 이 테이블을 기반으로 사용자는 인기 검색어를 조회할 수 있다. 하지만 다수의 사용자가 동시에 인기 검색어를 요청하게 되면,SearchLog ..
[Java] 과일 장수
·
CodingTest/[프로그래머스] 자바
1. 문제 설명(1) 문제 설명과일 장수가 사과 상자를 포장하고 있습니다.사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k점이 최상품의 사과이고 1점이 최하품의 사과입니다.사과 한 상자의 가격은 다음과 같이 결정됩니다.한 상자에 사과를 m개씩 담아 포장합니다.상자에 담긴 사과 중 가장 낮은 점수가 p (1 ≤ p ≤ k)점인 경우, 사과 한 상자의 가격은 p * m 입니다.과일 장수가 가능한 많은 사과를 팔았을 때, 얻을 수 있는 최대 이익을 계산하고자 합니다.(사과는 상자 단위로만 판매하며, 남는 사과는 버립니다)예를 들어, k = 3, m = 4, 사과 7개의 점수가 [1, 2, 3, 1, 2, 3, 1]이라면,다음과 같이 [2, 3, 2, 3]으로 구성된 사과 상자 1개를 만들어 판매하여..
Spring Security와 JWT를 이용한 인증/인가 정리
·
Spring
1. Spring Security 란?자바 어플리케이션에서 인증과 인가를 제공하는데 집중된 보안 프레임워크입니다.🔍 인증과 인가란?인증(Authentication)은 사용자가 자신의 신원을 확인하기 위해 로그인 등의 과정을 거치는 것이며,인가(Authorization)은 인증된 사용자가 특정 리소스나 기능에 접근할 수 있는 권한이 있는지 확인하는 과정입니다.   2. Spring Security의 구조(1) Security Filter ChainSecurity Filter Chain는 어플리케이션으로 들어오는 HTTP 요청을여러 보안 필터들이 보안 검사를 순차적으로 처리하는 일련의 흐름이며,각 필터는 요청의 특정 보안을 담당합니다. 예를 들어 사용자의 인정 여부를 확인하거나 권한이 있는지 판단하는 역할..
[플러스 주차 개인과제] QueryDSL을 사용하여 검색 기능 구현하기
·
Spring
1. QueryDSL 을 사용하여 검색 기능 만들기(1) 문제 요구 사항    (2) TodoSearchResponse DTO 생성package org.example.expert.domain.todo.dto.response;import lombok.AllArgsConstructor;import lombok.Getter;import lombok.Setter;import lombok.NoArgsConstructor;@Getter@Setter@NoArgsConstructor@AllArgsConstructorpublic class TodoSearchResponse { private String title; private long managerCount; private long commentCou..