본문 바로가기
개발/기본) 디자인패턴

디자인패턴) Shotgun Validation Anti-pattern (추론 정의)

by 테샤르 2025. 5. 28.

Shotgun Validation Anti-pattern 

 소프트웨어 개발에서 유효성 검사(Validation) 로직이 

여러 계층과 위치에 중복되고 분산되어 있는 문제를 지칭하는 용어이다.

 

반응형

 

< 예시 >

다음과 같은 코드에서는 중복된 검증으로 인해서 시간이 지나서 변경되거나

유지보수 하는 과정에서 생길수있는 문제는 다음과 같다.

 

  • 중복된 코드: 동일한 유효성 검사 로직이 여러 곳에 존재하여 코드 중복이 발생
  • 유지보수 어려움: 검증 로직을 변경할 때 여러 위치를 수정해야 하므로 오류 발생 가능성이 높아짐
  • 일관성 부족: 검증 로직이 분산되어 있어 일관된 데이터 검증이 어려워짐
// Controller에서의 검증
if (input == null || input.length() > 100) {
    throw new BadRequestException();
}

// Service에서의 중복 검증
if (input == null || input.length() > 100) {
    throw new ValidationException();
}

// Repository에서의 또 다른 검증
if (input == null) {
    throw new IllegalArgumentException();
}

 

 

< 해결방안 >

중앙 집중식 유효성 검사를 통해서 해당 유효성 검사하는 로직을 한곳에서 처리한다.

단일 책임 원칙(SRP)를 적용한다.

유효성 검사와 비즈니스 로직을 분리해서 작업한다.

 

사진

 

★☆

 

반응형

댓글