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

01/24(์ˆ˜) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 23์ผ์ฐจ TIL - 3 Layer Architecture

by ๊ฐ์ž๊ฐœ๋ฐœ๊พผ 2024. 1. 24.

 

๐Ÿ“–  ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ

  • Controller
  • Service
  • Repository

 

๐Ÿฅ”  3 Layer Architecture

 

Controller
  • ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›๋Š” ๊ณณ
  • ์š”์ฒญ์— ๋Œ€ํ•œ ๋กœ์ง ์ฒ˜๋ฆฌ๋Š” Service์—๊ฒŒ ์ „๋‹ฌ
  • Service์—์„œ ์ฒ˜๋ฆฌ ์™„๋ฃŒ๋œ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต

 

Service
  • ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹ค์„ธ ์ค‘์˜ ์‹ค์„ธ (๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง)
  • DB ์ €์žฅ ๋ฐ ์กฐํšŒ๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋Š” Repository์—๊ฒŒ ์š”์ฒญ

 

Repository
  • DB ๊ด€๋ฆฌ (์—ฐ๊ฒฐ, ํ•ด์ œ, ์ž์› ๊ด€๋ฆฌ) ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.
  • DB CRUD ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๐Ÿฅ”  ํ”„๋กœ์ ํŠธ ์ „์ฒด์ ์ธ ํ๋ฆ„

  1. build.gradle, application.properties
  2. entity์™€ dto
  3. controller
  4. service
  5. repository

์˜ค๋Š˜์€ ์œ„๊ฐ™์€ ์ˆœ์„œ๋กœ ์Šคํ”„๋ง์˜ ์ „์ฒด์ ์ธ ํ๋ฆ„์„ ํŒŒ์•…ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

๋ง๋กœ ํ’€์–ด ์„ค๋ช…์„ ํ•˜์ž๋ฉด, ์ „์ฒด์ ์ธ ์„ค์ •์„ ํ•ด์ค€ ํ›„

์—”ํ‹ฐํ‹ฐ์™€ ๋””ํ‹ฐ์˜ค๋ฅผ ๋งŒ๋“ค๊ณ , ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด, ์„œ๋น„์Šค๋กœ RequestDto๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š”๋ฐ

์„œ๋น„์Šค์—์„  Dto๋ฅผ Entity๋กœ ๋งŒ๋“ค๊ณ  ๋‚˜์„œ repository๋กœ Entity๋ฅผ ๋„˜๊ฒจ์ค๋‹ˆ๋‹ค.

repository์—์„œ ๋‹ค์‹œ ์„œ๋น„์Šค๋กœ ๊ฐ„ ํ›„ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๊ฐ€๊ธฐ ์ „ ์—”ํ‹ฐํ‹ฐ๋ฅผ ๋‹ค์‹œ ๋””ํ‹ฐ์˜ค๋กœ

๋ณ€๊ฒฝํ•œ ํ›„ ์ปจํŠธ๋กค๋Ÿฌ์— ๋„˜๊ฒจ์„œ ์‘๋‹ต์„ ๋ณด๋‚ด๋Š” ํ๋ฆ„์œผ๋กœ ์ดํ•ดํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

 

 

 

๐Ÿ“š  ์˜ค๋Š˜์˜ ํšŒ๊ณ 

์Šคํ”„๋ง์˜ ์ „์ฒด์ ์ธ ํ๋ฆ„์„ ํŒŒ์•…ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

ํŒŒ์•…ํ•˜๊ณ  ๋‚˜๋‹ˆ๊นŒ ๋ญ”์ง€ ๋ชจ๋ฅผ ์ž์‹ ๊ฐ์ด ์ƒ๊ธฐ๋ฉฐ, ๋” ์ž˜ํ•  ์ˆ˜์žˆ๊ฒ ๋‹ค๋ผ๋Š”

์ƒ๊ฐ์ด ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ƒ๊ฐ์„ ์œ ์ง€ํ•˜๋ฉฐ ๋” ์—ด์‹ฌํžˆ ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.