오류 코드와 메세지 처리3

shinyeongwoon·2023년 1월 27일
0

Message

목록 보기
8/11

오류 코드를 만들 때 다음과 같이 자세히 만들 수도 있고,
required.item.itemName: 상품 이름은 필수 입니다.
range.item.price: 상품의 가격 범위 오류 입니다.

또는 다음과 같이 단순하게 만들 수도 있다.
required: 필수 값 입니다.
range: 범위 오류 입니다.

단순하게 만들면 범용성이 좋아서 여러곳에서 사용할 수 있지만, 메세지를 세밀하게 작성하기 어렵다. 반대로 너무 자세하게 만들면 범용성이 떨어진다. 가장 좋은 방법은 범용성으로 사용하다가, 세밀하게 작성해야 하는 경우에는 세밀한 내용이 적용되도록 메세지에 단계를 두는 방법이다.

예를 들어서 required라고 오류 코드를 사용한다고 가정해보자.
다음과 같이 required라는 메세지만 있으면 이 메세지를 선택해서 사용하는 것이다.

required : 필수 값 입니다.

그런데 오류 메세지에 required.item.itemName와 같이 객체명과 필드면을 조합한 세밀한 메세지코드가 있으면 이 메세지를 높은 우선순위로 사용하는 것이다.

#Level1
required.item.itemName : 상품 이름은 필수 입니다.
#Level2
required:  필수 값 입니다.

물론 이렇게 객체명과 필드명을 조합한 메세지가 있는지 우선 확인하고, 없으면 좀 더 범용적인 메세지를 선택하도록 추가 개발 해야겠지만, 범용성 있게 잘 개발해두면, 메세지의 추가 만으로 매우 편리하게 오류 메세지를 관리할 수 있을 것이다.

스프링은 MessageCodesResolver라는 것으로 이러한 기능을 지원한다.

0개의 댓글