๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐ŸŒฟ Spring33

[Spring Boot/RESTful] Response ๋ฐ์ดํ„ฐ ํ˜•์‹ ๋ฐ˜ํ™˜(XML format) XML ํŒŒ์ผ ํ˜ธ์ถœ Postman header์—์„œ key: Accept, value: application/xml๋กœ ๋ณ€ํ™˜ ์‹œ xmlํŒŒ์ผ ํ˜ธ์ถœ ๊ฐ€๋Šฅ XML ํŒŒ์ผ ๋ฐ˜ํ™˜ ํ—ˆ์šฉ pom.xml ํŒŒ์ผ์— ๊ด€๋ จ dependency ์ถ”๊ฐ€ com.fasterxml.jackson.dataformat jackson-dataformat-xml 2.10.2 ⇒ ์„ค์ •ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ 406 ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค 406 Not Acceptable ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์˜ ์‚ฌ์ „ ์ฝ˜ํ…์ธ  ํ˜‘์ƒ ํ—ค๋”์— ์ ์šฉ๋œ ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐ’ ๋ชฉ๋ก๊ณผ ์ผ์น˜ํ•˜๋Š” ์‘๋‹ต์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์„œ๋ฒ„๊ฐ€ ๊ธฐ๋ณธ ํ‘œํ˜„์„ ์ œ๊ณตํ•  ์˜์‚ฌ๊ฐ€ ์—†์–ด์„œ ๋ฐœ์ƒ [์‚ฌ์ „ ์ฝ˜ํ…์ธ  ํ˜‘์ƒ ํ—ค๋”์˜ ์ข…๋ฅ˜] [Accept]() [Accept-Encoding]() [Accept-Language]() ์„œ๋ฒ„๋Š” ๋ณดํ†ต ๊ด€๋ จ ํ—ค๋”๋ฅผ ๋ฌด.. 2022. 2. 18.
[Spring Boot/RESTful] Validation API์™€ Internationalization Validation API ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ์ฒดํฌ -> @Valid annotation ์‚ฌ์šฉ 1. dependency ์ถ”๊ฐ€ org.hibernate.validator hibernate-validator 6.0.7.Final 2. dto์— ์ œ์•ฝ์กฐ๊ฑด ์ถ”๊ฐ€ @Data @AllArgsConstructor public class User { private Integer id; @Size(min=2, message = "Name์€ 2๊ธ€์ž ์ด์ƒ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.") private String name; private String password; @Past // ๊ณผ๊ฑฐ ๋‚ ์งœ๋งŒ ๊ฐ€๋Šฅํ•œ ์ œ์•ฝ ์กฐ๊ฑด private Date joinDate; } 3. controller์— ์ถ”๊ฐ€ JDK์— ํฌํ•จ๋œ API์™€ hibe.. 2022. 2. 18.
[Spring Boot/RESTful] User Service API ๊ตฌํ˜„ 1) domain ํด๋ž˜์Šค ์ƒ์„ฑ ๋„๋ฉ”์ธ ํŠน์ • ์ „๋ฌธ ๋ถ„์•ผ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ „๋ฌธ ์ง€์‹ ์Šคํ…Œ๋ ˆ์˜คํƒ€์ž… ํ•ด๋‹น ํด๋ž˜์Šค๊ฐ€ ์–ด๋Š ์šฉ๋„๋กœ ์‚ฌ์šฉ๋  ๊ฒƒ์ธ์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ → ์˜์กด์„ฑ ์ฃผ์ž…ํ•  ๋•Œ ๋„์›€์ด ๋œ๋‹ค. ex) @RestController, @Service User domain ์—ฌ๊ธฐ์—์„œ๋Š” @Data annotation์„ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ @Data ์‚ฌ์šฉ์€ ๋˜๋„๋ก ์ž์ œํ•˜๊ณ  @Getter @Setter ๋“ฑ์„ ๋”ฐ๋กœ ์ง€์ •ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. (@Data ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ํ•œ๊บผ๋ฒˆ์— ๋งŽ์€ ๊ธฐ๋Šฅ์„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๋„ ํ•˜๊ณ , @ToString์€ ์ž˜๋ชป ์“ฐ๋ฉด JPA์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ) @Data @AllArgsConstructor public class User { private Integer id; private String name; private Da.. 2022. 2. 17.
[Spring Boot/RESTful] Spring Boot๋กœ ๊ฐœ๋ฐœํ•˜๋Š” RESTful Service ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์ง€๊ธˆ๊นŒ์ง€๋Š” ํ•ญ์ƒ start.spring.io๋ฅผ ์ด์šฉํ•ด์™”๋Š”๋ฐ, IntelliJ ์•ˆ์—์„œ ๋ฐ”๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜๋„ ์žˆ๋‹ค! ์•„๋ž˜์ฒ˜๋Ÿผ dependency๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด pom.xml์— ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋œ๋‹ค. Spring web → embedded tomcat ์‹คํ–‰ ๊ฐ€๋Šฅ REST API ์„ค๊ณ„ HTTPS API Name GET /users retrieve all users POST /users create a user GET /users/{id} retrieve one user DELETE /users/{id} delete a user GET /users/{id}/posts retrieve all posts for a user POST /users/{id}/posts create a post for a u.. 2022. 2. 17.