๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ์ธ๊ณต๋ถ€/๊ธฐ์ˆ ๋ฉด์ ‘

[๊ธฐ์ˆ ๋ฉด์ ‘][๊ฐœ๋ฐœ์ƒ์‹] ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2021. 6. 8.

 

 


๊ธฐ์ˆ ๋ฉด์ ‘

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

 


 

 

โš ๏ธ ๊ฐœ์ธ ํ•™์Šต์„ ๋ชฉ์ ์œผ๋กœ ์ž‘์„ฑ๋œ ๊ธ€๋กœ ์ •ํ™•ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โš ๏ธ

 

 

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

 

๋‹จ์ˆœํžˆ ์ดํ•ด๋ฅผ ๋ชฉ์ ์œผ๋กœ ์ž‘์„ฑํ•œ ๊ธ€์ด๊ธฐ์— ๋งŽ์ด ๋ฏธ์ˆ™ํ•œ ๋‚ด์šฉ์ด์ง€๋งŒ ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์ด ์–ด๋ ต๊ฒŒ ๋Š๊ปด์ง„๋‹ค๋ฉด ์ด ๊ธ€๋กœ ํฅ๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ๋‹ค์‹œ ์ ‘๊ทผํ•ด ๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. ( ๋‚˜ ๋˜ํ•œ ๊ทธ๋žฌ๋‹ค ใ…Žใ…Ž )

 

[D+52] ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด (OOP)

D+52 - ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด (OOP) - (OOP, ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•, Prototype) OOP (Object-Oriendted-Programming) OOP๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ์š”์†Œ๋“ค์ด ๊ฐ์ฒด(์˜ค๋ธŒ์ ํŠธ)๋กœ ์ด๋ฃจ์–ด์งˆ ์ˆ˜ ์žˆ๋„๋ก ์งœ์—ฌ ์žˆ๋Š” ํ”„๋กœ..

onelight-stay.tistory.com

 

1๏ธโƒฃ  ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€?

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Object-Oriendted-Programming)์€ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ตฌ์„ฑ์š”์†Œ๋“ค์„ ๊ฐ์ฒด๋ผ๋Š” ๊ณณ์—  ๋‹ด์•„๋‘์–ด ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

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

 

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ํฌ๊ฒŒ ์บก์Šํ™”, ์ƒ์†, ์ถ”์ƒํ™”, ๋‹คํ˜•์„ฑ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

 

โ–ช๏ธŽ ์บก์Šํ™”

๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ํ…Œ์ดํ„ฐ๋“ค์„ ํ•œ ๊ณณ์— ๋ชจ์•„์„œ ๋‹ด์•„๋‘๋Š” ๊ฒƒ์„ ์บก์Šํ™”๋ผ๊ณ  ํ•œ๋‹ค.

์บก์Šํ™”๊ฐ€ ์—†์„ ๊ฒฝ์šฐ์—” ๊ด€๋ จ๋ฐ์ดํ„ฐ๋“ค์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ ์™”๋‹ค ๊ฐ”๋‹ค ํ•ด์•ผ ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ž…์žฅ์—์„œ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ ธ์„œ ์ถ”ํ›„์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.

ํ•˜์ง€๋งŒ ์บก์Šํ™”๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ๊ด€๋ จ ์ฝ”๋“œ๋ฅผ ํ•œ๋ˆˆ์— ๋ณผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํŽธ๋ฆฌํ•˜๋‹ค.

๋˜ํ•œ ์บก์Šํ™”๋Š” ์ผ์ข…์˜ ์ •๋ณด์€๋‹‰์ด๋ผ๋Š” ๊ฐœ๋…์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ์บก์Š ๋‚ด๋ถ€์˜ ์ •๋ณด๋ฅผ ๊ฐ์ถ”๊ณ  ์™ธ๋ถ€์— ํŠน์ • ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์—ฌ api๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์ด ๊ตฌ์ฒด์ ์ธ ์ฝ”๋“œ๋ฅผ ๋ณด์ง€ ์•Š๊ณ  ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ •๋ณด๋งŒ์œผ๋กœ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

 

โ–ช๏ธŽ ์ƒ์†

์ƒ์†์€ ๋ง๊ทธ๋ž˜๋กœ ๋ถ€๋ชจ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์†์„ฑ์„ ์ž์‹์—๊ฒŒ ๋ฌผ๋ ค์ฃผ๋Š” ๊ฒƒ์œผ๋กœ ์ƒ์œ„ ํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ๋”ฐ๋กœ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ๊ทธ๋Œ€๋กœ ๋ฌผ๋ ค๋ฐ›๋Š” ๊ฒƒ์ด๋‹ค.

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

 

