/DalDesign-Pattern

๐ŸŒฐ๋‹ฌ๋””๋‹ฌ๊ณ ๋‹ฌ๋””๋‹ฌ๊ณ ๋‹ฌ๋””์ž์ธํŒจํ„ด์Šคํ„ฐ๋”” (with Java & Swift)๐ŸŒฐ

DalDesign-Pattern-Study

1. ๋ชจ๋“  ์Šคํ„ฐ๋””์›์€ ์Šคํ„ฐ๋”” ๊ธฐ๊ฐ„ ๋‚ด์— 3๋ฒˆ์˜ ์„ธ์…˜์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

  • ์Šคํ„ฐ๋”” ์ง„ํ–‰ ๊ธฐ๊ฐ„์€ 2์ฐจ ์„ธ๋ฏธ๋‚˜(4/6 ํ† )๋ถ€ํ„ฐ 8์ฐจ ์„ธ๋ฏธ๋‚˜(6/22 ํ† )๊นŒ์ง€๋กœ ์žก๊ฒ ์Šต๋‹ˆ๋‹ค.
  • 4์›”๋ถ€ํ„ฐ 6์›”๊นŒ์ง€ ์Šคํ„ฐ๋””๊ฐ€ ์ง„ํ–‰๋˜๋‹ˆ, ํ•œ๋‹ฌ์— ํ•œ๋ฒˆ ์„ธ์…˜์„ ์ค€๋น„ํ•˜๋Š” ๊ฒƒ์„ ์›์น™์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค! ๋ถ€๋“์ดํ•œ ๊ฒฝ์šฐ, ํ•œ๋‹ฌ์— 1ํšŒ ์ด์ƒ์˜ ์„ธ์…˜์„ ์ง„ํ–‰ํ•ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

2. ์„ธ์…˜์€ ํ•˜๋‚˜์˜ ๋””์ž์ธ ํŒจํ„ด์„ ์Šคํ„ฐ๋””์›๋“ค์—๊ฒŒ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. (10~20๋ถ„ ์ •๋„ ๋ถ„๋Ÿ‰)

์„ธ์…˜์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ชฉ์ฐจ๋กœ ๊ตฌ์„ฑํ•ด์ฃผ์„ธ์š”!

  • ์šฐ์„ , ์˜ˆ์‹œ(๋””์ž์ธํŒจํ„ด ์ฑ… ์ฐธ๊ณ )๋ฅผ ๋“ค๋ฉด์„œ ์–ธ์–ด์— ์ƒ๊ด€์—†์ด ๋ชจ๋“  ์Šคํ„ฐ๋””์›๋“ค์ด ์ดํ•ด๋  ์ˆ˜ ์žˆ๋„๋ก ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”!
  • ์˜ˆ์‹œ ์„ค๋ช… ์ดํ›„์—, ์ฃผ๋ ฅ ์–ธ์–ด(Java ํ˜น์€ Swift)๋กœ ์˜ˆ์‹œ ์ฝ”๋“œ ํ˜น์€ ์‹ค์ œ ํ”„๋กœ์ ํŠธ์—์„œ ํ•ด๋‹น ํŒจํ„ด์„ ์‚ฌ์šฉํ•œ ์‚ฌ๋ก€๋ฅผ ๊ฐ€์ง€๊ณ  ์†Œ๊ฐœ๋ฅผ ํ•ด์ฃผ์„ธ์š”.
  • ๋งˆ์ง€๋ง‰์—๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๋‹น ๋””์ž์ธ ํŒจํ„ด์„ ์กฐ์‚ฌํ•˜๋ฉด์„œ ์–ด๋–ค ์ ์„ ๋ฐฐ์šฐ๊ณ  ๋Š๋ผ๊ฒŒ ๋˜์—ˆ๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

3. ํ•œ ํŒจํ„ด๋‹น Swift, Java ๊ฐ 1ํšŒ์”ฉ ์„ธ์…˜ ์ฃผ์ œ๋กœ ์„ ์ •ํ•ด ๋ฐœํ‘œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Design Pattern ์„ ์ •์€ ์„ ์ฐฉ์ˆœ์ž…๋‹ˆ๋‹ค.
  • ํ•ด๋‹น Repository์— [์„ธ์…˜๋‚ ์งœ] ์–ธ์–ด_๋””์ž์ธํŒจํ„ด์ข…๋ฅ˜ ์„ธ์…˜ ์ด๋ฆ„์œผ๋กœ ๋จผ์ € Issue๋ฅผ ํŒ ์ˆœ์„œ๋Œ€๋กœ ์„ธ์…˜ ์ฃผ์ œ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฑธ๋กœ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ํ•œ Design Pattern ๋‹น ์ตœ๋Œ€ Swift 1ํšŒ, Java 1ํšŒ๋งŒ ์ฃผ์ œ๋กœ ์„ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! (๋ฐœํ‘œ ํ•˜๊ณ  ์‹ถ์€ ํŒจํ„ด์ด ์žˆ์œผ๋ฉด ๋นจ๋ฆฌ ๊ฐ€์ ธ๊ฐ€๋Š”๊ฒŒ ์ข‹๊ฒ ์ฅฌ?)

