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

๊ฐœ๋ฐœ/Spring

์Šคํ”„๋ง ์›น ๊ฐœ๋ฐœ ๋ฐฉ์‹ (static / MVC / API)

์ข…๋ฅ˜

  • ์ •์  ์ปจํ…์ธ  : ์„œ๋ฒ„์—์„œ ํ•˜๋Š” ๊ฒƒ ์—†์ด ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ๋ณด๋‚ด์ฃผ๋Š” ๊ฒƒ
  • MVC์™€ ํ…œํ”Œ๋ฆฟ ์—”์ง„ : jsp php์ฒ˜๋ฆผ html์„ ๊ทธ๋ƒฅ ์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋™์ ์œผ๋กœ ๋ฐ”๊ฟ”์„œ ์ฃผ๋Š” ๊ฒƒ
  • API : json์ด๋ž€ ๋ฐ์ดํ„ฐ ํฌ๋งท์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ, ํ™”๋ฉด์€ ํ”„๋ก ํŠธ๊ฐ€ ์•Œ์•„์„œ

 

์ •์  ์ปจํ…์ธ 

๊ธฐ๋ณธ์ ์œผ๋กœ Spring์€ static ํด๋”์—์„œ ์ •์  ์ปจํ…์ธ ๋ฅผ ์ฐพ์•„ ์ œ๊ณต

ex) static ํด๋”์— hello-static.html ํŒŒ์ผ์„ ๋„ฃ์œผ๋ฉด localhost:8080 /hello-static.html ์ฃผ์†Œ๋กœ ๋งคํ•‘๋จ

  1. localhost:8080/hello-static.html ์š”์ฒญ
  2. ๋‚ด์žฅ ํ†ฐ์บฃ ์„œ๋ฒ„๊ฐ€ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋กœ ์š”์ฒญ ์ „๋‹ฌ
  3. ์ปจํ…Œ์ด๋„ˆ๊ฐ€ controller ํ™•์ธ
  4. "hello-static"๊ด€๋ จ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์—†์„์‹œ resources ํ™•์ธ (๋‚ด์žฅ ํ†ฐ์บฃ ์„œ๋ฒ„)
  5. resources/static/hello-static.html ์„ ์ฐพ์•„ ๊ทธ๋Œ€๋กœ ์›น๋ธŒ๋ผ์šฐ์ €์— ์ „๋‹ฌ

 

MVC์™€ ํ…œํ”Œ๋ฆฟ ์—”์ง„

MVC๋ž€?

  • model : ํ™”๋ฉด์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋“ค์„ ๋‹ด์•„์„œ view์— ๋„˜๊ฒจ์คŒ
  • view : ํ™”๋ฉด(front)์— ์ง‘์ค‘
  • controller : ๋‚ด๋ถ€ ๋กœ์ง

 

 

 

  1. localhost:8080/hello-mvc ์š”์ฒญ
  2. ๋‚ด์žฅ ํ†ฐ์บฃ ์„œ๋ฒ„๊ฐ€ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋กœ ์š”์ฒญ ์ „๋‹ฌ
  3. controller์—์„œ "hello-mvc"๋ฅผ ์ฐพ์•„ ์‹คํ–‰ 
  4. viewResolver๋กœ ์—ฐ๊ฒฐ (return: hello-template /  model(name:spring))
  5. viewResolver์—์„œ templatesํด๋” ์•ˆ์˜ "hello-template"ํ…œํ”Œ๋ฆฟ์„ ์ฐพ์•„ html๋กœ ๋ Œ๋”๋ง (์ด๋•Œ ๋™์  ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ˜์˜)
  6. html ํŒŒ์ผ์„ ์›น ๋ธŒ๋Ÿฌ์šฐ์ ธ์— ์ „๋‹ฌ

 

 

API ๋ฐฉ์‹

 

  1. localhost:8080/hello-api ๋กœ ์š”์ฒญ
  2. ๋‚ด์žฅ ํ†ฐ์บฃ ์„œ๋ฒ„๊ฐ€ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋กœ ์š”์ฒญ ์ „๋‹ฌ
  3. controller์—์„œ "hello-api"๋ฅผ ์ฐพ์•„ ์‹คํ–‰
  4. @ResponseBody ์–ด๋…ธํ…Œ์ด์…˜์ด ์žˆ๋Š” ๊ฒฝ์šฐ http์˜ body์— ๋‚ด์šฉ์„ ์ง์ ‘ ๋ฐ˜ํ™˜
  5. HttpMessageConverter๋กœ json์œผ๋กœ ๋ณ€ํ™˜
    ๊ฐ์ฒด๋ผ๋ฉด MappingJackson2HttpMessageConverter
    ๋ฌธ์ž๋ผ๋ฉด StringHttpMessageConverter
  6. json ํ˜•์‹์œผ๋กœ ์›น๋ธŒ๋ผ์šฐ์ €์— ๋ฐ˜ํ™˜ 

 

 

 

๋ฐ˜์‘ํ˜•