๐ŸŒˆ [Section1] 14. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ4

ํ˜„์ฃผยท2022๋…„ 9์›” 7์ผ
0

bootcamp

๋ชฉ๋ก ๋ณด๊ธฐ
14/71

๐Ÿ“• ์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ!

  • ๊ฐ์ฒด ์ง€ํ–ฅ์˜ 4๊ฐ€์ง€ ์›๋ฆฌ ์ค‘ ๋‹คํ˜•์„ฑ / ์ถ”์ƒํ™”

โœ๏ธ ๋‹คํ˜•์„ฑ (polymorphism)

  • ์ƒ์œ„ ํด๋ž˜์Šค ํƒ€์ž…์˜ ์ฐธ์กฐ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ์—ฌ๋Ÿฌ ํƒ€์ž…์˜ ํ•˜์œ„ ํด๋ž˜์Šค ๊ฐ์ฒด๋“ค์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ๊ฒƒ
  • ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ๊ณผ ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋กœ๋”ฉ ๋˜ํ•œ ๋‹คํ˜•์„ฑ์˜ ํ•œ ์˜ˆ์‹œ

โœ” ํƒ€์ž… ๋ณ€ํ™˜(์บ์ŠคํŒ…) ์กฐ๊ฑด

์กฐ๊ฑด (1) ์ƒ์†๊ด€๊ณ„
์„œ๋กœ ์ƒ์†๊ด€๊ณ„์— ์žˆ๋Š” ์ƒ์œ„ ํด๋ž˜์Šค - ํ•˜์œ„ ํด๋ž˜์Šค ์‚ฌ์ด์—๋งŒ ํƒ€์ž… ๋ณ€ํ™˜์ด ๊ฐ€๋Šฅ
์กฐ๊ฑด (2) ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•„์ˆ˜
ํ•˜์œ„ ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์žฌ์ •์˜ ๋˜์–ด์žˆ์–ด์•ผ ํ•จ
์กฐ๊ฑด (3) ์—…์บ์ŠคํŒ…์ผ ๋•Œ ํ˜•๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž ์ƒ๋žต / ๋‹ค์šด์บ์ŠคํŒ…์ผ ๋•Œ ํ˜•๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž ๊ผญ ๋ช…์‹œ

  • ์—…์บ์ŠคํŒ… - ํ•˜์œ„ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด ์ฃผ์†Œ๋ฅผ ์ƒ์œ„ ํด๋ž˜์Šค ํƒ€์ž…์œผ๋กœ ํƒ€์ž… ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ
    ๐Ÿ‘‰ ํ˜•๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž(๊ด„ํ˜ธ)๋ฅผ ์ƒ๋žต ๊ฐ€๋Šฅ

  • ๋‹ค์šด์บ์ŠคํŒ… - ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด ์ฃผ์†Œ๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ
    ๐Ÿ‘‰ ํ˜•๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž(๊ด„ํ˜ธ)๋ฅผ ๋ฐ˜๋“œ์‹œ ์ ๊ธฐ

โš ๏ธ ๋‹ค์šด์บ์ŠคํŒ…์€ ์ด์ „์— ์—…์บ์ŠคํŒ…์ด ์ตœ์†Œ ํ•œ๋ฒˆ ์ด์ƒ ์‹คํ–‰๋˜์—ˆ์„ ๊ฒฝ์šฐ์—๋งŒ ๊ฐ€๋Šฅ !! )
์ƒ์œ„ํด๋ž˜์Šค๋ฅผ ํ•˜์œ„ํด๋ž˜์Šค๋กœ ๋ฐ”๋กœ ๋‹ค์šด์บ์ŠคํŒ…์€ ๋ถˆ๊ฐ€๋Šฅ !! )


