์ „์ฒด ๊ธ€ 147

[ํ”„๋กœ์ ํŠธ] ํ™ˆํŽ˜์ด์ง€ ์บ๋Ÿฌ์…€ ์Šฌ๋ผ์ด๋” ๋ฐ ์ฃผ๊ฐ„ ๋žญํ‚น ๊ตฌํ˜„

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

[ํ”„๋กœ์ ํŠธ] CSS - display ์†์„ฑ

Layout1. blockํ•ญ์ƒ ์ƒˆ๋กœ์šด ๋ผ์ธ์—์„œ ์‹œ์ž‘ํญ ์ „์ฒด ์ฐจ์ง€ 2. inline ์ƒˆ๋กœ์šด ๋ผ์ธ์—์„œ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ  ํ•„์š”ํ•œ ๋งŒํผ์˜ ์˜์—ญ ์ฐจ์ง€ 3. inline-blockdisplay: inline์œผ๋กœ ํ•˜๋ฉด ํญ, ๋†’์ด, ๋งˆ์ง„ ๊ท ์ผํ•˜์ง€ ์•Š์Œdisplay:inline-block์œผ๋กœ ํ•˜๋ฉด ๊ท ์ผํ•œ ํญ, ๋†’์ด๋กœ ๋งž์ถœ ์ˆ˜ ์žˆ์Œ4. flexflexible items์— flexible length ์ง€์ •flexible item์ด ์•„๋‹ˆ๋ผ๋ฉด flex ์†์„ฑ ํšจ๊ณผ ์—†์Œ๊ฐ€๋กœ/์„ธ๋กœ ์ •๋ ฌ์„ ์‰ฝ๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” layout ์‹œ์Šคํ…œ๋ถ€๋ชจ ์š”์†Œ(์ปจํ…Œ์ด๋„ˆ)์— display: flex๋ฅผ ์ ์šฉํ•˜๋ฉด ๊ทธ ์•ˆ์˜ ์ž์‹ ์š”์†Œ(item)๋“ค์ด flex ๊ทœ์น™์— ๋”ฐ๋ผ ๋ฐฐ์น˜๋จflex-direction: row, column์„ ํ™œ์šฉํ•ด ์ •๋ ฌ ๋ฐฉํ–ฅ ๊ฒฐ์ •, ๊ธฐ๋ณธ์ด row..

[ํ”„๋กœ์ ํŠธ] ๋„ค๋น„๊ฒŒ์ด์…˜/๊ฒ€์ƒ‰๋ฐ” ๋กœ์ง ์„ค๊ณ„ ๊ณผ์ •

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

[ํ”„๋กœ์ ํŠธ] ํ™ˆํŽ˜์ด์ง€ ์„ค๊ณ„๋„ ๋ฐ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฉ”๋‰ด ๊ตฌํ˜„

๋‹ค๋ฅธ ํŒ€์› ๋ถ„์ด ๊ฑฐ์˜ ์ž‘์—…ํ•˜์‹  ํ”„๋ก ํŠธ ํ™”๋ฉด์„ ์ˆ˜์ •ํ•˜์—ฌ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฉ”๋‰ด๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค. ์•„์ง ์„ธ๋ถ€ ๋ฉ”๋‰ด ํด๋ฆญ ์‹œ ํ™”๋ฉด ์ด๋™ํ•˜๋Š” ๊ฒƒ๊นŒ์ง€๋Š” ๊ตฌํ˜„ ์•ˆ ํ–ˆ์ง€๋งŒ, js๋ฅผ ์ด์šฉํ•ด ํ™”๋ฉด ๊ฒน์น˜๊ธฐ๋ฅผ ์„ฑ๊ณตํ–ˆ๋‹ค๋Š” ๊ฒŒ ๋ฟŒ๋“ฏํ–ˆ๋‹ค. ํ”„๋ก ํŠธ์—์„œ ์ •๋ ฌ๊ณผ ํ™”๋ฉด ๊ฒน์น˜๊ธฐ๋Š” ์ˆ˜์—…์„ ๋“ค์–ด๋„ ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ ๋๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์Œ ์†์œผ๋กœ 'ํ•  ์ˆ˜ ์žˆ๋‹ค'๋ฅผ ์ˆ˜ ์‹ญ๋ฒˆ ์™ธ์น˜๋ฉด์„œ ํ•ด๋‚˜๊ฐ”๋‹ค.  ๊ฒน์น˜๊ธฐ๋Š” ์œ„์— ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์„ ๋”ฐ๋กœ ๋งŒ๋“ค๊ณ  ์•„๋ž˜ ์œ„ position ์†์„ฑ์„ ์กฐ์ •ํ•œ๋‹ค.๋ถ€๋ชจ๋Š” relative, ์ž์‹์€ absolutedisplay: none๊ณผ visibility: hidden์˜ ์ฐจ์ด๋Š” ๊ณต๊ฐ„์„ ์ฐจ์ดํ•˜๋Š”์ง€์˜ ์—ฌ๋ถ€๋กœ ๋‹ค๋ฅด๋‹ค. ์ „์ž๋Š” ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜์ง€ ์•Š๊ณ  ํ›„์ž๋Š” ๋ˆˆ์—๋Š” ์•ˆ ๋ณด์ผ ๋ฟ ์ž๋ฆฌ์ฐจ์ง€๋ฅผ ํ•œ๋‹ค.git์œผ๋กœ ๊ณต๋™ ์ž‘์—…ํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์žก๋„๋ฅผ ๋‚ฎ์ถ”๋ ค๊ณ  w3schoo..

