인프런 커뮤니티 질문&답변
Service에서는 유효성 검사를 안해도 되나요?
작성
·
232
1
안녕하세요. 강의를 보고 개인 프로젝트를 하고 있습니다.
현재 POST users/:id API를 만들었습니다.
여기서 id는 mongodb의 objectid입니다.
service에 objectid가 아닌 데이터가 전달되면 오류가 발생하기에 컨트롤러에서 직접 만든 MongoIdPipe로 유효성 검사를 해주고 있습니다.
문제는 다른 미들웨어에서 해당 서비스를 주입받아 사용하고 있는데 미들웨어는 pipe을 주입받지 않았기 때문에 서비스에 잘못된 값을 전달 할 시 오류가 발생할 수 있다는 것입니다. 그렇다고 서비스에 유효성 검사 로직을 넣으면 코드가 지저분해지는데 이를 어떻게 해결해야 할까요?
미들웨어에서 유효성 검사를 하고 서비스를 호출하는 것이 맞는 방향일까요?

답변 1
0
윤상석
지식공유자
답변이 늦어 죄송합니다.
사실 어떻게 설계하냐에 따라 다릅니다.
미들웨어는 의존되지 않고 가벼울수록 좋습니다. 따라서 필수적인 유효성 검사를 미들웨어 자체 안에서 진행하는 것도 좋은 방법입니다.
저는 보통 서비스 단에서 유효성 검사를 최대한 안하고 서비스 로직에 집중할 수 있도록 다른 디펜던시를 주입 받도록 파이프, 인터셉터, 디티오, 필터, 미들웨어 등 레이어를 끼워넣어서 유효성 검사를 합니다.
추가적인 질문사항은 더 남겨 주세요!





.png?w=112)