์•„๋ž˜ ๋‘ ์ฝ”๋“œ์—์„œ Friend๊ฐ€ ์ƒ์œ„ํด๋ž˜์Šค / ๊ฐ๊ฐ BoyFriend, GirlFriend๊ฐ€ ํ•˜์œ„ํด๋ž˜์Šค๋ผ๊ณ  ํ•  ๋•Œ,

  • 1, 2๋ฒˆ - ๊ฐ์ฒด ํƒ€์ž…๊ณผ ์ฐธ์กฐ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ์ผ์น˜ํ•˜๋ฏ€๋กœ ๋‹น์—ฐํžˆ ์บ์ŠคํŒ…์ด ๊ฐ€๋Šฅ

  • 3๋ฒˆ - ๊ฐ์ฒด์™€ ์ฐธ์กฐ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ์ผ์น˜ํ•˜์ง€ ์•Š์Œ ( ์—…์บ์ŠคํŒ… )
    ๐Ÿ‘‰ GirlFriend๋ผ๋Š” ํ•˜์œ„ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์œ„ํด๋ž˜์Šค์˜ Friend ํƒ€์ž…์œผ๋กœ ์ง€์ •ํ•ด ์ค€ ๊ฒƒ์ด๋ฏ€๋กœ
    GirlFriend ๊ฐ์ฒด๊ฐ€ Friend ํƒ€์ž…์˜ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰๋˜๊ธฐ ๋•Œ๋ฌธ์— GirlFriend ํด๋ž˜์Šค ์•ˆ์˜ ํ•„๋“œ/๋ฉ”์„œ๋“œ๋Š” ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜๊ณ  ์ƒ์œ„ํด๋ž˜์Šค์˜ Friend์˜ ๋ฉค๋ฒ„์—๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ
    ( ํ•˜์œ„ํด๋ž˜์Šค์˜ ๋งŽ์€ ๊ธฐ๋Šฅ๋“ค์„ ์ƒ์œ„ํด๋ž˜์Šค๋กœ ์ทจ๊ธ‰ํ•จ์œผ๋กœ ์ธํ•ด ์ค„์—ฌ์ค€๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ )

  • 4๋ฒˆ - ์ƒ์œ„ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ํ•˜์œ„ํด๋ž˜์Šค ํƒ€์ž…์˜ ์ฐธ์กฐ๋ณ€์ˆ˜๋กœ ์ง€์ •ํ•ด์ฃผ๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅ

  • 5๋ฒˆ - ๊ฐ์ฒด์™€ ์ฐธ์กฐ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ์ผ์น˜ํ•˜์ง€ ์•Š์Œ ( ๋‹ค์šด์บ์ŠคํŒ… )
    ๐Ÿ‘‰ Friend๋ผ๋Š” ์ƒ์œ„ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๊ฐ€ ์ €์žฅ๋œ ์ฐธ์กฐ๋ณ€์ˆ˜ ์ž์ฒด๋ฅผ GirlFriend๋ผ๋Š” ํ•˜์œ„ํด๋ž˜์Šค์˜ ํƒ€์ž…์œผ๋กœ ํƒ€์ž… ๋ณ€ํ™˜ํ•˜์—ฌ freind2์— ํ• ๋‹น
    But, friend2๋ผ๋Š” ์ฐธ์กฐ๋ณ€์ˆ˜ ํƒ€์ž…์ด ์ด์ „์— ์—…์บ์ŠคํŒ…์„ ํ•ด์ค€ ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์œ„ -> ํ•˜์œ„ ํด๋ž˜์Šค๋กœ ๋ฐ”๋กœ ๋‹ค์šด์บ์ŠคํŒ… ํ•˜๋ฉด ์˜ค๋ฅ˜!!

  • 1๋ฒˆ - ๊ฐ์ฒด ํƒ€์ž…๊ณผ ์ฐธ์กฐ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ์ผ์น˜ํ•˜๋ฏ€๋กœ ํƒ€์ž… ๋ณ€ํ™˜ ํ•„์š” X

  • 2๋ฒˆ - ์ƒ์œ„ํด๋ž˜์Šค๋ฅผ ํ•˜์œ„ํด๋ž˜์Šค๋กœ ์—…์บ์ŠคํŒ… ํ•ด์ฃผ๋Š” ๊ฒฝ์šฐ (ํƒ€์ž…๋ณ€ํ™˜) ์ƒ๋žต ๊ฐ€๋Šฅ

  • 3๋ฒˆ - ํ•˜์œ„ํด๋ž˜์Šค๋ฅผ ์ƒ์œ„ํด๋ž˜์Šค๋กœ ๋‹ค์šด์บ์ŠคํŒ… ํ•ด์ฃผ๋Š” ๊ฒฝ์šฐ (ํƒ€์ž…๋ณ€ํ™˜) ๊ผญ ๋ช…์‹œ ํ•ด์ค˜์•ผํ•จ

  • 4๋ฒˆ - ์ƒ์†๊ด€๊ณ„๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ํƒ€์ž… ๋ณ€ํ™˜ ๋ถˆ๊ฐ€ ๐Ÿ‘‰ ์—๋Ÿฌ ๋ฐœ์ƒ

( โš ๏ธ ์บ์ŠคํŒ…๋˜๋Š” ์šฐํ•ญ ๋ถ€๋ถ„์ด ๋ชจ๋‘ ์ฐธ์กฐ๋ณ€์ˆ˜๋ผ๋Š” ๊ฒƒ์„ ํ—ท๊ฐˆ๋ฆฌ์ง€ ์•Š๊ธฐ!!! โš ๏ธ )


โœ” instanceof ์—ฐ์‚ฐ์ž

์ฐธ์กฐ๋ณ€์ˆ˜์˜ ํƒ€์ž… ๋ณ€ํ™˜, ์ฆ‰ ์บ์ŠคํŒ…์ด ๊ฐ€๋Šฅํ•œ ์ง€ ์—ฌ๋ถ€๋ฅผ boolean ํƒ€์ž…์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฐ”์˜ ๋ฌธ๋ฒ•์š”์†Œ

