Post

๐Ÿ”จ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ณ

image

1. ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜์ด๋ž€?

  • ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜๋Š” ์†Œ์Šค์ฝ”๋“œ์˜ ์—ญํ• ๊ณผ ๊ด€์‹ฌ์‚ฌ์— ๋”ฐ๋ผ ์ด๋ฅผ โ€œ๊ณ„์ธตโ€์œผ๋กœ ๋ถ„๋ฆฌํ•œ ์•„ํ‚คํ…์ฒ˜์ด๋‹ค.
  • ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์†Œ์Šค์ฝ”๋“œ์˜ ์—ญํ• ๊ณผ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณ„์ธต๋“ค๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค.

1) API Layer (ํ‘œํ˜„ ๊ณ„์ธต(Presentation Layer))

  • ์‚ฌ์šฉ์ž์™€์˜ ์š”์ฒญ/์‘๋‹ต ๋“ฑ ์ƒํ˜ธ์ž‘์šฉ ์ฒ˜๋ฆฌ์— ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋‘” ๊ณ„์ธต
  • View, Controller ๋“ฑ์ด ์ด ๊ณ„์ธต์— ์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

2) Service Layer

  • ์„œ๋น„์Šค ๊ณ„์ธต์€ API ๊ณ„์ธต์—์„œ ์ „๋‹ฌ๋ฐ›์€ ์š”์ฒญ์„ ์—…๋ฌด ๋„๋ฉ”์ธ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ ๋น„์ฆˆ๋‹ˆ์Šค์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณ„์ธต

3) Data Access Layer

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ง์ ‘์ ์œผ๋กœ ์š”์ฒญ์„ ์ „๋‹ฌํ•˜๋Š” ๋“ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๋Š”๋ฐ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋‘” ๊ณ„์ธต
  • ORM, repository์ด ๊ณ„์ธต์— ์†ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋น„์ฆˆ๋‹ˆ์Šค ๊ณ„์ธต์—์„œ ์ฒ˜๋ฆฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ณ„์ธต

3. ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜์˜ ํŠน์ง•

  • ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜์—์„œ ๊ฐ ๊ณ„์ธต์€ ๋‹ค๋ฅธ ๊ณ„์ธต๋“ค๊ณผ์˜ ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„๋ฅผ ๊ฐ€์ง€๊ณ  ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ๋†’์€ ์‘์ง‘๋„๋ฅผ ๊ฐ€์งˆ ๊ฒƒ์„ ์ง€ํ–ฅํ•œ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด, ๊ณ„์ธต์„ ๋ถ„๋ฆฌํ•œ ๊ฐ€์žฅ ํฐ ์ด์œ ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์˜ ์šฉ์ด์„ฑ์„ ๋ณด์กด ํ˜น์€ ๊ทน๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  • ์ด ๋•Œ๋ฌธ์—, ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜์—์„œ ๊ณ„์ธต๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ์ง€๋‹Œ๋‹ค.

  • ์ƒ์œ„ ๊ณ„์ธต์€ ํ•˜์œ„ ๊ณ„์ธต์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ•˜์œ„ ๊ณ„์ธต์€ ์ƒ์œ„ ๊ณ„์ธต์„ ํŒŒ์•…ํ•  ์ˆ˜ ์—†๋‹ค.
  • ๊ณ„์ธต์ด ๋ฐ˜๋“œ์‹œ ์ฐธ์กฐํ•ด์•ผ ํ•˜๋Š” ๊ณ„์ธต ์ด์™ธ์—๋Š” ์˜์กดํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ์˜ˆ์ปจ๋Œ€, Presentation์€ Business๋ฅผ ์•Œ๊ณ  ์žˆ์ง€๋งŒ, Business๋Š” Presentation์„ ์•Œ ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด๋‹ค.

4. ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜์˜ ์žฅ์ 

  • ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜๋Š” ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
  • ๊ด€์‹ฌ์‚ฌ์— ๋”ฐ๋ผ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ณ„์ธต์œผ๋กœ์„œ ๋ถ„๋ฆฌํ•œ๋‹ค.
  • ๊ฐ ๊ณ„์ธต์€ ๋‹ค๋ฅธ ๊ณ„์ธต๊ณผ์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ์ตœ์†Œํ™”ํ•˜๋„๋ก ๊ตฌํ˜„๋œ๋‹ค.
  • ์ด์— ๋”ฐ๋ผ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์ ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
  • ๊ณ„์ธต ๋ถ„๋ฆฌ์— ๋”ฐ๋ฅธ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ, ์œ ์ง€๋ณด์ˆ˜์˜ ์šฉ์ด์„ฑ ๊ฐœ์„ 
  • ๋ชจ๋“ˆ ๊ต์ฒด์˜ ์šฉ์ด์„ฑ
    • ๊ฐ ๊ณ„์ธต์€ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ๊ธฐ ๋–„๋ฌธ์—, ํŠน์ • ๊ณ„์ธต์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“ˆ์„ ๋ณ€๊ฒฝํ•œ๋‹ค๊ณ  ํ•  ๋•Œ, ๋‹ค๋ฅธ ๊ณ„์ธต์—์„œ ๊ทธ๊ฒƒ์— ๋”ฐ๋ฅธ ์˜ํ–ฅ์ด ์ตœ์†Œํ™”๋œ๋‹ค.
  • ์ˆ˜์›”ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ํ™˜๊ฒฝ ์กฐ์„ฑ
    • ๊ฐ ๊ณ„์ธต์€ ์ž์‹ ์˜ ๊ด€์‹ฌ์‚ฌ์—๋งŒ ์ดˆ์ ์„ ๋‘๊ธฐ ๋•Œ๋ฌธ์—, ํ•œ ๊ณ„์ธต์„ ํ…Œ์ŠคํŠธํ•  ๋•Œ ๊ทธ ํ™˜๊ฒฝ์„ ์กฐ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ˆ˜์›”ํ•˜๋‹ค.

5. ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜์˜ ๋‹จ์ 

1. ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฃผ๋„ ์„ค๊ณ„๋ฅผ ์œ ๋„ํ•œ๋‹ค.

This post is licensed under CC BY 4.0 by the author.