GiantStepDEV

๊ฐ์ฒด์ง€ํ–ฅ ๋ณต์Šต

๐Ÿ’ก
๋ฉด์ ‘์— ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” ๋‹คํ˜•์„ฑ, ์ถ”์ƒ ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค

๊ฐ์ฒด์ง€ํ–ฅ 4๋Œ€ ํŠน์„ฑ

์บก์Аํ™”, ์ƒ์†, ์ถ”์ƒํ™”, ๋‹คํ˜•์„ฑ

์ƒ์†์„ ์™œ ํ•˜๋Š”๊ฐ€?

  • ์žฌ์‚ฌ์šฉ์„ฑ(๊ทธ๋Œ€๋กœ ๋ฌผ๋ ค๋ฐ›๋˜ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ)
    • ์ด ๋•Œ ์ผ์–ด๋‚˜๋Š”๊ฒŒ ๋‹คํ˜•์„ฑ

๐Ÿ“Œ ๋ถ€๋ชจ, ์ž์‹ ํด๋ž˜์Šค ๋ชจ๋‘ ๊ตฌํ˜„๋ถ€๊ฐ€ ์žˆ์Œ.

์บก์Аํ™”

  • ๋‚ด๋ถ€ ์ธ์Šคํ„ด์Šค๋ฅผ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•จ.
    • ์˜ˆ) ์šด์ „์ž๋Š” ์ฐจ ์†๋„๋ฅผ ๋†’์ผ ๋•Œ ์—”์ง„์— ์ง์ ‘ ์ ‘๊ทผํ•˜์—ฌ ์†๋„๋ฅผ ์ œ์–ดํ•˜๋ฉด ์•ˆ ๋จ.
      • ์ตœ๊ณ  ์†๋„๊ฐ€ 200km/h์ธ๋ฐ 250km/h๋กœ ์กฐ์ ˆํ•˜๋ฉด ํฐ์ผ๋‚จ..

โœด๏ธ ๋‹คํ˜•์„ฑ

์ƒ์œ„ ํด๋ž˜์Šค ํƒ€์ž…์˜ ์ฐธ์กฐ ๋ณ€์ˆ˜๋กœ ํ•˜์œ„ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์œ„ ํด๋ž˜์Šค is kind of ์ƒ์œ„ ํด๋ž˜์Šค
๐Ÿ’ก
์Šคํ”„๋ง ๋ถ€ํŠธ์˜ ์˜์กด์„ฑ ์ฃผ์ž…(AOP)๊ณผ ๋น„์Šท(๊ฐ์ฒด๋ฅผ ๋ˆ„๊ฐ€ ๋งŒ๋“ค์—ˆ๋ƒ์— ๋”ฐ๋ผ ๋‹ค๋ฆ„.. ex.์ œ์–ด ์—ญ์ „(IoC))
  • โœจ ์˜ค๋ฒ„๋กœ๋”ฉ, ์˜ค๋ฒ„๋ผ์ด๋”ฉ ์ฐจ์ด์ ?
    • ์˜ค๋ฒ„๋กœ๋”ฉ : System.out.print() ์ƒ๊ฐํ•˜๋ฉด ๋จ.
    • ์˜ค๋ฒ„๋ผ์ด๋”ฉ : ๋ถ€๋ชจ(์ƒ์œ„) ํด๋ž˜์Šค์—์„œ ๋งŒ๋“  ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜
      • ์ ‘๊ทผ์ œํ•œ์ž, ๋ฐ˜ํ™˜ํƒ€์ž…, ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชจ๋‘ ๊ฐ™์•„์•ผ ํ•จ.

โœด๏ธ ์ถ”์ƒ ํด๋ž˜์Šค

