@Bean public PasswordEncoder passwordEncoder() { return PasswordEncoderFactories.createDelegatingPasswordEncoder(); }PasswordEncoder 빈 주입return new BCryptPasswordEncoder(); -> return PasswordEncoderFactories.createDelegatingPasswordEncoder();으로 변경하였다.Password Storage :: Spring SecuritySpring Security’s PasswordEncoder interface is used to perform a one-way transformation of a password to let the..
package org.example.알고리즘.행렬의덧셈; import java.util.Arrays; /**/ class Solution { public static void main(String[] args) { Solution solution = new Solution(); System.out.println(Arrays.deepToString(solution.solution(new int[][]{{1, 2}, {2, 3}}, new int[][]{{3, 4}, {5, 6}}))); } public int[][] solution(int[][] arr1, int[][] arr2) { ArrayClass arrayClass1 = new ArrayClass(arr1); ArrayClass arrayClass..
Swagger UI 와 Spring RestDocs 의 장 단점의 비교Swagger UI 의 장점직관적인 UI스웨거는 API 에 대한 요청과 응답 등을 시각적으로 표현하여 사용자가 쉽게 이해할 수 있습니다실시간 테스트API 엔드포인트에 대한 실시간 테스트를 제공합니다.Swagger UI 의 단점어노테이션 수동 기입 기반 API어노테이션 등을 수기로 기입하여 문서를 생성하기에, 코드와 문서간의 불일치가 발생할 수 있다.유지 보수의 문제성API 변경시마다 스웨거 어노테이션을 수정해야한다.복잡코드가 진짜~ 너무 더럽다어노테이션때문에 불필요하게 컨트롤러단과 DTO 단에서 피로함이 가중된다.Spring Rest Docs 의 장점정확성테스트 코드를 기반으로 문서를 생성하기에 코드와 문서간 일관성 유지가 가능하다가볍..
스웨거는 기본적으로컴파일 단계에서 모든 속성값이 결정된다.String.format 같은 문자열 메서드는런타임 시점에 값이 동적으로 평가되기에스웨거에서 String.format 같은 메서드는 사용이 불가능하다. examples 에..examples = @ExampleObject(value = "{\n" + " \"errorCode\": \"CART_PRODUCT_NOT_FOUND\",\n" + " \"message\": \"장바구니에 상품을 추가하지 못했습니다.\"\n" + "}"))이런식으로 더러운 문자열을 넣어야한다.물론 자바 15 ( 정시출시가 15임 )에서는""" """ 같은삼중 따옴표를 사용하여 문자열을 쉽게 정의할 수 있다.보통 11 이후에 17을 사용하니 17에서는 쉽게 문자열 정의가 가능하다..
프로젝트 수행중 통합 테스트와 단위 테스트 간의 데이터베이스의 충돌이 발생하는 일이 생겼다.@Sql 을 이용하여 통합테스트에서 별도 테스트 데이터를 생성한 이후에@Rollback 을 시도하였지만별도로 초기화가 수행되지 않는 것 같다..이유는 솔직히 잘 모르겠다… 솔직히 파고들면 이건 끝도 없을거같아 일단 패스함..일단 테스트 후에 데이터베이스를 비우는 행위 자체는 일단 가능은 하다.Spring Boot 에서는@DirtiesContext 어노테이션을 사용해 테스트 후 Spring Application Context 를 재 로드 할 수 있다.테스트후에 사용된 데이터는 초기 상태로 돌아가게 되는 것이다.@SpringBootTest 의 경우 컨텍스트를 로드하게 이전에는 발생하지 않던 문제가 발생하는 것이 아닐까..