Yuni Devlog
article thumbnail

๐Ÿ’šSpring Framework์˜ ์ „์ฒด ์‹คํ–‰ ์ˆœ์„œ

Request โฉ DispatcherServlet (web.xml) โฉ HandlerMapping (servlet-context.xml)

โฉ Controller [Controller -> Service -> DAO -> DB -> DAO -> Service -> Controller]

โฉ DispatcherServlet โฉ ViewResolver โฉ View โฉ DispatcherServlet โฉ Response

์ผ๋ฐ˜์ ์ธ ๊ธฐ๋ณธ ๋™์ž‘ ์ˆœ์„œ๐Ÿงš‍โ™‚๏ธ

์œ„ ์˜ˆ์‹œ์—์„œ Controller ๋’ท๋ถ€๋ถ„์˜ ๊ณผ์ •์„ ์ƒ๋žตํ•จ๐Ÿงš‍โ™‚๏ธ

๐Ÿงš‍โ™‚๏ธ์‹คํ–‰ ์ˆœ์„œ

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋ƒ„.
  2. ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ DispatcherServlet์ด ๊ฐ€๋กœ์ฑ”. web.xml์˜ ์— ๋“ฑ๋ก๋œ ๋‚ด์šฉ๋งŒ ๊ฐ€๋กœ์ฑ”(๋ชจ๋“  ์š”์ฒญ์„ ๊ฐ€๋กœ์ฑ„๋Š” ๊ฒƒ์€ ์•„๋‹˜)
  3. DispatcherServlet์ด ๊ฐ€๋กœ์ฑˆ ์š”์ฒญ์„ HandlerMapping์œผ๋กœ ๋ณด๋‚ด ํ•ด๋‹น ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  Controller๋ฅผ ์ฐพ์Œ.
  4. ์‹ค์ œ ์š”์ฒญ ์ฒ˜๋ฆฌ : Controller ⇒ Service ⇒ DAO ⇒ DB ⇒ DAO ⇒ Service ⇒ Controller
  5. ViewResolver๋ฅผ ํ†ตํ•ด ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•  View ํ™”๋ฉด์„ ์ฐพ์Œ.
  6. ์ฐพ์€ view ํ™”๋ฉด์„ View์— ๋ณด๋‚ด๋ฉด ์ด ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ DispatcherServlet์— ๋ณด๋‚ด๋ฉด, DispatcherServlet๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๊ฒฐ๊ณผ๋ฅผ ์ „์†กํ•จ.

๐Ÿ’šSpring framework์˜ ๊ฐ ๊ตฌ์„ฑ์š”์†Œ

ServletContainer

  • Client(์›น๋ธŒ๋ผ์šฐ์ €)๋กœ๋ถ€ํ„ฐ HTTP์š”์ฒญ์„ ๋ฐ›์•„ ์„œ๋ธ”๋ฆฟ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์„ฑ์š”์†Œ.
  • ์„œ๋ธ”๋ฆฟ์ด๋ž€ javax.servlet ํŒจํ‚ค์ง€์— ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ, ์ž๋ฐ” class ํŒŒ์ผ๋กœ ๋œ ์„œ๋ฒ„๋กœ์ง์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Œ.
  • ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ๋Š” Tomcat

Spring

  • Spring framework ์˜์—ญ์ž„.

DispatcherServlet

  • Spring framework์—์„œ front controller์—ญํ• .
  • ์‹ค์ œ ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ๋กœ์ง์š”์ฒญ์— ๋Œ€ํ•ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์คŒ.
  • dispatch์˜ ๋œป์€ ๋ณด๋‚ด๋‹ค๋ผ๋Š” ๋œป์œผ๋กœ, ์ด๊ณณ์— ์š”์ฒญ์ด ์˜ค๋ฉด ์‹ค์ œ๋กœ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•  ์ปดํฌ๋„ŒํŠธ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๊ณ , ๋ฐ˜ํ™˜์„ ๋ฐ›๋Š” ์—ญํ• .

HandlerMapping

  • Spring framework์— ์ž‘์„ฑ๋œ ์—ฌ๋Ÿฌ Controller์ค‘์—์„œ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•  contoller๋ฅผ ํ™•์ธํ•ด์ฃผ๋Š” ์ปดํฌ๋„ŒํŠธ.

Controller

  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ฐœ๋ฐœํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ, http request๋ฅผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ๋ฐœํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ.

Service

  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ฐœ๋ฐœํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ, ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ.

DAO (Data Access Object)

  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ฐœ๋ฐœํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ, Database์— ์ง์ ‘์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฐ์ฒด.
    ๋ณดํ†ต mybatis์™€ ๊ฐ™์€ persistence framework๋ฅผ ๋งŽ์ด ํ™œ์šฉ.

ViewResolver

  • ViewName์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์–ด๋–ค View ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€ ํ™•์ธํ•ด์ฃผ๋Š” ์ปดํฌ๋„ŒํŠธ.

View

  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ฐœ๋ฐœํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ, ๋ณดํ†ต UIํ™”๋ฉด์„ ์˜๋ฏธ.

์ฐธ์กฐ

Spring MVC ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ์™€ ์‹คํ–‰ ์ˆœ์„œ

[Spring] Spring Framework ๊ธฐ๋ณธ๋™์ž‘ ์ˆœ์„œ ๋ฐ ๊ตฌ์กฐ, ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ๋™์ž‘ ๋ฐ ๊ตฌ์กฐ, ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ๊ตฌ์„ฑ์š”์†Œ

'Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Spring]DataSource / JNDI / Connection Pool  (0) 2022.10.26
[Spring]Interceptor  (1) 2022.10.25
[Spring]Logging  (1) 2022.10.07
[Spring]AJAX์‘๋‹ต  (0) 2022.10.04
[Spring]Exception์ฒ˜๋ฆฌ  (0) 2022.10.04
profile

Yuni Devlog

@siyuning

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!

๊ฒ€์ƒ‰ ํƒœ๊ทธ