[๋””์ž์ธํŒจํ„ด] Facade - ๋‹จ์ˆœํ•œ ์ฐฝ๊ตฌ๋ฅผ ๋งŒ๋“ ๋‹ค

facade ๊ฑด๋ฌผ์˜ ์ •๋ฉด(์•ž๋ฉด), ์ฐฝ๊ตฌ ๋ณต์žกํ•˜๊ฒŒ ์–ฝํ˜€์„œ ๋„ˆ์ €๋ถ„ํ•œ ์„ธ๋ถ€ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์—ฌ ๋†’์€ ์ˆ˜์ค€์˜ ์ธํ„ฐํŽ˜์ด์Šค(API)๋ฅผ ์ œ๊ณตํ•œ๋‹คfacade ์—ญ์€ ์‹œ์Šคํ…œ ์™ธ๋ถ€์— ๊ฐ„๋‹จํ•œ ์ธํ„ฐํŽ˜์ด์Šค(API)๋ฅผ ๋ณด์—ฌ์ค€๋‹ค์‹œ์Šคํ…œ ๋‚ด๋ถ€์˜ ๊ฐ ํด๋ž˜์Šค์˜ ์—ญํ• ๊ณผ ์˜์กด ๊ด€๊ณ„๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ๋กœ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค  Facade - ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ทธ ๋ฐ–์˜ ๋งŽ์€ ์—ญ์„ ์œ„ํ•œ ๋‹จ์ˆœํ•œ ์ฐฝ๊ตฌ, ๋†’์€ ์ˆ˜์ค€์˜ ๋‹จ์ˆœํ•œ ์ธํ„ฐํŽ˜์ด์Šค(API)๋ฅผ ์‹œ์Šคํ…œ ์™ธ๋ถ€์— ์ œ๊ณต์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ทธ ๋ฐ–์˜ ๋งŽ์€ ๋ฐฐ์—ญ - ๊ฐ์ž์˜ ์ผ์„ ํ•˜๊ณ  Facade์— ๋Œ€ํ•ด ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Œ, Facade๋กœ๋ถ€ํ„ฐ ํ˜ธ์ถœ์„ ๋ฐ›๊ณ  ์ผํ•˜์ง€๋งŒ ์ˆ˜๋งŽ์€ ๋‹ค๋ฅธ ๋ฐฐ์—ญ์—์„œ Facade๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†์ŒClient - Facade ํŒจํ„ด์„ ์ด์šฉ, Main ํด๋ž˜์Šค ๋ณต์žกํ•œ ๊ฒƒ์„ ๋‹จ์ˆœํ•˜๊ฒŒ ๋ณด์—ฌ์ค€๋‹ค. Facade ..

[๋””์ž์ธํŒจํ„ด] Factory Method - ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ ๋‹ค

