전체 글

전체 글

    scp로 원격 서버로 파일복사 + docker cp로 container안에 파일복사

    scp 사용법 파일이 있는 위치로 먼저 이동한 뒤, scp -P 포트번호 파일명 원격서버계정@서버ip:~/ docker cp 사용법 ssh로 서버로 접속한 뒤, docker cp 파일명 container별칭:경로

    스프링이 직접 만든 오류 메시지 처리 - 타입 에러처리

    검증 오류 코드는 다음과 같이 2가지로 나눌 수 있다. 개발자가 직접 설정한 오류 코드 rejectValue() 를 직접 호출 스프링이 직접 검증 오류에 추가한 경우(주로 타입 정보가 맞지 않음) price 필드에 문자 "qqq"를 입력해보자. 로그를 확인해보면 BindingResult 에 FieldError 가 담겨있고, 다음과 같은 메시지 코드들이 생성된 것을 확인할 수 있다. codes[typeMismatch.item.price,typeMismatch.price,typeMismatch.java.lang.Integer,typ eMismatch] 다음과 같이 4가지 메시지 코드가 입력되어 있다. typeMismatch.item.price typeMismatch.price typeMismatch.java..

    ValidationUtils

    if (!StringUtils.hasText(item.getItemName())) { bindingResult.rejectValue("itemName", "required"); } 이 코드를 ValidationUtils를 사용하면 ValidationUtils.rejectIfEmptyOrWhitespace(bindingResult, "itemName", "required"); 로 줄일 수 있다.

    MessageCodesResolver - 메세지 우선순위 설정

    1. Test(assertj 사용) 실 코드에 적용시키기 전, 먼저 Test를 해보자 test => itemservice => validation에 MessageCodesResolverTest 클래스를 만든다 2. MessageCodesResolver 동작방식 rejectValue() , reject() 는 내부에서 MessageCodesResolver 를 사용한다. 여기에서 메시지 코드들을 생성한다. FieldError , ObjectError 의 생성자를 보면, 오류 코드를 하나가 아니라 여러 오류 코드를 가질 수 있다. MessageCodesResolver 를 통해서 생성된 순서대로 오류 코드를 보관한다. 이 부분을 BindingResult 의 로그를 통해서 확인해보자. codes [range.it..

    BindingResult(rejectValue(), reject())사용하기 -3 + MessageCodesResolver 소개

    1. BindingResult의 rejectValue(), reject() 기능 BindingResult가 제공하는 rejectValue(), reject()를 사용하면, FieldError, ObjectError를 직접 생성하지 않고, 깔끔하게 검증 오류를 다룰 수 있다. bindingResult.addError(new FieldError("item", "price", item.getPrice(), false, new String[]{"range.item.price"}, new Object[]{1000, 1000000}, null)); 이 코드를 bindingResult.rejectValue("price", "range", new Object[]{1000, 1000000}, null); 이렇게 간단하게..