๐Ÿ‘ฅ ํ•จ๊ป˜ ๊ณต๋ถ€ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค

๊ฐ•์œค์„œ yungu0010 ๊ฐ•ํ˜„์šฑ hyunw9 ๊ถŒ์žฅ์ˆœ jsoonworld ๊น€์„ ์šฐ kim-seonwoo
๊น€ํ™˜์ค€ jun3327 ๋„์†Œํ˜„ lynydoh ๋ฐ•์žฌ์—ฐ parkjyun ๋ฐ•์ค€ํ˜ Genesis2010
์ด๋™ํ›ˆ hoonyworld ์ด๋ฏผ์žฌ mini-min ์ด์„ฑ๋ฏผ seongmin221 ์ •๋™๊ทœ yummygyudon
์ •์ •๊ต junggyo1020 ์กฐ์˜์ฃผ choyeongju ์ตœ์˜์ฒ  softmoca ํ•œ์ •์› Gardeniaa101

๐Ÿ“ ์„ธ์…˜ ์ง„ํ–‰ ๊ธฐ๋ก ๋ชจ์Œ

์ƒ์„ฑ (Creatinal) ํŒจํ„ด

Design Pattern Java Swift
๋นŒ๋” (Builder) ์˜์ฃผ (5/3 Session 4) ๋ฏผ์žฌ (4/12, Session 1)
์ถ”์ƒ ํŒฉํ† ๋ฆฌ (Abstract Factory) ์ •๊ต (4/26 Session 3)
ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ (Factory Method) ๋™ํ›ˆ (4/12, Session 1) ์œค์„œ (4/19 Session 2)
๋‹จ์ผ์ฒด (Singleton) ์†Œํ˜„ (4/26 Session 3) ์„ ์šฐ (4/12, Session 1)
๋ชจ๋…ธ์Šคํ…Œ์ดํŠธ (Monostate)
์›ํ˜• (Prototype)

๊ตฌ์กฐ (Structural) ํŒจํ„ด

Design Pattern Java Swift
์ ์‘์ž (Adapter) ์žฅ์ˆœ (5/3 Session 4) ์„ฑ๋ฏผ (5/3 Session 4)
์žฅ์‹์ž (Decorator) ํ™˜์ค€ (4/26 Session 3)
ํผ์‚ฌ๋“œ (Facade) ์žฌ์—ฐ (4/19 Session 2)
๋ณตํ•ฉ์ฒด (Composite) ์žฅ์ˆœ (6/7 Session 7)
ํ”„๋ก์‹œ (Proxy) ๋™๊ทœ (4/19 Session 2)
๊ฐ€๊ต (Bridge)
ํ”Œ๋ผ์ด๊ธ‰ (Flyweight)

ํ–‰๋™ (Behavioral) ํŒจํ„ด

Design Pattern Java Swift
๊ฐ์‹œ์ž (Observer) ์˜์ฒ  (4/26 Session 3) ๋ฏผ์žฌ (5/17 Session 5)
์ „๋žต (Strategy) ๋™๊ทœ (5/24 Session 6)
๋ช…๋ น (Command) ํ˜„์šฑ (4/12, Session 1)
์ฑ…์ž„ ์—ฐ์‡„ (Chain of Responsibility)
ํ•ด์„์ž (Interpreter)
๋ฐ˜๋ณต์ž (Iterator)
์ค‘์žฌ์ž (Mediator)
๋ฐฉ๋ฌธ์ž (Visitor)
์ƒํƒœ (State) ์˜์ฒ  (5/17 Session 5) ์ค€ํ˜ (4/19 Session 2)
ํ…œํ”Œ๋ฆฟ ๋ฉ”์„œ๋“œ (Template Method) ์†Œํ˜„ (5/24 Session 6)
์ถ”์–ต๊ฑฐ๋ฆฌ (Memento)
ํ”Œ๋Ÿญ์Šค (Flux) ์ค€ํ˜ (5/24 Soon)