Skip to content

Latest commit

ย 

History

History
64 lines (46 loc) ยท 1.8 KB

@ResponseBody.md

File metadata and controls

64 lines (46 loc) ยท 1.8 KB

1.@ResponseBody

Spring MVC์—์„œ ์ปจํŠธ๋กค๋Ÿฌ ๋ฉ”์„œ๋“œ์˜ ๋ฐ˜ํ™˜ ๊ฐ’์„ 
HTTP ์‘๋‹ต ๋ณธ๋ฌธ์œผ๋กœ ์ง์ ‘ ์ „์†กํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์• ๋…ธํ…Œ์ด์…˜์ž…๋‹ˆ๋‹ค. 
์ด ์• ๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด, ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ’์ด 
๋ทฐ ๋ฆฌ์กธ๋ฒ„๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๊ณ , ๊ทธ๋Œ€๋กœ HTTP ์‘๋‹ต ๋ณธ๋ฌธ์œผ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.

2.@ResponseBody ์—ญํ• 

2-1.HTTP ์‘๋‹ต ๋ณธ๋ฌธ ์„ค์ •

๋ฉ”์„œ๋“œ์˜ ๋ฐ˜ํ™˜ ๊ฐ’์„ HTTP ์‘๋‹ต ๋ณธ๋ฌธ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


GET ์š”์ฒญ์— ๋Œ€ํ•ด sayHello ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉฐ, ์ด ๋ฉ”์„œ๋“œ์˜ ๋ฐ˜ํ™˜ ๊ฐ’์ธ "Hello, World!"๊ฐ€ HTTP ์‘๋‹ต ๋ณธ๋ฌธ์œผ๋กœ ์ „์†ก
@RestController
public class MyController {

    @GetMapping("/hello")
    @ResponseBody
    public String sayHello() {
        return "Hello, World!";
    }
}

2-2.JSON,XML ํฌ๋งท์œผ๋กœ ์‘๋‹ต

๋ฐ˜ํ™˜๋˜๋Š” ๊ฐ์ฒด๋ฅผ JSON, XML ๋“ฑ์œผ๋กœ ์ง๋ ฌํ™”ํ•˜์—ฌ ์‘๋‹ต ๋ณธ๋ฌธ์œผ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.


/user ๊ฒฝ๋กœ๋กœ ๋“ค์–ด์˜ค๋Š” GET ์š”์ฒญ์— ๋Œ€ํ•ด getUser ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉฐ,
์ด ๋ฉ”์„œ๋“œ์˜ ๋ฐ˜ํ™˜ ๊ฐ’์ธ User ๊ฐ์ฒด๊ฐ€ JSON ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด HTTP ์‘๋‹ต ๋ณธ๋ฌธ์œผ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
@RestController
public class UserController {

    @GetMapping("/user")
    @ResponseBody
    public User getUser() {
        return new User("John", "Doe");
    }
}

2-3. RESTful ์„œ๋น„์Šค ๊ตฌํ˜„

RESTful ์›น ์„œ๋น„์Šค์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋ฉฐ, REST API ์‘๋‹ต์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


@RestController๋Š” @Controller์™€ @ResponseBody๋ฅผ ๊ฒฐํ•ฉํ•œ ์• ๋…ธํ…Œ์ด์…˜์œผ๋กœ,
ํด๋ž˜์Šค ๋‚ด ๋ชจ๋“  ๋ฉ”์„œ๋“œ์— ์ž๋™์œผ๋กœ @ResponseBody๊ฐ€ ์ ์šฉ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
@RestController
public class ProductController {

    @GetMapping("/product")
    public Product getProduct() {
        return new Product("Laptop", 1500);
    }
}