Hello, Freakin world!

[Spring boot] Validation 고찰 본문

Spring boot

[Spring boot] Validation 고찰

johnna_endure 2020. 7. 16. 21:45

validation 이라는 주제로 이렇게 시간을 오래 끌줄은 몰랐다.

 

순전히 개인적인 욕심 때문이기도 하다. 

목표는 컨트롤러 메서드에서 validation 코드를  분리하는 것이었다.

 

처음에는 @InitBinder 메서드를 이용하는 방법을 생각했다.

@InitBinder 메서드는 context로부터 WebDataBinder 인스턴스를 주입받을 수 있다.

이 인스턴스에 validator를 추가할 수 있는데, 뭔가 이상했다.(혹시 버그가 있는걸까?)

validator가 호출되지 않아야하는 타입에서 자꾸 호출되면서 예외를 던졌다.(단위 테스트에서는 분명히 제대로 작동하는데도!)

 

자질구레한 버그들이 자꾸 생겨서 일단 이 방식은 쓰지 않기로 했다.

위 방식을 쓰지 않겠다는 말은 컨트롤러 메서드의 본문이 시작되기 이전의 시점에 validation을 포기하겠다는 말이다.

 

그러면 결국 목표를 이루기 위해서는 validation 시점을 변경해야 한다.

결국 컨트롤러 코드와 검증 코드를 분리하려면 바인딩 객체를 서비스에서 이용하는 시점에 AOP를 이용해서 검증할 수 밖에 없다고 보는데. 지금은 AOP에 대한 학습이 부족하므로 학습부터 할 것.

 

 

 

 

 

 

 

Comments