์ฐธ์กฐ_๋ณ€์ˆ˜ instanceof ํƒ€์ž…

๐Ÿ‘‰ ์•ž์— ์žˆ๋Š” ์ฐธ์กฐ๋ณ€์ˆ˜๊ฐ€ ๋’ค์— ์žˆ๋Š” ์ธ์Šคํ„ด์Šค ํƒ€์ž…์— ํฌํ•จ๋˜๋Š”๊ฐ€?

  • ๋ฆฌํ„ด ๊ฐ’์ด true --> ํƒ€์ž… ๋ณ€ํ™˜ ๊ฐ€๋Šฅ
  • ๋ฆฌํ„ด ๊ฐ’์ด false --> ํƒ€์ž… ๋ณ€ํ™˜ ๋ถˆ๊ฐ€๋Šฅ
    ( ์ฐธ์กฐ ๋ณ€์ˆ˜๊ฐ€ null์ธ ๊ฒฝ์šฐ์—๋Š” false ๋ฐ˜ํ™˜ )
    (๋’ค์— ์˜ค๋Š” ํƒ€์ž…์€ ์ž์‹ ์˜ ๊ฐ์ฒด ํƒ€์ž… ๋˜๋Š” ์ž์‹ ์˜ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด ํƒ€์ž…์ด์—ฌ์•ผ ํ•จ)

์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ ธ์„œ ๋งŽ์€ ์ƒ์„ฑ ๊ฐ์ฒด๋“ค์˜ ํƒ€์ž…์„ ํ™•์ธํ•˜๊ธฐ ์–ด๋ ค์šธ ๊ฒฝ์šฐ์— instanceof ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•˜์—ฌ ์บ์ŠคํŒ… ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ด์„œ ์—๋Ÿฌ๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Œ


์•„๋ž˜ ๋‘ ์ฝ”๋“œ์—์„œ Animal์ด ์ƒ์œ„ํด๋ž˜์Šค / ๊ฐ๊ฐ Cat, Bat๊ฐ€ ํ•˜์œ„ํด๋ž˜์Šค๋ผ๊ณ  ํ•  ๋•Œ,

  • 1-1๋ฒˆ - ์ฐธ์กฐ๋ณ€์ˆ˜ a๊ฐ€ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” Animal ์ธ์Šคํ„ด์Šค ํƒ€์ž…์ด ์ตœ์ƒ์œ„ ํด๋ž˜์Šค Object์— ์†ํ•˜๊ธฐ ๋•Œ๋ฌธ์— true

  • 1-2๋ฒˆ - ์ž์‹ ์˜ ์ธ์Šคํ„ด์Šค ํƒ€์ž…์ด๋ฏ€๋กœ true

  • 1-3๋ฒˆ - ์ฐธ์กฐ๋ณ€์ˆ˜ a๊ฐ€ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” Animal ์ธ์Šคํ„ด์Šค ํƒ€์ž…์ด ํ•˜์œ„ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค Bat์— ์†ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์œ„ -> ํ•˜์œ„ ๋กœ ๋ณ€ํ™˜์€ ์•ˆ๋ผ์„œ false
    (์ด์ „์— ์—…์บ์ŠคํŒ…์„ ํ•˜์ง€ ์•Š์•˜๊ธฐ์— ๋ฐ”๋กœ ๋‹ค์šด์บ์ŠคํŒ…์ด ์•ˆ๋จ)

  • 2-1๋ฒˆ - ์ฐธ์กฐ๋ณ€์ˆ˜ b๊ฐ€ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” Animal ์ธ์Šคํ„ด์Šค๋กœ ์ทจ๊ธ‰๋ฐ›๋Š” Cat ์ธ์Šคํ„ด์Šค๊ฐ€ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค Object์— ์†ํ•˜๊ธฐ ๋•Œ๋ฌธ์— true

  • 2-2๋ฒˆ - ์ฐธ์กฐ๋ณ€์ˆ˜ b๊ฐ€ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” Animal ์ธ์Šคํ„ด์Šค๋กœ ์ทจ๊ธ‰๋ฐ›๋Š” Cat ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์œ„ํด๋ž˜์Šค Animal์— ์†ํ•˜๊ธฐ ๋•Œ๋ฌธ์— true

  • 2-3๋ฒˆ - ์ฐธ์กฐ๋ณ€์ˆ˜ b๊ฐ€ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” Animal ์ธ์Šคํ„ด์Šค๋กœ ์ทจ๊ธ‰๋ฐ›๋Š” Cat ์ธ์Šคํ„ด์Šค๊ฐ€ ์ž๊ธฐ ์ž์‹ ์˜ ํƒ€์ž… Cat๊ณผ ๋™์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— true

  • 2-4๋ฒˆ - ์ƒ์†๊ด€๊ณ„๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ b ์ฐธ์กฐ๋ณ€์ˆ˜๊ฐ€ Bat ์ด๋ผ๋Š” ๊ฐ์ฒด ํƒ€์ž…์— ์†ํ•˜์ง€ ์•Š์•„ false

