CodeGym /ํ–‰๋™ /All lectures for KO purposes /๋””์ž์ธ ํŒจํ„ด

๋””์ž์ธ ํŒจํ„ด

All lectures for KO purposes
๋ ˆ๋ฒจ 1 , ๋ ˆ์Šจ 1028
์‚ฌ์šฉ ๊ฐ€๋Šฅ

1.1 ํŒจํ„ด ์†Œ๊ฐœ

์•ž์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘๋™ํ•  ์—”ํ„ฐํ‹ฐ ๋ชฉ๋ก์„ ์ปดํŒŒ์ผํ•˜๋Š” ๋ชจ๋ธ์„ ์„ค๊ณ„ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ ์ž‘์—…์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์— ์—”ํ‹ฐํ‹ฐ๊ฐ€ ๋งŽ์„์ˆ˜๋ก ํ”„๋กœ๊ทธ๋žจ์ด ๋” ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค.

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

์ค‘์š”ํ•œ! ๋Ÿฌ์‹œ์•„์–ด์—์„œ ๋””์ž์ธ์ด๋ผ๋Š” ๋‹จ์–ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ๋ž˜ํ”ฝ ๋””์ž์ธ์„ ์˜๋ฏธํ•˜์ง€๋งŒ ์˜์–ด์—์„œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜์–ด ๋‹จ์–ด ๋””์ž์ธ์€ ์˜๋ฏธ์ƒ "๋””์ž์ธ" ๋ฐ/๋˜๋Š” "์žฅ์น˜"๋ผ๋Š” ๋‹จ์–ด์— ๋” ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์—”์ง„์˜ ๋””์ž์ธ์€ ์™ธ๊ด€์ด ์•„๋‹ˆ๋ผ ๋‚ด๋ถ€ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋””์ž์ธ ํŒจํ„ด์€ ์ •ํ™•ํžˆ ๋””์ž์ธ ํŒจํ„ด/ํŒจํ„ด์ž…๋‹ˆ๋‹ค. "์™ธ๋ชจ"๋ผ๋Š” ์˜๋ฏธ๋กœ ๋””์ž์ธ์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๋ฏธ๋ž˜์˜ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด์ด๋ฉฐ ๋‹น์‹ ์—๊ฒŒ ๋””์ž์ธ์€ ์ •ํ™•ํžˆ ๋””์ž์ธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ด ๋””์ž์ธ ํŒจํ„ด์€ ๋ฌด์—‡์ผ๊นŒ์š”? ์šฐ์„ , ๋””์ž์ธ ํŒจํ„ด์€ ํ‘œ์ค€ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ‘œ์ค€ ์†”๋ฃจ์…˜ ์ž…๋‹ˆ๋‹ค . ํ›Œ๋ฅญํ•˜๊ณ  ํšจ๊ณผ์ ์ด๋ฉฐ ์˜ค๋žœ ์‹œ๊ฐ„ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์นœ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

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

์ผ๋ฐ˜์ ์œผ๋กœ ํ…œํ”Œ๋ฆฟ์€ ์ฝ”๋“œ๋กœ ์ง์ ‘ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ์™„์ „ํ•œ ์†”๋ฃจ์…˜์ด ์•„๋‹ˆ๋ผ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ข‹์€ ์†”๋ฃจ์…˜์˜ ์˜ˆ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

๊ฐ์ฒด ์ง€ํ–ฅ ํŒจํ„ด์€ ์‚ฌ์šฉํ•  ์ตœ์ข… ํด๋ž˜์Šค ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ์ฒด๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ  ํด๋ž˜์Šค ๋˜๋Š” ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„ ๋ฐ ์ƒํ˜ธ ์ž‘์šฉ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค .

1.2 ๋””์ž์ธ ํŒจํ„ด์˜ ์—ญ์‚ฌ

70๋…„๋Œ€์— ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์€ ์ „์ฒด ๊ฐœ๋ฐœ ํŒ€์ด ์ž‘์—…ํ•ด์•ผ ํ•˜๋Š” ๋Œ€ํ˜• ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•ด์•ผ ํ•˜๋Š” ํ•„์š”์„ฑ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์ž‘์—… ์กฐ์ง ๋ฐฉ๋ฒ•์ด ์‹œ๋„๋˜์—ˆ์ง€๋งŒ ๊ฑด์„ค ์‚ฐ์—…์ด ๊ฐœ๋ฐœ์— ๊ฐ€์žฅ ํฐ ์˜ํ–ฅ์„ ๋ฏธ์ณค์Šต๋‹ˆ๋‹ค.

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

