제네릭 메서드는 제네릭 클래스 메서드와 달리 static 함수로서 선언이 가능하다.그 이유는 제네릭 메서드는 제네릭 클래스와 달리 호출시마다 제네릭 타입값이 설정되기 때문이다. 제네릭 클래스 메서드가 static 함수로서 불가능한 이유는 클래스가 아직 load 되기전에
이전까지의 작업들을 정리하면 아래와 같다.1) GlobalExceptionHandler 추가2) Bean Validation 추가3) Spring Exception Bean Validation 추가4) Entity가 아닌 Dto로 request, response 받도록
토이 프로젝트를 개발하는 과정에서 아래와 같은 에러가 발생했다.에러 내용으로 검색을 해보니 비슷한 내용이 굉장히 많았는데, 결론부터 이야기하면 테이블명이 user라서다!아무래도 sql에서 user라는 명사가 많이 사용되다보니 그런듯하다.김영한님의 강의에서도 order
사용자로부터 추가 요구사항이 들어왔다.지금은 게시글 저장, 조회, 수정, 삭제 기능 뿐인데, 여기에 게시글 작성자를 추가해달라고 한다.1) 게시글의 작성자 추가하기keyword
오늘의 한줄 궁금증 스프링에서는 전역 예외 처리기를 위해서 ControllerAdvice를 제공한다. 이뿐만 아니라 sprig MVC에서 제공하는 예외를 처리하기 위해서 ResponseEntityException이라는 클래스를 상속받아 처리할 수 있도록 지원한다. 따
1) RestControllerAdvice에서 SpringMVC 예외를 간결하게 처리하기 위해서 ResponseEntityException을 상속받아 처리했다. 그런데, 사용자 정의 예외와 스프링 MVC예외의 Response 형식이 다르다. 이 형식을 포맷 시켜보자.
ExceptionHandler를 이용해서 Bean Validation의 Exception 결과를 처리하는 방법을 구현하는 도중에 개발자는 아래와 같은 인터페이스를 발견했다.ResponseEntityExceptionHandler이게 어떤 용도 인지 공부해보고 적용하자.1
Postman으로 아래의 RestController 테스트하는 과정에 오류가 발생했다.에러로그는 아래와 같다.원인은... 기본 생성자가 존재하지 않기 때문이다.정리HttpMessageConverter에 의해서 동작하려면 기본 생성자와 Setter가 필요한듯 보인다.
스프링에서는 Bean Validation을 아래의 애노테이션을 이용해서 쉽게 수행할 수 있다.@NotNull, @NotEmpty, @ NotBlank근데 위 3개의 애노테이션의 차이는 무엇일까?결론NotNull -> NotEmpty -> NotBlank 순으로 강화된
이전 포스팅( Bean Validation )에서 Bean Validation에 대해서 정리를 했었다.근데... ModelAndView 방식의 Controller와 아니라 API Controller인 경우 Bean Validation 동작후 에러 메시지를 제대로 가져오
스프링에서 BindingResult에 담기는 FieldError와 ObjectError의 사용 차이는 무엇일까?FieldError와 ObjectError의 차이는 함수 이름과도 같다.단순히 객체의 필드 오류가 발생한 경우에는 FieldError를 사용하고 필드 에러는
예외 처리를 추가하는 과정에서 Validation을 강화하고 Validation 에러에 따른 메시지를 정의할 필요가 있었다.이 기능을 추가해보자!1) 스프링 MVC의 Bean Validation 기능 추가 및 BindingResult 사용2) messages.prope
사용자로부터 이슈가 접수됐다. 서버가 올바른 ErrorCode를 내뱉고 있지 않다... 이를 위해서 예외 처리와 Validation 기능을 강화해야한다!내부 요구사항1) 스프링 MVC의 예외처리 기능 추가2) Bean Validation 기능 추가 및 예외 처리 까지
사용자로부터 들어온 요구사항은 아니지만, 각 함수를 수행할때, 함수 시작 로그와 함수 종료 로그를 남기면 유지보수에 좋을것같아!내부 요구사항1) AOP를 이용한 함수 시작과 종료에 대한 로그를 남길것.개발기한은 11월 15일까지.상상 개발 리포지토리 : 상상 개발
어느날 마음씨 착한 기획자로 부터 요청이 들어왔다.. 수첩을 들고 다니기 귀찮으니 메모할 수 있는 게시판을 만들어달라고 한다. 크롱씨는 매우 기뻣다! 이제 막 JPA를 이용해서 뭔가 만들어 볼 수 있겠다 싶었다. 마음씨 착한 기획자의 요청사항은 2가지였다. 1
두개 또는 그 이상의 검색 조건으로 정렬 할 때는 인덱스의 키 방향이 서로 달라야 한다.즉, 복합 정렬을 서로 다른 방향으로 최적화 하기 위해서는 방향이 맞는 인덱스를 사용해야한다. (단일 정렬은 상관 없다.)만약 users라는 컬렉션에 age와 username이 필드
MongoDB 효율적인 인덱스 설계 MongoDB에서 뿐만 아니라 사실 다른 RDB에서도 동일하게 적용될 수 있다. 1) 일반적으로는 동등 필터를 사용할 필드가 다중값 필터를 사용할 필드보다 앞에 오도록 복합 인덱스를 설계하자. 이유) 다중값 필터 보다는 동등 필
스프링에서는 웹과 관련된 공통 관심 사항을 처리할 수 있도록 지원하는 서블릿 필터와 스프링 인터셉터 기술이 존재한다고 한다. AOP를 사용해도 되지만 웹과 관련된 공통 관심 사항에서는 Http 헤더나 Url 정보 등이 필요하기 때문에 필터나 인터셉터를 사용하게 좋다고
로그인 상태를 유지하기 위해서는 쿠키를 사용할 수 있다.쿠키를 사용하지 않는다면 로그인 정보를 매번 Request Parameter로 전달해야한다.특히, 쿠키의 종류는 영속 쿠키와 세션 쿠키가 있다고 한다.영속 쿠키 : 만료 날짜를 입력 하면 해당 날짜까지 유지세션 쿠
Spring에서는 객체에 대해서 Validation을 수행하는 매우 편리한 방법을 제공한다.이전 포스팅에서는 BindingResult와 Validator, 그리고 @Validated 애노테이션을 사용한 Validation 방식을 공부했었다.이전 포스팅 : Spring에