예외 처리에 대해 몇 번 고민하다 보면 자연스럽게 이런 질문이 나온다. "그럼 차라리 예외를 덜 쓰면 되는 거 아닌가?"
그 대안으로 자주 등장하는 게 Result 패턴이다. public Result Register(UserCommand command); 성공이면 값이 들어 있고, 실패면 에러 정보가 들어 있는 구조. 겉보기엔 깔끔하고 try-catch도 줄어든다.
근데 이게 정말 정답일까? 1.
Result는 예외를 “없애는” 게 아니다 먼저 오해부터 정리해야 한다. Result 패턴은 예외를 제거하는 게 아니라, 예외를 명시적인 흐름으로 바꾸는 거다.
기존 방식: 실패하면 갑자기 throw가 튀어나옴. Result 방식: 실패가 반환 값 안에 포함됨.
차이는 명확하다. 실패를 숨기지 않고 호출자가 반드시 확인하게 만든다. 2.
언제 효과적인가 이 패턴은 "예상 가능한 실패" 가 많을 때 빛난다. 비즈니스 규칙 위반 (잔액 부족 등) 검증 실패나 권한 부족 상태 전이 불...
원문 링크 : Result 패턴을 쓰면 예외를 줄일 수 있을까?