๊ทธ๋ฆฌ๊ณ  ์ง์ž‘ํ•˜์‹œ๊ฒ ์ง€๋งŒ ๋””์ž์ธ ํŒจํ„ด ์•„์ด๋””์–ด๋„ ๊ฑด์„ค ์—…๊ณ„์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ํŒจํ„ด์˜ ๊ฐœ๋…์€ The Pattern Language์—์„œ Christopher Alexander๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„์‹œ. ๊ฑด๋ฌผ. ๊ฑด์„ค". ์ด ์ฑ…์—์„œ๋Š” ๋„์‹œ ๋””์ž์ธ ๊ณผ์ •์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํ•œ ์–ธ์–ด์ธ ํŒจํ„ด์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๋”ฐ๋ผ์„œ 1994๋…„์— "Object-Oriented Design์˜ ๊ธฐ์ˆ "์ด๋ผ๋Š” ์ฑ…์ด ๋‚˜์˜จ ๊ฒƒ์€ ๋†€๋ผ์šด ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. Design Patterns'์—๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์˜ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” 23๊ฐœ์˜ ํŒจํ„ด์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ฑ…์€ Erich Gamma, Richard Helm, Ralph Johnson ๋ฐ John Vlissides์˜ 4๋ช…์˜ ์ €์ž๊ฐ€ ์ €์ˆ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฑ… ์ œ๋ชฉ์ด ๋„ˆ๋ฌด ๊ธธ์–ด์„œ ์•„๋ฌด๋„ ๊ธฐ์–ตํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ณง ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์ด "4 ์ธ์กฐ ์ฑ…", ์ฆ‰ "4 ์ธ์กฐ ์ฑ…" , ์‹ฌ์ง€์–ด "GoF ์ฑ…"์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค .

๊ทธ ์ดํ›„๋กœ ๋‹ค๋ฅธ ๋””์ž์ธ ํŒจํ„ด์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "ํŒจํ„ด" ์ ‘๊ทผ ๋ฐฉ์‹์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋ชจ๋“  ์˜์—ญ์—์„œ ์ธ๊ธฐ๋ฅผ ์–ป์—ˆ์œผ๋ฏ€๋กœ ์ด์ œ ๊ฐœ์ฒด ๋””์ž์ธ ์™ธ๋ถ€์—์„œ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ํŒจํ„ด์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ค‘์š”ํ•œ! ํŒจํ„ด์€ ๋งค์šฐ ๋…์ฐฝ์ ์ธ ์†”๋ฃจ์…˜์ด ์•„๋‹ˆ๋ผ ๋ฐ˜๋Œ€๋กœ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๋™์ผํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ๊ฒ€์ฆ๋œ ์ข‹์€ ์†”๋ฃจ์…˜.

1.3 ํŒจํ„ด ๋ชฉ๋ก

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

๊ทธ๋Ÿฐ๋ฐ ์ด๋ฏธ ์ด๋Ÿฐ ๊ธธ์„ ๊ฐ€๊ณ  ๊ฒฝํ—˜๊ณผ ์‚ถ์˜ ์ง€ํ˜œ์˜ ์ •์ˆ˜๋กœ ์ฑ…์„ ์“ด ์‚ฌ๋žŒ๋“ค์ด ์žˆ๋Š”๋ฐ ์™œ ์ˆ˜์‹ญ ๋ฒˆ์˜ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฑฐ์ณ ์ตœ์ ์˜ ํ•ด๊ฒฐ์ฑ…์— ๋„๋‹ฌํ•˜๋Š”๊ฐ€?

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

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

ํŒจํ„ด์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

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

๊ฐ€์žฅ ๋‚ฎ์€ ์ˆ˜์ค€์˜ ๋‹จ์ˆœํ•œ ํŒจํ„ด์€ ๊ด€์šฉ๊ตฌ์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ํ‹€ ๋‚ด์—์„œ๋งŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณดํŽธ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ๋‹ค์žฌ๋‹ค๋Šฅํ•œ ๊ฒƒ์€ ๊ฑฐ์˜ ๋ชจ๋“  ์–ธ์–ด๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ์š”์†Œ๊ฐ€ ์•„๋‹Œ ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ์„ค๊ณ„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํŒจํ„ด์˜ ๋ชฉ์ ์ด ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ฒŒ ๋  ํŒจํ„ด์€ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