๐Ÿ’ฅ๐Ÿ’ฅ ์—ฌ๊ธฐ์„œ ๋‚ด๊ฐ€ ํ—ท๊ฐˆ๋ ธ๋˜ ์ !! ๐Ÿ’ฅ๐Ÿ’ฅ
โ €
โœ”๏ธ 1-3๋ฒˆ - ๋‹ค์šด์บ์ŠคํŒ…์ด ์žˆ๋Š”๋ฐ ์™œ false ์ผ๊นŒ?
๐Ÿ‘‰ instanceof ์—ฐ์‚ฐ์ž๋Š” ์ธ์Šคํ„ด์Šค ํƒ€์ž…์˜ ํฌํ•จ๊ด€๊ณ„๋ฅผ ์ง‘์ค‘์ ์œผ๋กœ ๋ณด๊ธฐ ๋•Œ๋ฌธ์— ์ฐธ์กฐ๋ณ€์ˆ˜์˜ ํ˜•๋ณ€ํ™˜๊ณผ ๊ด€๋ จ์ด ์—†์Œ! ๋”ฐ๋ผ์„œ ๋‹ค์šด์บ์ŠคํŒ…๋„ ๋ฌผ๋ก  ์•ˆ๋˜๊ณ  ์ƒ์œ„ -> ํ•˜์œ„ํด๋ž˜์Šค๋กœ ํƒ€์ž… ๋ณ€ํ™˜๋„ ๋ถˆ๊ฐ€!
โ €
โœ”๏ธ 2-3 - ์ฐธ์กฐ๋ณ€์ˆ˜ cat์˜ ์ธ์Šคํ„ด์Šค ํƒ€์ž…์„ Cat ์œผ๋กœ ์ทจ๊ธ‰ํ•ด์„œ true์ผ๊นŒ
์•„๋‹ˆ๋ฉด Cat ๊ฐ์ฒด๊ฐ€ Animal ํƒ€์ž…์˜ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰ ๋˜์–ด์„œ true์ผ๊นŒ?

๐Ÿ‘‰ ํ•˜์œ„ํด๋ž˜์Šค Cat ๊ฐ์ฒด๋ฅผ ์ƒ์œ„ํด๋ž˜์Šค Animalํƒ€์ž… ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ! ์ƒ์œ„->ํ•˜์œ„ ๋ณ€ํ™˜์€ ๋ถˆ๊ฐ€์ด๊ธฐ ๋•Œ๋ฌธ์— ์ „์ž๋Š” ๋ถˆ๊ฐ€๋Šฅ
โ €
โœ”๏ธ 2-3 - ์œ„์—์„œ Cat ๊ฐ์ฒด๋ฅผ Animal ํƒ€์ž… ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ ๊ทธ๋Ÿฌ๋ฉด Animal b = new Cat(); == Cat b == Cat(); ๋‘˜์ด ๊ฐ™์€ ๊ฒƒ์ผ๊นŒ?
๐Ÿ‘‰ ์ฐธ์กฐ๋ณ€์ˆ˜ b๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ Cat ๊ฐ์ฒด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Œ
๋‹ค๋งŒ ์—ฌ๊ธฐ์„œ ๋‘˜์˜ ๋‹ค๋ฅธ ์ ์€!!
์ „์ž๋Š” ํ•˜์œ„ํด๋ž˜์Šค Cat์ด ์ƒ์†๋ฐ›์€ ๋ฉค๋ฒ„(ํ•„๋“œ,ํด๋ž˜์Šค) + ์ž๊ธฐ ์ž์‹ ๋งŒ์˜ ๋ฉค๋ฒ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์„ํ…๋ฐ Cat์„ ์ƒ์œ„ํด๋ž˜์Šค์ธ Animal ํƒ€์ž… ๊ฐ์ฒด๋กœ ํƒ€์ž…์„ ๋ณ€ํ™˜ํ•  ๊ฒฝ์šฐ, ์ž๊ธฐ ์ž์‹ ๋งŒ์˜ ๋ฉค๋ฒ„๋Š” ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€ํ•˜๊ณ  ์ƒ์†๋ฐ›์•˜๋˜ ์ƒ์œ„ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค
ํ›„์ž๋Š” ์„œ๋กœ ๊ฐ™์€ ์ž๊ธฐ์ž์‹ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์†๋ฐ›์€ ๋ฉค๋ฒ„ + ์ž๊ธฐ ์ž์‹ ์˜ ๋ฉค๋ฒ„ ๋ณด๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค


