반응형

전체 글 194

[java8] 인터페이스의 디폴트 메서드, 스태틱 메서드

Java 8 인터페이스의 기본 메소드와 스태틱 메소드 가이드Java 8에서는 인터페이스에 기본 메소드(Default Methods)와 스태틱 메소드(Static Methods)가 추가되었습니다. 이를 통해 인터페이스를 더욱 유연하게 사용하고, 기존 코드를 변경하지 않고도 새로운 기능을 추가할 수 있게 되었습니다. 다음은 이 기능들을 효과적으로 사용하는 방법에 대한 가이드입니다.1. 기본 메소드 (Default Methods)기본 메소드란?기본 메소드는 인터페이스 내에서 메소드 선언뿐만 아니라 구현까지 제공하는 방법입니다. 이를 통해 인터페이스를 구현한 클래스들을 변경하지 않고도 새로운 메소드를 인터페이스에 추가할 수 있습니다.장점기존 인터페이스를 구현한 클래스를 깨트리지 않고 새 기능을 추가할 수 있습니..

[Java8] Optional 사용 방법과 예시

Java 8의 Optional 클래스와 관련된 다양한 메서드들을 정리하고, 각 메서드에 대한 예제를 작성해 보겠습니다.1. Optional 만들기Optional.of(): null이 아닌 값을 가지는 Optional을 생성합니다.Optional.ofNullable(): 값이 null일 수 있는 Optional을 생성합니다.Optional.empty(): 비어있는 Optional을 생성합니다.Optional optional1 = Optional.of("Hello"); // "Hello"를 포함하는 Optional 생성Optional optional2 = Optional.ofNullable(null); // null을 허용하는 Optional 생성Optional optional3 = Optional.empt..

[Java8] Optional을 사용할 때 주의해야 할 사항과 관련된 예제 소스

Java 8에서 Optional을 사용할 때 주의해야 할 사항과 관련된 예제 소스1. 리턴값으로만 쓰기를 권장한다메소드의 매개변수 타입, 맵의 키 타입, 인스턴스 필드 타입으로 사용하지 않는 것이 좋습니다.// 권장되지 않는 사용 예public void process(Optional input) { // ...}// 권장되는 사용 예public Optional process() { // ...}2. Optional을 리턴하는 메소드에서 null을 리턴하지 말자Optional을 반환하는 메소드에서는 절대로 null을 반환하지 않도록 합니다.// 잘못된 사용 예public Optional getValue() { return null; // 절대 이렇게 하지 말 것}// 올바른 사용 예publ..

[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
반응형