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)를 적용한다.
유효성 검사와 비즈니스 로직을 분리해서 작업한다.
사진
★☆☆
반응형
'개발 > 기본) 디자인패턴' 카테고리의 다른 글
아키텍처 패턴) Modular Monoliths(모듈형 모놀리스) (0) | 2025.04.09 |
---|---|
개발원칙) DRY 개발원칙 (Don't Repeat Yourself) (0) | 2024.05.13 |
디자인패턴)더블 디스패치(Double Dispatch) (1) | 2023.07.31 |
디자인패턴) 노출 모듈 패턴 (Revealing Module Pattern- JavaScript) (0) | 2023.06.16 |
디자인패턴) Main Loop Architecture (0) | 2023.01.05 |
댓글