CodeGym/Java Course/๋ชจ๋“ˆ 3/์†Œํ”„ํŠธ์›จ์–ด ๋ชจ๋“ˆ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๋Š” ๋ฐฉ๋ฒ•

์†Œํ”„ํŠธ์›จ์–ด ๋ชจ๋“ˆ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๋Š” ๋ฐฉ๋ฒ•

์‚ฌ์šฉ ๊ฐ€๋Šฅ

8.1 ๋ถ„ํ•ด๊ฐ€ ์ „๋ถ€๋‹ค

๋ช…ํ™•์„ฑ์„ ์œ„ํ•ด ์„ค๋ช…ํ•  ์ฃผ์š” ์‚ฌํ•ญ์„ ์„ค๋ช…ํ•˜๋Š” ์ข‹์€ ๊ธฐ์‚ฌ "๊ฐ์ฒด ์ง€ํ–ฅ ์‹œ์Šคํ…œ์˜ ๋ถ„๋ฆฌ"์˜ ๊ทธ๋ฆผ์ž…๋‹ˆ๋‹ค.

๋ถ„ํ•ด

์•„์ง๋„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„๊ฐ€ ์‰ฝ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹œ๋‚˜์š”?

8.2 ์ธํ„ฐํŽ˜์ด์Šค, ๊ตฌํ˜„ ์ˆจ๊ธฐ๊ธฐ

์‹œ์Šคํ…œ์˜ ๊ฒฐํ•ฉ์„ ์ค„์ด๊ธฐ ์œ„ํ•œ ์ฃผ์š” ์›์น™์€ OOP์˜ ์›์น™๊ณผ ๊ทธ ๋’ค์— ์žˆ๋Š” Encapsulation + Abstraction + Polymorphism์˜ ์›์น™์ž…๋‹ˆ๋‹ค.

๊ทธ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ชจ๋“ˆ์€ ์„œ๋กœ์— ๋Œ€ํ•ด "๋ธ”๋ž™ ๋ฐ•์Šค"์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค(์บก์Šํ™”) . ์ด๋Š” ํ•œ ๋ชจ๋“ˆ์ด ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋กœ "์˜ฌ๋ผ๊ฐ€"์„œ๋Š” ์•ˆ ๋˜๋ฉฐ ๋‚ด๋ถ€ ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•„๋ฌด๊ฒƒ๋„ ๋ชฐ๋ผ์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ•œ ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ๊ฐœ์ฒด๋Š” ๋‹ค๋ฅธ ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ๊ฐœ์ฒด์— ์ง์ ‘ ์•ก์„ธ์Šคํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“ˆ/ํ•˜์œ„ ์‹œ์Šคํ…œ์€ ์ธํ„ฐํŽ˜์ด์Šค (์ฆ‰, ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ์ถ”์ƒํ™” ) ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์„œ๋กœ ์ƒํ˜ธ ์ž‘์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . ๋”ฐ๋ผ์„œ ๊ฐ ๋ชจ๋“ˆ์—๋Š” ๋‹ค๋ฅธ ๋ชจ๋“ˆ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ž˜ ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

"๋ธ”๋ž™ ๋ฐ•์Šค"(์บก์Šํ™”)์˜ ์›์น™์„ ํ†ตํ•ด ๋‹ค๋ฅธ ํ•˜์œ„ ์‹œ์Šคํ…œ๊ณผ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐ ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ๋ฅผ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "๋ธ”๋ž™ ๋ฐ•์Šค"์ธ ๋ชจ๋“ˆ์€ ๋น„๊ต์  ์ž์œ ๋กญ๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ชจ๋“ˆ(๋˜๋Š” ๋ชจ๋“ˆ๊ณผ ํ™˜๊ฒฝ)์˜ ๊ต์ฐจ์ ์—์„œ๋งŒ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

