๊ด€๋ฆฌ ๋ฉ”๋‰ด

Coding Planet

@Controller์™€ @RestController์˜ ์ฐจ์ด๋Š”? ๋ณธ๋ฌธ

๐ŸŒฑSPRING

@Controller์™€ @RestController์˜ ์ฐจ์ด๋Š”?

jhj.sharon 2024. 1. 2. 10:17
๋ฐ˜์‘ํ˜•

1. @Controller

  • @Controller ์–ด๋…ธํ…Œ์ด์…˜์€ ์Šคํ”„๋ง ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•ด์ฃผ๊ธฐ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.
  • HTML ๋ทฐ ํ…œํ”Œ๋ฆฟ, JSP, Thymleaf๋“ฑ๊ณผ ๊ฐ™์€ ๋ทฐ ๋ Œ๋”๋ง์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ณ  ๋ฐ˜ํ™˜๋˜๋Š” ๋ฉ”์„œ๋“œ์˜ ๊ฒฐ๊ณผ๋Š” ์ฃผ๋กœ ๋ชจ๋ธ๊ณผ ๋ทฐ ์ด๋ฆ„์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๋ทฐ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๋ Œ๋”๋ง๋˜์–ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ HTML ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  • MVC ํŒจํ„ด์—์„œ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์ฒ˜๋ฆฌ์™€ ํ๋ฆ„ ์ œ์–ด๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•œ ํ›„ ์‘๋‹ต ํ™”๋ฉด(๋ทฐ ํ…œํ”Œ๋ฆฟ)์„ ์ง€์ •ํ•œ๋‹ค.
@Controller
public class MyController {
    @GetMapping("/hello")
    public String sayHello() {
        return "hello"; // "hello"๋Š” ๋ทฐ ํ…œํ”Œ๋ฆฟ ์ด๋ฆ„
    }
}

 

2. @RestController

  • @RestController ์–ด๋…ธํ…Œ์ด์…˜์€ ์Šคํ”„๋ง ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ RESTful ์›น ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ ํด๋ž˜์Šค์— ์‚ฌ์šฉ๋œ๋‹ค.
  • JSON, XML ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ๋ฉ”์„œ๋“œ์˜ ๋ฐ˜ํ™˜ ๊ฐ’์€ ์ง์ ‘ HTTP ์‘๋‹ต์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†ก๋œ๋‹ค.
  • ์ฆ‰ ์•„๋ž˜ ์˜ˆ์‹œ์˜ "Hello, World!"๋Š” ๋ฌธ์ž์—ด์ธ๋ฐ ์ด ๋ฌธ์ž์—ด์„ HTTP ์‘๋‹ต ๋ณธ๋ฌธ์œผ๋กœ ํฌํ•จ์‹œํ‚ค๊ณ  'Content-Type' ํ—ค๋”๋ฅผ ํ…์ŠคํŠธ ํ˜•์‹์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ๋”ฐ๋ผ์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ '/api/hello' ์—”๋“œํฌ์ธํŠธ์— ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด "Hello, World!"๊ฐ€ HTTP ์‘๋‹ต์œผ๋กœ ๋ฐ˜ํ˜ธ๋‚˜๋˜๋Š” ๊ฒƒ์ด๋‹ค.
@RestController
public class MyRestController {
    @GetMapping("/api/hello")
    public String sayHello() {
        return "Hello, World!";
    }
}

 

 

 

 

๋ฐ˜์‘ํ˜•
Comments