반응형

분류 전체보기 191

[React] JWT Util만들기, Axios 인터셉터 설정하기

리액트 애플리케이션에서 JWT(JSON Web Token)을 활용하여 Axios를 호출하기 전에 액세스 토큰을 요청하여 사용할 수 있는 유틸리티를 만들어 보았습니다. 이를 통해 애플리케이션에서 보안적인 통신을 구현할 수 있게 되었습니다. JWT Util로 Axios 인터셉터 설정하기 import axios from "axios"; import { getCookie, setCookie } from "./cookieUtil"; import { API_SERVER_HOST } from "../api/todoApi"; // Axios 인스턴스 생성 const jwtAxios = axios.create(); // JWT 갱신 함수 const refreshJWT = async (accessToken, refresh..

Front-End/React 2024.04.08

[Spring] JPA Query 메서드 DTO 바로 생성하기

Spring Data JPA를 사용하여 데이터베이스에서 정보를 가져올 때 DTO(DTO: Data Transfer Object)를 사용하는 경우가 많습니다. DTO는 보통 데이터베이스의 엔티티(Entity)와 클라이언트 간의 데이터 전송을 위해 사용됩니다. 이 글에서는 Spring Data JPA에서 Query 메서드를 사용하여 DTO를 바로 생성하는 방법을 알아보겠습니다. 1. DTO 클래스 생성 DTO 클래스는 데이터 전송을 위한 객체입니다. 먼저 DTO 클래스를 생성해야 합니다. 예를 들어, 장바구니에 담긴 상품 정보를 전달하기 위한 CartItemListDto 클래스를 만들어봅시다. package com.example.demo_mall.mallapi.dto; public class CartItem..

Back-end/Spring 2024.04.07

[Spring] Security CSRF 비활성화 (6.1 버전 이상)

0. 먼저 CSRF란? CSRF(Cross-Site Request Forgery, 사이트 간 요청 위조)는 웹 보안 취약점 중 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 조작한 요청을, 신뢰할 수 있는 사이트에 대해 보내도록 만드는 공격입니다. 이 공격은 사용자가 해당 사이트에 로그인한 상태에서 이루어지면, 사용자의 권한을 이용하여 악의적인 변경사항(예: 비밀번호 변경, 무단 게시물 작성 등)을 적용할 수 있습니다. 1. CSRF 비활성화 방법 (시큐리티 6.1버전 이상) 스프링 시큐리티 6버전부터는 보안 구성 방식에 몇 가지 변화가 있습니다. CSRF 보호를 비활성화하는 방법에도 변화가 있을 수 있으며, 새로운 방식을 적용해야 할 필요가 있습니다. 스프링 시큐리티 6버전에서 CSRF 보호를 비..

Back-end/Spring 2024.02.09

[Spring] @RestControllerAdvice 사용해서 Controller 예외처리

1. @RestControllerAdvice 사용해서 Controller 예외처리 @RestControllerAdvice 어노테이션은 Spring Framework에서 예외 처리를 위해 사용되는 특별한 클래스에 붙이는 어노테이션입니다. 이 어노테이션을 사용하면 전역에서 발생할 수 있는 예외를 캡처하고, 공통된 예외 처리 로직을 적용하여 API 응답을 일관성 있게 관리할 수 있습니다. @RestControllerAdvice는 @ControllerAdvice에 @ResponseBody가 추가된 형태로, REST API 개발 시 JSON 등의 응답 바디를 직접 제어할 수 있게 해줍니다. 1-1. 동작 방식 Spring의 AOP(Aspect-Oriented Programming)를 이용하여, 애플리케이션의 컨트..

Back-end/Spring 2024.02.09

[Spring] @SuperBuilder 의 특징과 간단한 예제

@SuperBuilder 의 특징과 간단한 예제 @SuperBuilder는 Project Lombok 라이브러리의 어노테이션 중 하나로, 상속 구조를 가진 클래스에서 빌더 패턴을 쉽게 사용할 수 있게 해줍니다. 일반적인 @Builder 어노테이션과 달리 @SuperBuilder는 부모 클래스와 자식 클래스 간의 상속 관계를 고려하여 빌더를 생성합니다. 이를 통해 각 클래스의 필드를 초기화하는 데 필요한 빌더 메소드를 자동으로 생성해줍니다. 1. @SuperBuilder의 장점 상속 구조 지원: 상속 구조에서도 빌더 패턴을 쉽게 구현할 수 있게 해줍니다. 부모 클래스의 필드와 자식 클래스의 필드를 모두 한 번에 설정할 수 있는 빌더 클래스를 생성합니다. 타입 안전성: 빌더 패턴을 사용함으로써 객체를 생성할..