์ฑ… [JAVA ์–ธ์–ด๋กœ ๋ฐฐ์šฐ๋Š” ๋””์ž์ธ ํŒจํ„ด ์ž…๋ฌธ 3ํŒ;์œ ํ‚ค ํžˆ๋กœ์‹œ ์ €]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณต์žฅ(factory)์„ Template Method ํŒจํ„ด์œผ๋กœ ๊ตฌ์„ฑํ•œ ๊ฒƒ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๋ฐฉ๋ฒ•์„ ์ƒ์œ„ ํด๋ž˜์Šค์—์„œ ๊ฒฐ์ •ํ•˜๋˜, ๊ตฌ์ฒด์ ์ธ ํด๋ž˜์Šค ์ด๋ฆ„๊นŒ์ง€ ๊ฒฐ์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค.๊ตฌ์ฒด์ ์ธ ๊ฒƒ์€ ๋ชจ๋‘ ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ๋ถ™์ž„์œผ๋กœ์จ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์„ ์œ„ํ•œ ๋ผˆ๋Œ€(ํ”„๋ ˆ์ž„์›Œํฌ)์™€ ์‹ค์ œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ๋‚˜๋ˆ„์–ด ์ƒ๊ฐํ•œ๋‹ค.์ƒ์œ„ ํด๋ž˜์Šคํ•˜์œ„ ํด๋ž˜์Šค์ถ”์ƒ์ ์ธ ๋ผˆ๋Œ€, ํ”„๋ ˆ์ž„์›Œํฌ์‹ค์ œ ๊ตฌํ˜„๋ถ€ Product ํ”„๋ ˆ์ž„์›Œํฌ, ์ด ํŒจํ„ด์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ฐ€์ ธ์•ผ ํ•  ์ธํ„ฐํŽ˜์ด์Šค(API)๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ถ”์ƒ ํด๋ž˜์ŠคCreator ํ”„๋ ˆ์ž„์›Œํฌ, Product ์—ญ์„ ์ƒ์„ฑํ•˜๋Š” ์ถ”์ƒ ํด๋ž˜์Šค, Creator ์—ญ์€ ์‹ค์ œ๋กœ ์ƒ์„ฑํ•  ConcreteProduc..

[๋””์ž์ธํŒจํ„ด] State - ์ƒํƒœ๋ฅผ ํด๋ž˜์Šค๋กœ ํ‘œํ˜„ํ•œ๋‹ค