โœ๏ธ ์ถ”์ƒํ™”

  • ๊ธฐ์กด ํด๋ž˜์Šค๋“ค์˜ ๊ณตํ†ต์ ์ธ ์†์„ฑ/๊ธฐ๋Šฅ๋“ค์„ ๋ฝ‘์•„์„œ ์ƒ์œ„ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๊ฒƒ
    ( ์ƒ์†์˜ ๋ฐ˜๋Œ€๋ผ๊ณ  ์ƒ๊ฐ )

  • ํด๋ž˜์Šค์˜ ์ƒ์† ์ˆœ์œ„๊ฐ€ ๋†’์„ ์ˆ˜๋ก ์ถ”์ƒํ™”์˜ ์ •๋„๊ฐ€ ๋†’๊ณ  ๊ทธ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐˆ์ˆ˜๋ก ๊ตฌ์ฒดํ™”๋จ
    ( ์ƒ์œ„ํด๋ž˜์Šค์ผ์ˆ˜๋ก ๋” ๊ณตํ†ต์ ์ธ ๋ฉค๋ฒ„๋“ค์ด ์ •์˜๋˜์–ด์žˆ๊ณ  ๋‚ด๋ ค๊ฐˆ ์ˆ˜๋ก ๋” ๊ตฌ์ฒด์ ์ธ ๋ฉค๋ฒ„๋“ค์ด ์ •์˜๋˜์–ด์žˆ์Œ )

โœ” abstract ์ œ์–ด์ž

abstract ๋ž€? -> ์ถ”์ƒ์ ์ธ -> ์ถฉ๋ถ„ํžˆ ๊ตฌ์ฒด์ ์ด์ง€ ์•Š์€ -> ๋ฏธ์™„์„ฑ์ธ

abstract class ํด๋ž˜์Šค๋ช… { // ์ถ”์ƒ ๋ฉ”์„œ๋“œ๊ฐ€ ์ตœ์†Œ ํ•˜๋‚˜ ์ด์ƒ ํฌํ•จ๋ผ์žˆ๋Š” ์ถ”์ƒ ํด๋ž˜์Šค
	abstract void ๋ฉ”์„œ๋“œ๋ช…(); // ๋ฉ”์„œ๋“œ ๋ฐ”๋””๊ฐ€ ์—†๋Š” ์ถ”์ƒ๋ฉ”์„œ๋“œ
}
  • ์ถ”์ƒ ํด๋ž˜์Šค(abstract class)
    -> ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜ ์ด์ƒ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํด๋ž˜์Šค
    -> ๋‚˜๋จธ์ง€๋Š” ๊ทธ๋ƒฅ ์ผ๋ฐ˜ ํด๋ž˜์Šค์™€ ๊ฐ™์Œ
    ( โš ๏ธ ์ผ๋ฐ˜ ํด๋ž˜์Šค ์•ž์— abstract ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์ด๊ณ  ์ถ”์ƒ๋ฉ”์„œ๋“œ๋ฅผ ์“ฐ์ง€ ์•Š์•„๋„ ๊ทธ ํด๋ž˜์Šค๋Š” ์ถ”์ƒํด๋ž˜์Šค๋กœ ๋ถ„๋ฅ˜๋˜์–ด ๊ฐ์ฒด ์ƒ์„ฑ์ด ๋ถˆ๊ฐ€ )

  • ์ถ”์ƒ ๋ฉ”์„œ๋“œ(abstract method)
    -> ๋ฉ”์„œ๋“œ ์‹œ๊ทธ๋‹ˆ์ฒ˜๋งŒ ์žˆ๊ณ  ๋ฐ”๋””๊ฐ€ ์—†๋Š” ๋ฉ”์„œ๋“œ
    -> ๋ฏธ์™„์„ฑ ์„ค๊ณ„๋„์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”์„œ๋“œ ๋ฐ”๋””๊ฐ€ ์™„์„ฑ์ด ๋˜๊ธฐ ์ „๊นŒ์ง€ ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ์ฒด ์ƒ์„ฑ ๋ถˆ๊ฐ€
    -> ์ƒ์œ„ํด๋ž˜์Šค์— ์ถ”์ƒ๋ฉ”์„œ๋“œ๋ฅผ ๋„ฃ๊ณ  ๊ทธ ๊ฐ’์„ ์ƒ์†๋ฐ›๋Š” ํ•˜์œ„ํด๋ž˜์Šค๋“ค์— ์ถ”์ƒ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์—ฌ ๊ฐ๊ฐ ์ƒํ™ฉ์— ๋งž๋Š” ๋ฉ”์„œ๋“œ ๊ตฌํ˜„ ๊ฐ€๋Šฅ

โœ” final ํ‚ค์›Œ๋“œ

  • ํด๋ž˜์Šค ์•ž์— ๋ถ™๋Š” ๊ฒฝ์šฐ
    -> ๋ณ€๊ฒฝ/ํ™•์žฅ ๋ถˆ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค, ์ƒ์† ๋ถˆ๊ฐ€

  • ๋ฉ”์„œ๋“œ ์•ž์— ๋ถ™๋Š” ๊ฒฝ์šฐ
    -> ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋ถˆ๊ฐ€

  • ๋ณ€์ˆ˜ ์•ž์— ๋ถ™๋Š” ๊ฒฝ์šฐ
    -> ๊ฐ’ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€ํ•œ ์ƒ์ˆ˜

