더북(TheBook)

3.2.4 우아하게 에러 처리하기

기본으로 Warp의 모든 것은 필터라는 점을 기억해야 한다. 필터가 요청을 필터의 정의대로 매핑할 수 없으면 해당 요청은 거부된다. Warp 문서에는 ‘기본으로 제공된 필터는 대부분 적절한 거부와 함께 요청을 자동으로 거부한다’라고 명시되어 있다. 필터가 여러 개인 경우 각각 거부를 반환할 수 있으므로 다른 필터들이 자신들에게 적합한 요청인지 확인할 수 있다는 점을 명심해야 한다.

체인의 마지막 필터마저 요청을 매핑할 수 없는 경우에는 Warp HTTP 서버는 거부를 요청 클라이언트에 반환하고, 404 에러 코드를 발생시킨다. 때때로 404가 아닌 다른 값으로 실패한 필터를 처리해야 할 수도 있으니 이 점도 알아 두어야 한다. 그림 3-3은 들어오는 요청이 설정된 경로로 필터링되는 방식과 일어날 수 있는 거부가 복구되는 방식을 보여 준다.

따라서 Warp는 이전 필터에서의 모든 거부(함수에서 거부를 반환하는 방법은 코드 3-9에 표시됨)를 선택해 자체적인 메서드로 반복해 처리하는 recover 필터를 제공한다. recover 필터는 다수의 필터 체인 끝에 추가할 수 있다. 코드 3-9는 이에 대한 예제이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.