{"id":7621,"date":"2023-02-19T11:16:00","date_gmt":"2023-02-19T02:16:00","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7621"},"modified":"2023-03-01T15:44:00","modified_gmt":"2023-03-01T06:44:00","slug":"spring-boot-bindexception-vs-methodargumentnotvalidexception","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7621","title":{"rendered":"Spring Boot \u2013 @Valid \uad00\ub828 Exception"},"content":{"rendered":"<h1>Spring Boot \u2013 @Valid \uad00\ub828 Exception<\/h1>\n<p>BindException \uacfc HttpMessageNotReadableException, MethodArgumentNotValidException \uc774 \uc5b8\uc81c \ubc1c\uc0dd\ud558\ub294\uc9c0 \uc815\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n<h2>@RequestBody<\/h2>\n<p><code>json<\/code> \uc73c\ub85c \uac12\uc744 \ubc1b\uc744 \ub54c \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-java\">@RestController\n@RequiredArgsConstructor\n@RequestMapping(&quot;\/v1\/login&quot;)\npublic class LoginController {\n    @PostMapping(&quot;\/&quot;)\n    public ResponseEntity&lt;?&gt; login(@Valid @RequestBody LoginRequestDto dto) {\n        return service.login(dto);\n    }\n}<\/code><\/pre>\n<h3>HttpMessageNotReadableException<\/h3>\n<p>Json \ud615\uc2dd\uc5d0 \uc624\ub958\uac00 \uc788\ub294 \uacbd\uc6b0 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/p>\n<h3>MethodArgumentNotValidException<\/h3>\n<p>Json \ud30c\uc2f1\uc740 \uc81c\ub300\ub85c \uc774\ub8e8\uc5b4\uc9c4 \ud6c4 @Valid \ub2e8\uacc4\uc5d0\uc11c \uc624\ub958\uac00 \uc788\ub294 \uacbd\uc6b0 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/p>\n<h2>BindException<\/h2>\n<p>@ModelAttribute \ub85c \uac12\uc744 \ubc1b\uc744 \ub54c \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uba74 BindException \uc774 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<br \/>\n<code>&lt;form \/&gt;<\/code> \uc73c\ub85c \uac12\uc744 \ubc1b\uc744 \ub54c \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-java\">@Controller\n@RequiredArgsConstructor\npublic class LoginController {\n    @PostMapping(&quot;\/login\/doLogin&quot;)\n    public String login(HttpServletResponse response, @Valid LoginRequestDto loginRequestDto) throws IOException {\n        LoginResponseDto loginResponseDto = service.login(loginRequestDto);\n        setCookies(response, loginResponseDto);\n        gotoIndexPage(response, loginResponseDto);\n        return null;\n    }\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Spring Boot \u2013 @Valid \uad00\ub828 Exception BindException \uacfc HttpMessageNotReadableException, MethodArgumentNotValidException \uc774 \uc5b8\uc81c \ubc1c\uc0dd\ud558\ub294\uc9c0 \uc815\ub9ac\ud569\ub2c8\ub2e4. @RequestBody json \uc73c\ub85c \uac12\uc744 \ubc1b\uc744 \ub54c \ubc1c\uc0dd\ud569\ub2c8\ub2e4. @RestController @RequiredArgsConstructor @RequestMapping(&quot;\/v1\/login&quot;) public class LoginController { @PostMapping(&quot;\/&quot;) public ResponseEntity&lt;?&gt; login(@Valid @RequestBody LoginRequestDto dto) { return service.login(dto); } } HttpMessageNotReadableException Json \ud615\uc2dd\uc5d0 \uc624\ub958\uac00 \uc788\ub294 \uacbd\uc6b0 \ubc1c\uc0dd\ud569\ub2c8\ub2e4. MethodArgumentNotValidException Json \ud30c\uc2f1\uc740 \uc81c\ub300\ub85c \uc774\ub8e8\uc5b4\uc9c4 \ud6c4 @Valid \ub2e8\uacc4\uc5d0\uc11c\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7621\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"class_list":["post-7621","post","type-post","status-publish","format-standard","hentry","category-spring-boot-2-5"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7621","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7621"}],"version-history":[{"count":5,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7621\/revisions"}],"predecessor-version":[{"id":7665,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7621\/revisions\/7665"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7621"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7621"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}