์…‹ ๋ชจ๋‘ ๊ณตํ†ต์ ์œผ๋กœ final ์ œ์–ด์ž๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜ ์—†๋‹ค

โœ๏ธ ์ธํ„ฐํŽ˜์ด์Šค (interface)

  • ์ถ”์ƒํด๋ž˜์Šค ๋ณด๋‹ค ์ถ”์ƒํ™” ์ •๋„๊ฐ€ ๋” ๋†’์€ ๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ธ โ€œ๋ฐ‘๊ทธ๋ฆผ"
  • ์ถ”์ƒ ๋ฉ”์„œ๋“œ์™€ ์ƒ์ˆ˜(final)๋งŒ ๋ฉค๋ฒ„๋กœ ๊ฐ€์ง„ ํด๋ž˜์Šค (๊ฐ„๋‹จํžˆ ๋งํ•ด ์ถ”์ƒ๋ฉ”์„œ๋“œ๋“ค์˜ ์ง‘ํ•ฉ)

โ— ์ถ”์ƒํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ฐจ์ด์•Œ์•„๋‘๊ธฐ!!

[ ๊ธฐ๋ณธ ๊ตฌ์กฐ ]

  • class ํ‚ค์›Œ๋“œ ๋Œ€์‹  interface ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉ
  • ๋‚ด๋ถ€์˜ ๋ชจ๋“  ํ•„๋“œ๊ฐ€ public static final๋กœ ์ •์˜
  • static๊ณผ default ๋ฉ”์„œ๋“œ ์ด์™ธ์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๊ฐ€ public abstract๋กœ ์ •์˜
    (๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” ์ผ๋ถ€ ๋˜๋Š” ์ „๋ถ€ ์ƒ๋žต ๊ฐ€๋Šฅ)

[ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ ]

๊ทธ ์ž์ฒด๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ ๋ถˆ๊ฐ€, ๋ฉ”์„œ๋“œ ๋ฐ”๋””๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ๊ตฌํ˜„ ํด๋ž˜์Šค๋ฅผ ๋”ฐ๋กœ ์ž‘์„ฑํ•ด์•ผํ•จ
(like. ์ถ”์ƒ๋ฉ”์„œ๋“œ๋“ค์„ ์žฌ์ •์˜ํ•œ ํ•˜์œ„ํด๋ž˜์Šค๋“ค)

โžœ implements ํ‚ค์›Œ๋“œ ์‚ฌ์šฉํ•ด์„œ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ ( ๋ฉ”์„œ๋“œ ์žฌ์ •์˜ )

โ— ์ธํ„ฐํŽ˜์ด์Šค๋ผ๋ฆฌ๋Š” extends ํ•  ์ˆ˜ ์žˆ๊ณ , ํด๋ž˜์Šค์— ๊ตฌํ˜„ํ•˜๋ ค๋ฉด implememts

class ํด๋ž˜์Šค๋ช… implements ์ธํ„ฐํŽ˜์ด์Šค๋ช… {
		... // ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค์— ์ •์˜๋œ ๋ชจ๋“  ์ถ”์ƒ๋ฉ”์„œ๋“œ ๊ตฌํ˜„
}

๐Ÿ‘‰ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๋ฐ”๋””๊ฐ€ ์—†์—ˆ๋˜ ๋ชจ๋“  ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋“ค์„ ๊ตฌํ˜„ ํด๋ž˜์Šค ๋‚ด์—์„œ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์—ฌ ๊ฐ๊ฐ ๋ฐ”๋””๋ฅผ ์™„์„ฑ

class ํด๋ž˜์Šค๋ช… implements ์ธํ„ฐํŽ˜์ด์Šค๋ช…1, ์ธํ„ฐํŽ˜์ด์Šค๋ช…2, ์ธํ„ฐํŽ˜์ด์Šค๋ช…3 { 
				...
}

์œ„์™€ ๊ฐ™์ด ๋‹ค์ค‘ ๊ตฌํ˜„ ๊ฐ€๋Šฅ

๐Ÿ’ก ํด๋ž˜์Šค์—์„œ ๋‹ค์ค‘ ์ƒ์†์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ์—ˆ๋˜ ์ด์œ 
โžœ ์ƒ์œ„ํด๋ž˜์Šค์— ๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ฉค๋ฒ„๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ

But, ์ธํ„ฐํŽ˜์ด์Šค - ์• ์ดˆ์— ๋ฏธ์™„์„ฑ๋œ ๋ฉค๋ฒ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์—ฌ์ง€๊ฐ€ ์—†๊ณ , ๋”ฐ๋ผ์„œ ์•ˆ์ „ํ•˜๊ฒŒ ๋‹ค์ค‘ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅ

class ํด๋ž˜์Šค๋ช… extends ์ƒ์œ„ํด๋ž˜์Šค๋ช… implements ์ธํ„ฐํŽ˜์ด์Šค๋ช… { 
				...
}

์œ„์™€ ๊ฐ™์ด ๋‹ค๋ฅธ ํด๋ž˜์Šค ์ƒ์†๊ณผ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„์„ ๋™์‹œ์— ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Œ

[ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์žฅ์  ]

  • ์„ ์–ธ / ๊ตฌํ˜„์„ ๋ถ„๋ฆฌ์‹œ์ผœ ๊ฐœ๋ฐœ์‹œ๊ฐ„ ๋‹จ์ถ•

  • ์—ญํ• ๊ณผ ๊ตฌํ˜„์„ ๋ถ„๋ฆฌ์‹œ์ผœ ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ๋Š” ๋ณต์žกํ•œ ๊ฒƒ๊ณผ ์ƒ๊ด€์—†์ด ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

  • ๋…๋ฆฝ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ -> ์ฝ”๋“œ ๋ณ€๊ฒฝ์˜ ๋ฒˆ๊ฑฐ๋กœ์›€ ์ตœ์†Œํ™” / ํ•œ ํด๋ž˜์Šค ์—์„œ์˜ ๋ณ€๊ฒฝ์ด ๋‹ค๋ฅธ ํด๋ž˜์Šค์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Œ

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


โœ๏ธ ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ SOLID

( ์ข€ ๋” ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฝ๊ณ , ์œ ์—ฐํ•˜๊ณ , ํ™•์žฅ์ด ์‰ฌ์šด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์›์น™ )

โœ”๏ธ SRP (S)

  • ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ (Single responsibility principle)

  • ํด๋ž˜์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์€ ํ•˜๋‚˜์˜ ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ์ง‘์ค‘ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™

  • AOP๋Š” ๋ณ„๋„์˜ ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ์„ ํ•ต์‹ฌ ๋กœ์ง์—์„œ ๋ถ„๋ฆฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— SRP์˜ ์›์น™์„ ์ง€ํ‚จ ๋ฐฉ์‹์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Œ

    Ex. Hyunju ๋ผ๋Š” ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค๋ฉด, ์—ญํ• ๋ณ„๋กœ ๋‚˜๋ˆ„์–ด์„œ
    ์นœ๊ตฌ์˜ ์—ญํ•  / ๋”ธ์˜ ์—ญํ•  / ์ง์›์˜ ์—ญํ•  / ํ•™์ƒ์˜ ์—ญํ•  ๋“ฑ

[ SRP๋ฅผ ์ž˜ ์ง€ํ‚ฌ ๊ฒฝ์šฐ ]

  • ์‘์ง‘๋ ฅ์ด ๋†’์•„์ง€๊ณ , ๊ฒฐํ•ฉ๋„๋Š” ๋‚ฎ์•„์ง

  • ์ฝ”๋“œ ๊ฐ€๋…์„ฑ๋„ ์ข‹์•„์ง

  • ํ…Œ์ŠคํŠธ ๋ฒ”์œ„๋„ ์ž‘์•„์ง
    โžœ ์œ ์ง€๋ณด์ˆ˜ ํŽธํ•ด์ง

โœ”๏ธ OCP (O)

  • ๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™ (Open/closed principle)

  • ํ™•์žฅ์—๋Š” ์—ด๋ ค์žˆ๊ณ (Open), ๋ณ€๊ฒฝ์—๋Š” ๋‹ซํ˜€ ์žˆ์–ด์•ผ ํ•œ๋‹ค(Close)๋Š” ์›์น™
    ( ๋ณ€ํ•˜๋Š” ๊ธฐ๋Šฅ์€ Open, ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์€ Close )

  • ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์€ ์šฉ์ดํ•œ ํ™•์žฅ๊ณผ ์ˆ˜์ •์„ ์œ„ํ•ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋Š์Šจํ•˜๊ฒŒ ์˜์กดํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค

    Ex. Car์ด๋ผ๋Š” ๊ฐ์ฒด๊ฐ€ ์žˆ๋‹ค๋ฉด,

    • ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋™์ž‘
      โžœ ์›€์ง์ด๋Š” ๊ฒƒ
    • ๋ณ€ํ•˜๋Š” ๋™์ž‘
      โžœ ์ˆ˜๋™ ๋ชจ๋“œ, ์˜คํ† ๋ฉ”์ด์…˜ ๋ชจ๋“œ, ํฌ๋ฃจ์ฆˆ์ปจํŠธ๋กค ๋ชจ๋“œ ๋“ฑ