Back-end/Spring 2024.02.09

[Spring] DTO 간 복사(BeanUtils, ModelMapper커스텀 하는방법 포함)

DTO 간 복사 Spring에서 DTO 간 변수를 복사하는 경우, 주로 BeanUtils.copyProperties 메소드를 사용하거나 ModelMapper 라이브러리를 활용할 수 있습니다. 아래에 두 방법을 사용하는 예시를 제시하겠습니다. 1. BeanUtils 사용하기 BeanUtils.copyProperties 메소드는 스프링 프레임워크에 포함된 유틸리티 메소드로서, 한 객체의 프로퍼티 값을 다른 객체로 복사하는 데 사용됩니다. 이 방법은 추가적인 라이브러리를 필요로 하지 않으며, Spring Framework에 기본적으로 포함되어 있습니다. import org.springframework.beans.BeanUtils; // Source DTO public class SourceDto { priva..

Back-end/Spring 2024.02.09

[Spring] 시큐리티 예외 처리와 사용자 인증 (시큐리티6 이상)

스프링 시큐리티는 애플리케이션의 보안을 강화하고, 다양한 상황에서의 인증 및 권한 부여를 관리합니다. 오늘은 스프링 시큐리티의 exceptionHandling() 메서드를 활용한 예외 처리 방법과 사용자 인증 과정에 대해 알아보겠습니다. 예외 처리 설정 (exceptionHandling()) 스프링 시큐리티에서 예외 처리는 보안 관련 예외가 발생했을 때 적절한 대응을 할 수 있도록 돕습니다. 대표적으로 두 가지 핸들러를 설정할 수 있습니다. 1. AuthenticationEntryPoint (인증 진입점) .exceptionHandling(xh -> xh .authenticationEntryPoint(new AuthenticationEntryPoint() { @Override public void com..

Back-end/Spring 2024.01.30

[Feasibility Study] 타당성 조사란

타당성 조사(Feasibility Study)에 대한 블로그 글 타당성 조사란 무엇인가요? 타당성 조사는 새로운 프로젝트, 제품, 서비스 등을 시작하기 전에 그 실현 가능성과 경제적 타당성을 평가하는 중요한 과정입니다. 이 과정을 통해 프로젝트의 성공 가능성을 높이고, 실패 위험을 최소화할 수 있습니다. 타당성 조사의 주요 요소 시장 타당성: 시장의 수요, 경쟁 상황 분석을 통해 제품이나 서비스의 시장 내 성공 가능성을 평가합니다. 기술적 타당성: 프로젝트나 제품이 기술적으로 실행 가능한지를 평가합니다. 여기에는 필요한 기술, 자원, 전문 지식 등이 포함됩니다. 경제적 타당성: 비용과 예상 수익을 비교하여 프로젝트나 제품의 경제적 수익성을 분석합니다. 법적 및 규제적 타당성: 프로젝트나 제품이 관련 법률..

비즈니스 2024.01.30

[Spring] Security 6 버전 인메모리 사용자 설정 간단한 예제

권한 설정과 표현식 Spring Security 5에서는 **AuthenticationManagerBuilder**를 사용하여 메모리 인증을 설정할 수 있었지만, Spring Security 6에서는 몇 가지 변경이 있을 수 있습니다. 1. PassworEncoder 사용 필수 먼저, Spring Security 6에서는 비밀번호 암호화에 대한 설정이 강화되었으므로 **{noop}**을 사용하는 것이 더 이상 권장되지 않습니다. 대신에 비밀번호 인코더를 명시적으로 지정해야 합니다. 그래서 아래와 같이 PasswordEncoder를 빈으로 등록하는 소스코드를 먼저 작성합니다. @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswor..

Back-end/Spring 2024.01.30

[Swagger] Spring 3.0 이상 버전에서 스웨거 적용하는 방법

0. 기존 SpringFox로 설치할 경우 발생하는 문제 기존 방법대로 springfox 스웨거를 implementaion하면 에러가 발생합니다. 기존 방식 implementation 'io.springfox:springfox-swagger2:2.9.2' implementation 'io.springfox:springfox-swagger-ui:2.9.2' 기존 방식대로 했을 경우 아래와 같은 에러가 발생하는 것을 확인 할 수 있습니다. print 결과 Action: Correct the classpath of your application so that it contains compatible versions of the classes org.springframework.plugin.core.suppor..

Back-end/Spring 2024.01.29
반응형