์‚ฌ์šฉ ๋ชฉ์ 

  • ์ƒ๋Œ€๋ฐฉ์ด ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜์–ด์žˆ๋Š”์ง€ ๋ชฐ๋ผ๋„ ๋˜๊ธฐ ์œ„ํ•ด(๋А์Šจํ•œ ๊ฒฐํ•ฉ ๊ด€๊ณ„)
  • ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด ๊ณตํ†ต๋˜๋Š” ํŠน์„ฑ์„ ์ถ”์ถœ(์ถ”์ƒ.abstract)ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํŠน์ง•

  1. ์ƒ์†์„ ์ฃผ๋Š” ๋ถ€๋ชจ๋Š” ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†์Œ
  1. ๋ถ€๋ชจ ํด๋ž˜์Šค๋Š” ์ถ”์ƒ ๋ฉ”์†Œ๋“œ๋ฅผ ํฌํ•จํ•ด์•ผ ํ•จ. (๊ทผ๋ฐ ์ผ๋ฐ˜ ๋ฉ”์†Œ๋“œ๋„ ๋„ฃ์„ ์ˆ˜ ์žˆ์Œ)
    • ๊ตฌํ˜„๋ถ€๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์† ๋ฐ›๋Š” ํด๋ž˜์Šค๋Š” ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„ํ•ด์ค˜์•ผ ํ•˜๋Š” ๊ฐ•์ œ์„ฑ์ด ์ƒ๊น€.
    • ์ด ๋•Œ, ๋А์Šจํ•œ ๊ฒฐํ•ฉ ๊ด€๊ณ„๊ฐ€ ์ƒ๊น€๐Ÿ“
  1. ๋‹จ์ผ ์ƒ์†๋งŒ ์ง€์›ํ•จ.

์ถ”์ƒ ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค

๊ณตํ†ต์ : ๊ฐ์ฒด ์ƒ์„ฑ ๋ถˆ๊ฐ€, ์ฐธ์กฐ ํƒ€์ž…

์ฐจ์ด์ : ์ถ”์ƒ ํด๋ž˜์Šค๋Š” ๋‹จ์ผ ์ƒ์†, ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋‹ค์ค‘ ์ƒ์†

 

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

์ž๋ฐ”์—์„œ๋Š” ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•œ ๋‹ค์ค‘ ์ƒ์†์„ ์ง€์›ํ•˜์ง€ ์•Š์ง€๋งŒ ๋‹ค์ค‘ ์ƒ์†์˜ ์ด์ ์„ ๋ฒ„๋ฆด ์ˆ˜ ์—†์–ด์„œ ‘์ธํ„ฐํŽ˜์ด์Šค’๋ฅผ ํ†ตํ•ด ๋‹ค์ค‘ ์ƒ์†์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ง•

์ธํ„ฐํŽ˜์ด์Šค๋Š” ์„ค๊ณ„๋„๋ฉด์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์™„์ „ ์ถ”์ƒํ™” ๊ฐœ๋…์ด ์ ์šฉ ๋จ.
  1. ๋ชจ๋“  ํ•„๋“œ๋Š” ์ž๋™์œผ๋กœ ์ƒ์ˆ˜๋กœ ๋ณ€ํ™˜(final static)
    1. ์™œ? ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ƒ์†์ด ๋˜๋ฉด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์—
    1. ์™œ? ์™ธ๋ถ€์—์„œ ์ง์ ‘ ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ํ•˜๋ ค๊ณ . (?) ์•„ ..๋จธ๋ฆฌ๋กœ๋Š” ์•Œ๊ฒ ๋Š”๋ฐ ๊ธ€๋กœ ์“ฐ๋ ค๋‹ˆ ํ—ท๊ฐˆ๋ฆฌ๋„ค
  1. ๋ชจ๋“  ๋ฉ”์†Œ๋“œ๋Š” ์ถ”์ƒ ๋ฉ”์†Œ๋“œ๋กœ ๋ณ€๊ฒฝ(๊ตฌํ˜„๋ถ€ ์ž‘์„ฑX)
  1. ‘๋””ํดํŠธ ๋ฉ”์†Œ๋“œ’๋Š” ๊ตฌํ˜„๋ถ€๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ƒ์† ๋ฐ›์€ ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  2. ์ •์  ๋ฉ”์†Œ๋“œ
profile

GiantStepDEV

@kongmi

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!