Validation Library Document - dev-team-projects/DeliTalk GitHub Wiki

์ž‘์„ฑ์ž : ์ž„์„ฑ์ค€


Spring Boot Validation

๊ฐœ๋…

  • ๋ฐ์ดํ„ฐ ์œ ํšจ์„ฑ ๊ฒ€์ฆ(Validation) ์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ „๋‹ฌํ•œ ์š”์ฒญ ๊ฐ’์ด ์„œ๋ฒ„์—์„œ ๊ธฐ๋Œ€ํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ์ž…๋‹ˆ๋‹ค.

  • Spring Boot์—์„œ๋Š” javax.validation(JSR-380), Hibernate Validator๋ฅผ ์ด์šฉํ•ด ๊ฐ„ํŽธํ•˜๊ฒŒ ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜

  • ์ฃผ๋กœ javax.validation.constraints ํŒจํ‚ค์ง€์˜ ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์–ด๋…ธํ…Œ์ด์…˜ ์„ค๋ช…
@NotNull ๊ฐ’์ด null์ด ์•„๋‹ˆ์–ด์•ผ ํ•จ
@NotBlank ๋ฌธ์ž์—ด์ด null, "", " "๊ฐ€ ์•„๋‹ˆ์–ด์•ผ ํ•จ
@Size(min=, max=) ๋ฌธ์ž์—ด/์ปฌ๋ ‰์…˜ ํฌ๊ธฐ ์ œํ•œ
@Email ์ด๋ฉ”์ผ ํ˜•์‹ ๊ฒ€์ฆ
@Pattern(regexp="") ์ •๊ทœํ‘œํ˜„์‹ ๊ฒ€์ฆ
@Min, @Max ์ตœ์†Œ/์ตœ๋Œ€๊ฐ’ ๊ฒ€์ฆ

์ ์šฉ ๋ฐฉ๋ฒ•

DTO์— ์ ์šฉ

public class UserRequestDto {
@NotBlank(message = "์ด๋ฆ„์€ ํ•„์ˆ˜ ์ž…๋ ฅ์ž…๋‹ˆ๋‹ค.")
private String name;

    @Email(message = "์˜ฌ๋ฐ”๋ฅธ ์ด๋ฉ”์ผ ํ˜•์‹์ด ์•„๋‹™๋‹ˆ๋‹ค.")
    private String email;

}

Controller์—์„œ ์‚ฌ์šฉ

@PostMapping("/user")
public ResponseEntity<String> createUser(@Valid @RequestBody UserRequestDto requestDto) {
// ์œ ํšจ์„ฑ ๊ฒ€์ฆ ํ†ต๊ณผ ์‹œ ์ฒ˜๋ฆฌ
return ResponseEntity.ok("์œ ์ € ์ƒ์„ฑ ์™„๋ฃŒ");
}
  • @Valid ๋˜๋Š” @Validated ์–ด๋…ธํ…Œ์ด์…˜์„ ๋ฐ˜๋“œ์‹œ ๋ถ™์—ฌ์•ผ ๊ฒ€์ฆ์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
โš ๏ธ **GitHub.com Fallback** โš ๏ธ