[Spring] @Builder 사용의 이점
·
Spring
1. Builder 패턴과 @Builder란?Builder 패턴은 복잡한 객체 생성 과정을 단계별로 구성할 수 있도록 도와주는 디자인 패턴으로,Lombok의 `@Builder`어노테이션은 Builder 패턴을 적용할 수 있도록 도와준다. 복잡한 객체 생성 과정이란?매개 변수가 많은 생성자 일부 필드가 선택 사항이고, 조건에 따라 값이 달라져야 하는 경우객체 생성 시 유효성 검증, 기본 값 설정, 복잡한 계산 로직이 필요한 경우 따라서, Builder 패턴을 사용하면,생성자에 전달하는 파라미터의 순서나 누락 문제를 방지하고가독성이 좋고, 코드 유지보수가 쉬우며불필요한 생성자 오버라이딩 줄일 수 있다. 2. Builder 패턴 사용 예시[ParkingLot 엔티티]package com.parkez.par..
[Spring] 캐시를 이용한 인기 검색어 조회 기능 개발 로그
·
Spring
1. 캐시란?데이터나 값을 미리 복사해두는 임시 저장소 라고 생각하면 된다.클라이언트가 증가하면 DB에 대한 요청이 많아지고, 이로 인해 DB가 발생해 성능이 떨어질 수 있다. 이때, 서버와 데이터베이스 사이에 캐시를 두어,주로 자주 사용하는 데이터를 캐시에 임시로 저장해 두면,동일한 요청에 대해서 DB에 직접 접근하지 않고 빠르게 응답할 수 있어 성능이 향상된다. 🤔 이 프로젝트에서 왜 캐시를 사용하였는가?이번 프로젝트에서는 인기 검색어 기능 구현해야 했다. 여러 사용자가 키워드를 입력하여 제품을 검색하면, 해당 검색어는 SearchLog 테이블에 저장된다. 이 테이블을 기반으로 사용자는 인기 검색어를 조회할 수 있다. 하지만 다수의 사용자가 동시에 인기 검색어를 요청하게 되면,SearchLog ..
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..
JwtUtil 클래스 생성하기 : 코드 설명
·
Spring
1. JwtUtil 클래스의 역할1️⃣ 토큰 생성사용자 인증 정보를 기반으로 JWT 토큰을 생성합니다.토큰을 생성할 때, 필요한 Claim을 포함하고, Signature를 통해 토큰의 무결성을 보장합니다. 2️⃣ 토큰 검증클라이언트로부터 전달 받은 JWT토큰의 유효성을 확인합니다.토큰의 만료시간, 서명, 클레임 정보등이 포함되어, 토큰이 위조나 변조되지 않았는지 확인합니다. 3️⃣ 토큰 파싱JWT 토큰에 포함된 정보를 추출(파싱)하여, 사용자 식별 정보나 권한 같은 데이터를 반환합니다.이를 통해 애플리케이션 내에서 사용자 인증 및 권한 부여를 효율적으로 처리할 수 있습니다.   2. JwtUtil 클래스 생성하기(1) 필드 설정하기[JwtUtil 필드]private static final String B..