โœ”๏ธ LSP (L)

  • ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™ (Liskov substitution principle)

  • ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐ์ฒด๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ •ํ™•์„ฑ์„ ๊นจ๋œจ๋ฆฌ์ง€ ์•Š์œผ๋ฉด์„œ ํ•˜์œ„ ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™

  • ์ƒ์œ„ ํƒ€์ž…์˜ ๊ฐ์ฒด๋ฅผ ํ•˜์œ„ ํƒ€์ž…์˜ ๊ฐ์ฒด๋กœ ์น˜ํ™˜ํ•ด๋„ ์ƒ์œ„ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค
    ( ํŠน์ • ๋ฉ”์†Œ๋“œ๊ฐ€ ์ƒ์œ„ ํƒ€์ž…์„ ์ธ์ž๋กœ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•  ๋•Œ, ๊ทธ ํƒ€์ž…์˜ ํ•˜์œ„ ํƒ€์ž…๋„ ๋ฌธ์ œ ์—†์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™์„ ํ•ด์•ผ ํ•œ๋‹ค )

  • OCP ์›์น™์˜ ๊ธฐ๋ฐ˜์ด ๋œ๋‹ค๊ณ  ์ƒ๊ฐ๋จ

โœ”๏ธ ISP (I)

  • ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™ (Interface segregation principle)

  • ์ผ๋ฐ˜์ ์ธ ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์กฐ๊ธˆ ๋” ๊ตฌ์ฒด์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ชผ๊ฐœ๋Š”๊ฒƒ์ด ๋‚ซ๋‹ค๋Š” ์›์น™

    Ex. ์‚ฌ๋žŒ์˜ ํ–‰๋™์—์„œ (์ผ๋ฐ˜์ ์ธ ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค)

    • ๊ฑท๊ธฐ (๊ตฌ์ฒด์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค)
    • ๋งํ•˜๊ธฐ (๊ตฌ์ฒด์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค)
    • ๋›ฐ๊ธฐ (๊ตฌ์ฒด์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค)
      ๋“ฑ

โœ”๏ธ DIP (D)

  • ์˜์กด๊ด€๊ณ„ ์—ญ์ „ ์›์น™ (Dependency inversion principle)

  • ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ๊ธฐ๋Šฅ์€ ๊ตฌ์ฒด ํด๋ž˜์Šค์— ์˜์กดํ•˜์ง€ ์•Š๊ณ , ์ถ”์ƒํ™”(์ผ๋ฐ˜ํ™”) ๋œ ํด๋ž˜์Šค์— ์˜์กดํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ

  • ๊ตฌ์ฒด ํด๋ž˜์Šค๊ฐ€ ์ถ”์ƒ ํด๋ž˜์Šค์— ์˜์กดํ•˜๋ฏ€๋กœ ์˜์กด ๊ด€๊ณ„๊ฐ€ ์—ญ์ „๋œ ํ˜•ํƒœ

  • ์˜์กด์„ฑ ์ฃผ์ž…์ด ์ด ์›์น™์„ ๋”ฐ๋ฅด๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜

[์ฐธ๊ณ ] https://ko.wikipedia.org/wiki/SOLID_(%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%EC%84%A4%EA%B3%84)


๐ŸŒˆ ๋Š๋‚€์ 

์˜ค๋Š˜์€ ๋‹คํ˜•์„ฑ์—์„œ ํƒ€์ž…๋ณ€ํ™˜ ๋ถ€๋ถ„์ด ์ œ์ผ ํ—ท๊ฐˆ๋ฆฌ๊ณ  ์ดํ•ด๋„ ์ž˜ ์•ˆ๋ผ์„œ ์›๋ž˜ ๊ถ๊ธˆํ•œ ๊ฒƒ์€ ๋นจ๋ฆฌ ํ’€๊ณ  ๋„˜์–ด๊ฐ€์•ผ ์ง์„ฑ์ด ํ’€๋ฆฌ๊ธฐ์— ์ ์‹ฌ๋„ ๋ชป๋จน๊ณ  ๊ณ„์† ์ฐพ์•„๋ณด๋ฉด์„œ ๊ณต๋ถ€ํ–ˆ๊ณ  ๊ทธ๋ž˜๋„ ์ดํ•ด๊ฐ€ ์•ˆ๋˜๋Š” ๋ถ€๋ถ„์€ ์คŒ ์„ธ์…˜์—์„œ ์งˆ๋ฌธํ•˜์—ฌ ์ข€ ๋” ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค !
์•„์ง๊นŒ์ง€ 100% ์ดํ•ด๊ฐ€ ๋œ ๊ฑด ์•„๋‹ˆ์ง€๋งŒ ๋‚ด์ผ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด ์žˆ์œผ๋‹ˆ ๋‚ด์ผ ๊ฐ์ฒด์ง€ํ–ฅ ๊ด€๋ จํ•ด ๋‹ค ๋ณต์Šตํ•ด์•ผ๊ฒ ๋‹ค!!

0๊ฐœ์˜ ๋Œ“๊ธ€