์ฑ… [JAVA ์–ธ์–ด๋กœ ๋ฐฐ์šฐ๋Š” ๋””์ž์ธ ํŒจํ„ด ์ž…๋ฌธ 3ํŒ;์œ ํ‚ค ํžˆ๋กœ์‹œ ์ €]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.  ์ƒํƒœ๋ฅผ ํด๋ž˜์Šค๋กœ ํ‘œํ˜„ํ•œ๋‹ค.ํด๋ž˜์Šค๋ฅผ ์ „ํ™˜ํ•จ์œผ๋กœ์จ ์ƒํƒœ ๋ณ€ํ™”๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. State ์ƒํƒœ๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค(API) ์ •์˜, ์ƒํƒœ์— ์˜์กดํ•œ ๋™์ž‘์„ ํ•˜๋Š” ๋ฉ”์„œ๋“œ ๋ชจ์ŒConcreteState State ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๊ตฌ์ฒด ํด๋ž˜์Šค, ์ƒํƒœ ํด๋ž˜์Šค ex. ์ฃผ๊ฐ„ ํด๋ž˜์Šค, ์•ผ๊ฐ„ ํด๋ž˜์ŠคContext ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ConcreteState๋ฅผ ํ•„๋“œ๋กœ ๋‘”๋‹ค, ์ด ํ•„๋“œ์— ์ƒํƒœ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋Œ€์ž…ํ•จ์œผ๋กœ์จ ์ƒํƒœ๋ฅผ ์ „ํ™˜ํ•œ๋‹ค   1. State ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ ์˜ˆ์‹œ๊ฒฝ๋น„ ์‹œ์Šคํ…œ ํด๋ž˜์Šค { ๊ธˆ๊ณ  ์‚ฌ์šฉ ์‹œ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์†Œ๋“œ() { if(์ฃผ๊ฐ„) { ... } else i..

[๋””์ž์ธํŒจํ„ด] Composite - ๊ทธ๋ฆ‡๊ณผ ๋‚ด์šฉ๋ฌผ์„ ๋™์ผ์‹œํ•œ๋‹ค

์ฑ… [JAVA ์–ธ์–ด๋กœ ๋ฐฐ์šฐ๋Š” ๋””์ž์ธ ํŒจํ„ด ์ž…๋ฌธ 3ํŒ;์œ ํ‚ค ํžˆ๋กœ์‹œ ์ €]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.  ๊ทธ๋ฆ‡๊ณผ ๋‚ด์šฉ๋ฌผ์„ ๋™์ผ์‹œํ•˜์—ฌ ์žฌ๊ท€์ ์ธ ๊ตฌ์กฐ๋ฅผ ํ˜•์„ฑ๋””๋ ‰ํ† ๋ฆฌ(๊ทธ๋ฆ‡), ํŒŒ์ผ(๋‚ด์šฉ๋ฌผ)์„ ๋””๋ ‰ํ† ๋ฆฌ ์—”ํŠธ๋ฆฌ๋ผ๋Š”์ด๋ฆ„์œผ๋กœ ๊ฐ™์€ ์ข…๋ฅ˜๋กœ ๋™์ผ์‹œ  Leaf ๋‚ด์šฉ๋ฌผ, ์ด ์•ˆ์— ๋‹ค๋ฅธ ๊ฒƒ์„ ๋„ฃ์„ ์ˆ˜ ์—†๋‹ค, File ํด๋ž˜์ŠคComposite ๊ทธ๋ฆ‡, Leaf์™€ Composite์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค, Directory ํด๋ž˜์ŠคComponent Leaf์™€ Composite์„ ๋™์ผ์‹œํ•˜๊ธฐ ์œ„ํ•œ ์—ญํ• , ๊ณตํ†ต๋˜๋Š” ์ƒ์œ„ ์ถ”์ƒ ํด๋ž˜์Šค, EntryMain  Directoryํด๋ž˜์Šคpublic class Directory extends Entry { // Entry๋Š” File๊ณผ Directory์˜ ๊ณตํ†ต ์ถ”์ƒ ํด๋ž˜์Šค private String name; ..

[๋””์ž์ธํŒจํ„ด] Proxy - ํ•„์š”ํ•ด์ง€๋ฉด ๋งŒ๋“ ๋‹ค

์ฑ… [JAVA ์–ธ์–ด๋กœ ๋ฐฐ์šฐ๋Š” ๋””์ž์ธ ํŒจํ„ด ์ž…๋ฌธ 3ํŒ;์œ ํ‚ค ํžˆ๋กœ์‹œ ์ €]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.  ๋ณธ์ธ ๊ฐ์ฒด๋ฅผ ๋Œ€์‹ ํ•ด์„œ ๋Œ€๋ฆฌ์ธ ๊ฐ์ฒด๊ฐ€ ์ผ์„ ๋Œ€์‹  ์ฒ˜๋ฆฌ๋Œ€์‹  ๋Œ€๋ฆฌ์ธ ๊ฐ์ฒด๊ฐ€ ํ•  ์ˆ˜ ์—†๋Š” ์ผ์ผ ๋•Œ ๋ณธ์ธ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ→ ์ดˆ๊ธฐํ™”์— ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์‹œ์Šคํ…œ์ด๋ผ๋ฉด ๋Œ€๋ฆฌ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—… ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค, ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด Subject ๋ณธ์ธ, Proxy์™€ RealSubject๋ฅผ ๋™์ผ์‹œํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค(API), ๊ณตํ†ต ์ธํ„ฐํŽ˜์ด์Šค Proxy ๋Œ€๋ฆฌ์ธ, Subject ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„- client ์š”์ฒญ์„ ์ตœ๋Œ€ํ•œ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์ž๊ธฐ ํ˜ผ์ž ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค๋ฉด RealSubject์—๊ฒŒ ๋งก๊ธด๋‹ค. - ์ด๋•Œ์„œ์•ผ RealSubject ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. RealSubject ์‹ค์ œ ๋ณธ์ธ, Subject ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„- Proxy๋งŒ..

[๋””์ž์ธํŒจํ„ด] Decorator - ์žฅ์‹ํ‹€๊ณผ ๋‚ด์šฉ๋ฌผ์„ ๋™์ผ์‹œํ•œ๋‹ค

์ฑ… [JAVA ์–ธ์–ด๋กœ ๋ฐฐ์šฐ๋Š” ๋””์ž์ธ ํŒจํ„ด ์ž…๋ฌธ 3ํŒ;์œ ํ‚ค ํžˆ๋กœ์‹œ ์ €]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.  ๊ฐ์ฒด์— ์žฅ์‹์ด ๋˜๋Š” ๊ธฐ๋Šฅ๋“ค์„ ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€์žฅ์‹ํ‹€๊ณผ ๋‚ด์šฉ๋ฌผ์„ ๋™์ผ์‹œํ•œ๋‹ค๋‚ด์šฉ๋ฌผ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€→ ํˆฌ๊ณผ์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค(API)๋ฅผ ์œ ์ง€ํ•œ ์ฑ„ ๊ฐ์ฒด๋ฅผ ์ฐจ๋ก€๋กœ ์”Œ์›Œ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ๋‹ค Component ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ํ•ต์‹ฌ์ด ๋˜๋Š” ์—ญํ•  DisplayConcreteComponent Component๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ตฌ์ฒด ํด๋ž˜์ŠคDecorator ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ(์žฅ์‹) Component๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ŒConcreteDecorator Decoratorํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ตฌ์ฒด ํด๋ž˜์Šค ๋”๋ณด๊ธฐ๋”๋ณด๊ธฐDisplay ๋ฌธ์ž์—ด ํ‘œ์‹œ์šฉ ์ถ”์ƒ ํด๋ž˜์ŠคStringDisplay Display๋ฅผ ์ƒ์†ํ•˜๋Š” ๊ตฌ์ฒด ํด๋ž˜์Šค, ํ•ต์‹ฌ ๋ฌธ์ž์—ดBorder ์žฅ์‹ํ‹€ ์ถ”์ƒ..