โ–ช๏ธŽ ์ถ”์ƒํ™”

๊ณตํ†ต์˜ ์†์„ฑ์ด๋‚˜ ๊ธฐ๋Šฅ์„ ๋ฌถ์–ด์„œ ์ด๋ฆ„์„ ๋ถ™์ด๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋ฉฐ, ๊ฐ์ฒด ์ง€ํ–ฅ์  ๊ด€์ ์—์„œ ์ถ”์ƒํ™”๋Š” ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ข€ ๋” ์‰ฝ๊ฒŒ ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์„ค๋ช…ํ•˜์ž๋ฉด ์›์ˆญ์ด, ์‚ฌ์ž, ํ˜ธ๋ž‘์ด, ํ† ๋ผ, ์‚ฌ์Šด์ด ์žˆ๋Š”๋ฐ ์ด ๋“ค์€ ์ƒ๊น€์ƒˆ๋„ ํŠน์„ฑ๋„ ๋ชจ๋‘ ๋‹ค๋ฅด์ง€๋งŒ '๋™๋ฌผ'์— ์†ํ•œ๋‹ค๋Š” ๊ณตํ†ต์ ์ด ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ '๋™๋ฌผ'์ด๋ผ๊ณ  ์ •ํ•˜๊ณ  ๋ฌถ์–ด ๋†“๋Š” ๊ฒƒ์„ ์ถ”์ƒํ™”๋ผ๊ณ  ํ•œ๋‹ค.

 

โ–ช๏ธŽ ๋‹คํ˜•์„ฑ

๋‹คํ˜•์„ฑ์€ ๊ฐ™์€ ๋ชจ์–‘์˜ ํ•จ์ˆ˜๊ฐ€ ์ƒํ™ฉ์— ๋”ฐ๋ผ์„œ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๊ณ ์–‘์ด, ๊ฐœ, ๋ณ‘์•„๋ฆฌ์—๊ฒŒ '์šธ์–ด!'๋ผ๋Š” ๋ช…๋ น์„ ๋‚ด๋ ธ์„๋•Œ ๊ณ ์–‘์ด๋Š” '์•ผ์˜น!', ๊ฐœ๋Š” '๋ฉ๋ฉ!', ๋ณ‘์•„๋ฆฌ๋Š” '์‚์•ฝ!'์ด๋ผ๊ณ  ์šธ๋“ฏ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์šธ์Œ์†Œ๋ฆฌ๋ฅผ ๋‚ด๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

์˜ค๋ฒ„๋กœ๋”ฉ ์˜ค๋ฒ„๋ผ์ด๋”ฉ
- ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์ •์˜ํ•˜๋Š” ๊ฒƒ

- ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ํƒ€์ž…์„ ๋ฐ›์•„๋“ค์—ฌ ๊ฒฐ๊ตญ์—” ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ž‘์—…
- ์ƒ์†์—์„œ ๋‚˜์˜จ ๊ฐœ๋…

- ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜ ํ•˜๋Š” ๊ฒƒ

 

๋‹คํ˜•์„ฑ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋งŽ์€ ๋ฐฉ๋ฒ•๋“ค์ด ์žˆ์ง€๋งŒ ๋Œ€ํ‘œ์ ์œผ๋กœ๋Š” ์˜ค๋ฒ„๋กœ๋”ฉ(Overloading)๊ณผ ์˜ค๋ฒ„ ๋ผ์ด๋”ฉ(Overriding)์ด ์žˆ๋‹ค.

 

2๏ธโƒฃ  ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์žฅ์ 

โ–ช๏ธŽ ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’๋‹ค

๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ฐ์ฒด๋ฅผ ํ•„์š”ํ• ๋•Œ๋งˆ๋‹ค ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

โ–ช๏ธŽ ๋ฒ„๊ทธ๋ฐœ์ƒ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค ( = ์œ ์ง€๋ณด์ˆ˜์— ์šฉ์ดํ•˜๋‹ค )

๋””๋ฒ„๊น…์„ ๊ฑฐ์ณ ๋ฐœ์ƒ๋˜๋Š” ์˜ค๋ฅ˜๋ฅผ ์†์‰ฝ๊ฒŒ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ง€๋ณด์ˆ˜ ๋˜ํ•œ ์šฉ์ดํ•˜๋‹ค.

 

โ–ช๏ธŽ ์ƒ์‚ฐ์„ฑ์ด ๋†’๋‹ค

๊ฐ€๋…์„ฑ์ด ์ข‹์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ณผ์ •์ด ์ˆ˜์›”ํ•ด ์ƒ์‚ฐ์„ฑ์ด ๋†’๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€