1.4 UML ์†Œ๊ฐœ

Gang of Four ์ฑ…์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ 23๊ฐ€์ง€ ํŒจํ„ด์„ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํŒจํ„ด ์ž์ฒด์™€ ์ด๋ฆ„์€ ์ดˆ๋ณด ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ๋„ ์นœ์ˆ™ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ๋“ค์„ ์†Œ๊ฐœํ•  ๊ฒƒ์ด์ง€๋งŒ ํŒจํ„ด์— ๊ด€ํ•œ ๋ฐ”๋กœ ๊ทธ ์ฑ…์„ ์ฝ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋””์ž์ธ ํŒจํ„ด์€ ํŠน์ • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ์–ฝ๋งค์ด์ง€ ์•Š์œผ๋ฏ€๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ UML์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. 20๋…„ ์ „์—๋Š” ๋งค์šฐ ์ธ๊ธฐ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์ง€๊ธˆ๋„ ๊ฐ€๋” ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŒจํ„ด์— ๋Œ€ํ•œ ์„ค๋ช…์€ UML์˜ ์‚ฌ์šฉ์ด ํ‘œ์ค€์ธ ๊ณณ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

UML์„ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋กœ ๋‹ค๋ฅธ ์—”ํ„ฐํ‹ฐ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ์ด๋“ค์€ ๊ฐ์ฒด์™€ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.

ํด๋ž˜์Šค ๊ฐ„์˜ ๊ด€๊ณ„๋Š” ๋„ค ๊ฐ€์ง€ ์œ ํ˜•์˜ ํ™”์‚ดํ‘œ๋กœ ์„ค๋ช…๋ฉ๋‹ˆ๋‹ค.

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

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

๋งํฌ ๋‹ค์ด์•„๋ชฌ๋“œ๊ฐ€ ๊ฒ€์€์ƒ‰์ด๋ฉด ๋งํฌ๊ฐ€ ์•ฝํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐœ์ฒด๋Š” ์„œ๋กœ ์—†์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HttpRequest๋‹ค์ด์•„๋ชฌ๋“œ๊ฐ€ ํฐ์ƒ‰์ด๋ฉด ๊ฐœ์ฒด๋Š” class ๋ฐ ํ•ด๋‹น ํ•˜์œ„ class ์™€ ๊ฐ™์ด ๋ฐ€์ ‘ํ•˜๊ฒŒ ๊ด€๋ จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค HttpRequest.Builder.

1.5 ํŒจํ„ด ๋ชฉ๋ก

ํŒจํ„ด ์œ ํ˜•์€ ๋‹ค์–‘ํ•œ ์ƒ‰์ƒ๊ณผ ๋ฌธ์ž๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋น„- ํ–‰๋™ (ํ–‰๋™);

์”จ- ์ƒ์„ฑ(์ฐฝ์กฐ);

์—์Šค- ๊ตฌ์กฐ์  (๊ตฌ์กฐ์ ).

๋งˆ์ง€๋ง‰์œผ๋กœ 23๊ฐ€์ง€ ๋””์ž์ธ ํŒจํ„ด ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

์”จ- ์ถ”์ƒ ๊ณต์žฅ

์—์Šค- ์–ด๋Œ‘ํ„ฐ

์—์Šค- ๋‹ค๋ฆฌ

์”จ- ๋นŒ๋”

๋น„- ์ฑ…์ž„์˜ ์‚ฌ์Šฌ

๋น„- ํŒ€

์—์Šค- ๋ง์ปค

์—์Šค- ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ

์—์Šคโ€“ ํŒŒ์‚ฌ๋“œ

์”จ- ๊ณต์žฅ ๋ฐฉ์‹

์—์Šค- ๊ธฐํšŒ์ฃผ์˜์ž

๋น„- ํ†ต์—ญ์‚ฌ

๋น„- ๋ฐ˜๋ณต์ž

๋น„- ์ค‘๊ฐœ์ž

๋น„- ๊ณจํ‚คํผ

์”จ- ํ”„๋กœํ† ํƒ€์ž…

์—์Šค- ํ”„๋ก์‹œ

๋น„โ€” ๊ด€์ฐฐ์ž

์”จโ€” ์™ธํ†จ์ด

๋น„- ์ƒํƒœ

๋น„- ์ „๋žต

๋น„โ€” ํ…œํ”Œ๋ฆฟ ๋ฐฉ์‹

๋น„โ€” ๋ฐฉ๋ฌธ์ž

์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION