validateSelf()란 정해진 메소드명이 아니며,DTO 등에서 자체적으로 검증을 수행하는 inner method의 예시이다. Validator ClassvalidateSelf()설계 측면검증 로직과 DTO 역할이 분리됨DTO가 검증 책임까지 맡아 단일 책임 원칙(SRP)를 위배할 수 있음단점구현에 따라 성능 저하(외부 시스템 or 다수의 컴포넌트 의존)DTO가 비대해질 수 있음 (DTO 개수가 많아질수록 불리)재사용성다양한 DTO나 컨텍스트에서 재사용 가능검증 로직을 다른 DTO에 공유하기 어려움구현 용이성구현량이 많음 (별도 클래스 작성)일반적으로 적용이 쉬움 (메서드 작성)테스트 용이성독립적으로 검증 로직 테스트 가능DTO와 검증 로직이 결합되어 테스트가 복잡해질 수 있음