๋‹คํ˜•์„ฑ์€ ๋•Œ๋•Œ๋กœ ์ž˜๋ชป ์ƒ๊ฐ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฌด์—‡๋ณด๋‹ค๋„ ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค ๋˜๋Š” "ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค, ๋งŽ์€ ๊ตฌํ˜„"์„ ๊ฐ€์ง„ ๋ชจ๋“ˆ/๊ฐ์ฒด์˜ ์ƒํ˜ธ ๊ตํ™˜ ๊ฐ€๋Šฅ์„ฑ์ž…๋‹ˆ๋‹ค. ๋‹คํ˜•์„ฑ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์† ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์ „ํ˜€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ์†์€ ๊ฐ€๋Šฅํ•  ๋•Œ๋งˆ๋‹ค ํ”ผํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ด๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค .

์ธํ„ฐํŽ˜์ด์Šค์™€ ๋‹คํ˜•์„ฑ ๋•๋ถ„์— ์ด๋ฏธ ์ž‘์„ฑ๋œ ๊ฒƒ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ(๊ฐœ๋ฐฉํ˜• ์›์น™)์ด ๋‹ฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋“ˆ์˜ ์ƒํ˜ธ ์ž‘์šฉ์ด ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ˜•ํƒœ๋กœ ๋…์ ์ ์œผ๋กœ ์„ค๋ช…๋˜๊ณ  ํŠน์ • ๊ตฌํ˜„์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š๋Š” ํ•œ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ์ ˆ๋Œ€์ ์œผ๋กœ "๊ณ ํ†ต ์—†์ด" ํ•œ ๋ชจ๋“ˆ์„ ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋กœ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜์‹ญ์‹œ์˜ค.

LEGO ์ƒ์„ฑ์ž์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ƒํ˜ธ ์ž‘์šฉ์„ ํ‘œ์ค€ํ™”ํ•˜๊ณ  ์ ์ ˆํ•œ ์ปค๋„ฅํ„ฐ๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ๋ชจ๋“ˆ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ข…์˜ ์ปค๋„ฅํ„ฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

๋””์ž์ด๋„ˆ์˜ ์œ ์—ฐ์„ฑ์€ ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ ๋˜๋Š” ๋ถ€ํ’ˆ์„ ๋™์ผํ•œ ์ปค๋„ฅํ„ฐ(๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค ํฌํ•จ)๊ฐ€ ์žˆ๋Š” ๋‹ค๋ฅธ ๋ถ€ํ’ˆ์œผ๋กœ ๊ฐ„๋‹จํžˆ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์›ํ•˜๋Š” ๋งŒํผ ์ƒˆ ๋ถ€ํ’ˆ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์— ์˜ํ•ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค(๋™์‹œ์— ๊ธฐ์กด ๋ถ€ํ’ˆ์€ ์–ด๋–ค ์‹์œผ๋กœ๋“  ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).

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

์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋” ์ผ๋ฐ˜์ /์ถ”์ƒ์ ์œผ๋กœ ์ •์˜๋˜๊ณ  ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ƒํ˜ธ ์ž‘์šฉ์— ๋ถ€๊ณผํ•˜๋Š” ์ œํ•œ์ด ์ ์„์ˆ˜๋ก ์‹œ์Šคํ…œ์ด ๋” ์œ ์—ฐํ•ด์ง‘๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ SOLID์˜ ์›์น™ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์‹ค์ œ๋กœ ๋’ค๋”ฐ๋ฆ…๋‹ˆ๋‹ค. "๋‘๊บผ์šด ์ธํ„ฐํŽ˜์ด์Šค"์— ๋ฐ˜๋Œ€ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™ ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Š” ํฌ๊ณ  ๋ถ€ํ”ผ๊ฐ€ ํฐ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋” ์ž‘๊ณ  ๋” ๊ตฌ์ฒด์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋‚˜๋ˆ„์–ด์„œ ์ž‘์€ ์ธํ„ฐํŽ˜์ด์Šค(๋ชจ๋“ˆ์— ๋”ฐ๋ผ ๋‹ค๋ฆ„)์˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž‘์—…ํ•ด์•ผ ํ•˜๋Š” ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

