Spring MVC ์›น ๊ณ„์ธต

Web Layer 

1. ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ์™€ ํ…œํ”Œ๋ฆฟ ์—”์ง„์˜ ์˜์—ญ 
2. ํ•„ํ„ฐ, ์ธํ„ฐ์…‰ํ„ฐ, ์ปจํŠธ๋กค๋Ÿฌ ์–ด๋“œ๋ฐ”์ด์Šค ๋“ฑ ์™ธ๋ถ€ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์˜์—ญ์„ ์˜๋ฏธํ•œ๋‹ค. 

Service Layer 

1. `@Service`์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์„œ๋น„์Šค ์˜์—ญ 
2. ์ผ๋ฐ˜์ ์œผ๋กœ Controller์™€ Repository์˜ ์ค‘๊ฐ„ ์˜์—ญ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. 
3. @Transactional์ด ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค. 

 Repository Layer 

1. Database์™€ ๊ฐ™์€ ์ €์žฅ์†Œ์— ์ ‘๊ทผํ•˜๋Š” ์˜์—ญ 
2. ์ด์ „์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋˜ Dao ์˜์—ญ์ด๋‹ค. 

DTOs

1. DTO๋Š” ๊ณ„์ธต ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•œ ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
2. ๋ทฐ ํ…œํ”Œ๋ฆฟ ์—”์ง„์—์„œ ์‚ฌ์šฉ๋  ๊ฐ์ฒด๋‚˜ Repository๊ฐ€ ์‘๋‹ต์œผ๋กœ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฐ์ฒด ๋“ฑ์„ ๋งํ•œ๋‹ค.

 Domain Model

1. ๊ฐœ๋ฐœ ๋Œ€์ƒ(๋„๋ฉ”์ธ)์„ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋™์ผํ•œ ๊ด€์ ์—์„œ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ณ  ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹จ์ˆœํ™” ์‹œํ‚จ ๊ฒƒ
2. ์˜ˆ๋ฅผ ๋“ค์–ด ํƒ์‹œ ์•ฑ์ด๋ผ๊ณ  ํ•˜๋ฉด ๋ฐฐ์ฐจ, ํƒ‘์Šน, ์š”๊ธˆ์ด ๋ชจ๋‘ ๋„๋ฉ”์ธ์ด ๋  ์ˆ˜ ์žˆ๋‹ค. 
3. `@Entity` ๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๊ณณ์ด ๋„๋ฉ”์ธ ๋ชจ๋ธ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. 
4. ๋ฌด์กฐ๊ฑด DB ํ…Œ์ด๋ธ”๊ณผ ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ VO์™€ ๊ฐ™์€ ๋‹จ์ˆœ ๊ฐ์ฒด๋„ ํ•ด๋‹น๋œ๋‹ค. 

 

๊ทธ๋ ‡๋‹ค๋ฉด ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ์ฃผ๋กœ ์–ด๋””์„œ ์ฒ˜๋ฆฌ๋ ๊นŒ? 

  1. Domain์ด ๋‹ด๋‹นํ•œ๋‹ค. 
  2. ๋งŒ์•ฝ ์„œ๋น„์Šค ๊ณ„์ธต์—์„œ ๋ชจ๋“  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์ฒ˜๋ฆฌ๋œ๋‹ค๋ฉด ๊ฐ์ฒด๋Š” ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ ๋ฉ์–ด๋ฆฌ์— ๋ถˆ๊ณผํ•˜๋ฉฐ ์„œ๋น„์Šค ๊ณ„์ธต์˜ ์—ญํ• (์„œ ํŠธ๋žœ์žญ์…˜, ๋„๋ฉ”์ธ ๊ฐ„ ์ˆœ๋ณด์žฅ)์ด ๋ฌด์˜๋ฏธํ•ด์งˆ ๊ฒƒ์ด๋‹ค.