인프런 커뮤니티 질문&답변

c0ffeeprince님의 프로필 이미지
c0ffeeprince

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

시작

비동기 Validation 오류코드 클라이언트에 반환하는것..

작성

·

455

·

수정됨

0

제가 회원가입과 로그인을 비동기로 처리하는데요. 일반 요청처럼 binding result에 오류 코드 담아서 클라이언트로 보내야하는데.. 아직 제 실력으로는 이걸 해결하기가 어렵네요 ㅠ

커뮤니티 뒤져본결과 해당 비동기 처리하는 공유해주신 게시물들을 봐도 너무 어렵더라구요..

이부분에 있어서 영한님 강의가 없을까요? ㅠ 하..

추천 쿼리큘럼에 스프링부트 DB 1,2편까지는 구매해놨습니다..

아직 API 예외처리 강의를 수강하지 못했는데, 이부분을 좀 더 이해할 수 있으려나요...

답변 3

0

c0ffeeprince님의 프로필 이미지
c0ffeeprince
질문자

api로 반환까진 했는데.. thymeleaf 폼을 메시지를 어떻게 활성화 하나 싶네요 ㅠ

0

안녕하세요. c0ffeeprince님, 공식 서포터즈 David입니다.

아쉽지만 비동기 처리에 대한 부분은 다루고 있지 않은 점 참고 부탁드립니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴이에요. 비동기 Validation 오류 코드를 클라이언트에 반환하는 것에 어려움을 겪고 계시군요.
영한님의 강의 중에서 해당 내용을 다루는 강의는 없지만, 스프링부트 DB 1, 2편과 API 예외처리 강의를 수강하셨다면 애플리케이션 개발에 필요한 기본적인 내용을 충분히 이해하고 계실 것입니다.

비동기 검증은 Spring MVC의 @Validated@RequestBody 애노테이션을 사용하여 처리할 수 있습니다. 이를 통해 요청 데이터를 검증하고 에러 결과를 BindingResult 객체를 통해 받아올 수 있습니다. 그리고 에러 결과는 클라이언트로 반환해야합니다.

예를 들어 회원가입 API에서 비동기로 유효성을 검사하고, 에러 결과를 클라이언트로 반환한다면 다음과 같은 방식을 사용할 수 있습니다.

@RestController
public class UserController {

    @PostMapping("/signup")
    public ResponseEntity<?> signUp(@Validated @RequestBody UserDto userDto, BindingResult bindingResult) {
        if(bindingResult.hasErrors()) {
            // 에러 결과를 클라이언트로 반환합니다.
            List<String> errors = bindingResult.getAllErrors()
                .stream()
                .map(ObjectError::getDefaultMessage)
                .collect(Collectors.toList());
            return ResponseEntity.badRequest().body(errors);
        }

        // 비동기 회원가입 로직...

        return ResponseEntity.ok("회원가입 성공");
    }
}

위 코드에서 @Validated@RequestBody 애노테이션을 사용하여 요청 데이터를 검증하고, BindingResult를 통해 에러 결과를 받아옵니다. bindingResult.hasErrors()를 사용하여 에러 유무를 확인하고, 있다면 bindingResult.getAllErrors()를 통해 모든 에러 정보를 받아올 수 있습니다. 이후 에러 정보를 클라이언트로 반환하는 방식으로 처리하면 됩니다.

비동기 Validation에 대한 더 자세한 내용은 Spring 공식 문서(https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#validation)를 참고하시면 도움이 될 것입니다.

어려운 부분이 있을 수 있지만, 기본적인 애플리케이션 개발 지식과 예외처리에 대한 강의 수강을 통해 충분히 해결하실 수 있다고 생각합니다. 화이팅하세요! 다른 질문이 있으시면 언제든지 물어보세요!

c0ffeeprince님의 프로필 이미지
c0ffeeprince

작성한 질문수

질문하기