CreateQuizClovaStudioService)핵심 코드
역할 → Clova AI 서버와 직접 통신하는 것을 담당
에러 처리 → 이 클래스에서는 try-catch 문을 사용하여 Clova API 요청 시 발생할 수 있는 IOException(네트워크 오류)이나 응답 파싱 오류 등 catch
에러가 발생하면 Exception을 직접 던지는 대신, success 필드를 false로 설정하고 ClovaErrorCode라는 구체적인 에러 원인을 담은 CreateQuizClovaStudioResponse 객체를 반환
→ Clova 서버 응답이 비어있으면 ClovaErrorCode.EMPTY_CLOVA_RESPONSE_BODY를 담아 리턴
CreateQuizService)CreateQuizController)각 계층이 명확한 책임을 가지고 에러를 처리하고 상위 계층으로 변환하여 전달하는 것은 매우 안정적이고 유지보수하기 좋은 구조입니다. 내부 시스템의 복잡한 오류가 사용자에게 직접 노출되는 것을 막아주며, 각 계층의 독립성을 높여주기 때문에 매우 잘 설계된 구조라고 할 수 있습니다.