실습을 통해 만들 것

실습을 통해 최종적으로 만들 내용은 다음과 같습니다.

Untitled

1번 책을 조회하는 요청을 한다면, 결과는 isSuccess, message, result 를 포함하는 JSON 형식의 데이터를 반환합니다. isSuccess는 요청에 대한 성공/실패 여부를, message는 결과에 대한 간단한 설명을, result는 반환값을 담고 있습니다.

Untitled

만약 존재하지 않는 책의 데이터를 요청한 경우, 400번의 HTTP Status Code와 함께 에러에 대한 내용이 반환됩니다. isSuccess 는 false로, errorCode에는 내부적으로 설정한 에러코드가 담겨있으며, message에는 간단한 설명이 들어있습니다.

Untitled

2개씩 페이징 시스템에서의 2번 페이지를 요청한 경우, 위와 같은 구조로 5번, 6번 데이터가 반환됩니다.

Untitled

책 생성 요청의 결과는 위와 같습니다.

Untitled

책 검증 실패의 경우 400번 상태코드와 함께 위와같이 에러의 내용을 담은 정보를 반환합니다.

위의 사진으로 보여지는 부분은 클라이언트의 입장에서 서버의 반환값이 어떻게 바뀌었나에 대한 결과물입니다. 그러나 이번 시간의 실습은 클라이언트 측면 뿐만 아니라 서버의 측면에서도 많은 기능 추가가 있습니다.

  1. 심각한 Exception과 일반적인 Exception을 구분하여 심각한 Exception 이 발생한 경우 그것에 대한 추가적인 로직을 수행할 수 있다. (담당자에게 메일 보내기, 로그 저장하기 및 오류 보고서 생성하기 등)
  2. 개발자가 직접 처리한 Exception은 로그에 띄워지지 않으며, 개발자가 예상하지 못한 Exception들에 대해서는 로그를 띄웁니다.

위와 같은 기능들은 Exception을 계층화하여 관리함으로써 얻어질 수 있는 기능들입니다.

이러한 기능들을 추가하기 위해 하나하나 차근차근 개발을 시작해보겠습니다.