์ด ์›์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณต์‹ํ™”๋ฉ๋‹ˆ๋‹ค. "ํด๋ผ์ด์–ธํŠธ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•(๋ฐฉ๋ฒ•์— ์ฃผ์˜)์— ์˜์กดํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค." ๋˜๋Š” "๋งŽ์€ ํŠน์ˆ˜ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ•˜๋‚˜์˜ ๋ฒ”์šฉ ์ธํ„ฐํŽ˜์ด์Šค๋ณด๋‹ค ๋‚ซ์Šต๋‹ˆ๋‹ค."

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

8.3 ์™ธ๊ด€: ๋ชจ๋“ˆ ์ธํ„ฐํŽ˜์ด์Šค

์—ฌ๊ธฐ์„œ ์ˆ™๋ จ ๋œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์งˆ๋ฌธํ•ฉ๋‹ˆ๋‹ค. ๋””์ž์ธ์ด ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฐ์ฒด ์ˆ˜์ค€์ด ์•„๋‹ˆ๋ผ ๋ชจ๋“ˆ ์ˆ˜์ค€์ด๋ฉด ๋ชจ๋“ˆ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‹ต๋ณ€: ๋””์ž์ธ ํŒจํ„ด์˜ ์–ธ์–ด๋กœ ๋งํ•˜๋ฉด ๋ชจ๋“ˆ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„์„ ๋‹ด๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ ๊ฐ์ฒด์ธ Facade ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค . ๊ฒŒ์ดํŠธ์›จ์ด ์ ‘๋ฏธ์‚ฌ(์˜ˆ: MobileApiGateway)๊ฐ€ ํฌํ•จ๋œ ๊ฐœ์ฒด์—์„œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋Š” ํŒŒ์‚ฌ๋“œ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ํฝ๋‹ˆ๋‹ค.

ํŒŒ์‚ฌ๋“œ๋Š” ํŠน์ • ํ•˜์œ„ ์‹œ์Šคํ…œ๊ณผ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•œ ๋†’์€ ์ˆ˜์ค€์˜ ์ž‘์—… ์ง‘ํ•ฉ์„ ์ถ•์ ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๊ฐœ์ฒด๋กœ, ๋‚ด๋ถ€ ๊ตฌ์กฐ์™€ ๊ทธ ๋’ค์— ์žˆ๋Š” ์ง„์ •ํ•œ ๋ณต์žก์„ฑ์„ ์ˆจ๊น๋‹ˆ๋‹ค . ํ•˜์œ„ ์‹œ์Šคํ…œ ๊ตฌํ˜„์˜ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ๋ณดํ˜ธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ ์ง„์ž…์  ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“ˆ์„ ์„ค๊ณ„ํ•  ๋•Œ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฐœ๋…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“ˆ์„ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์„ค๊ณ„ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜์ธ "Facade"๋ฅผ ๋ฐฉ๊ธˆ ์†Œ๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ "Facade"๋Š” ์ผ๋ฐ˜ ๊ฐ์ฒด์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ชจ๋“ˆ ์ž‘์—…์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ณ  ๋ชจ๋“ˆ์„ ์„ค๊ณ„ํ•  ๋•Œ ํด๋ž˜์Šค ์„ค๊ณ„์— ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ์œ ์šฉํ•œ ์›์น™๊ณผ ๊ธฐ์ˆ ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์™ธ๊ด€: ๋ชจ๋“ˆ ์ธํ„ฐํŽ˜์ด์Šค

์ฐธ๊ณ  : ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ํด๋ž˜์Šค(๊ฐ์ฒด)๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ค‘์š”์„ฑ์„ ์ดํ•ดํ•˜์ง€๋งŒ ๋ชจ๋“ˆ ์ˆ˜์ค€์—์„œ๋„ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•„์ด๋””์–ด๋ฅผ ๋ฐœ๊ฒฌํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฝ”๋ฉ˜ํŠธ
  • ์ธ๊ธฐ
  • ์‹ ๊ทœ
  • ์ด์ „
์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‚จ๊ธฐ๋ ค๋ฉด ๋กœ๊ทธ์ธ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
์ด ํŽ˜์ด์ง€์—๋Š” ์•„์ง ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค