[CS ์ง€์‹] ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP) ๊ฐœ๋… ๋ฐ ์˜ˆ์ œ

2022. 6. 26. 12:56ใ†๐Ÿ–ฅ CS ์ง€์‹

 

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP)

object-oriented programming

 

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„  ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋…๊ณผ ํ•จ๊ป˜ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณผ ๊ฒƒ์ด๋ฉฐ, ์–ธ์–ด๋Š” python์œผ๋กœ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

๐Ÿ“Œ ์ •์˜

 

๋จผ์ œ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ •์˜๋ถ€ํ„ฐ ๋‚ด๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ์ฒด๋ž€?

์‰ฝ๊ฒŒ ๋งํ•ด ํ•˜๋‚˜์˜ ์กด์žฌ์ž…๋‹ˆ๋‹ค.

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

 

ํŒŒ์ด์ฌ์œผ๋กœ ์˜ˆ๋ฅผ ๋“ค๋ฉด, ๋‹ค์Œ ๊ฒƒ๋“ค์ด ๋ชจ๋‘ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

# 1
object = "i am object"

# 2
def object(x):
	return x

# 3
class object:
	def __init__(self, name):
    		self.name
    
    	def introduce(self) -> None:
    		print(f"my name is {self.name}")

obj = object("๊ฐ•์ผํ˜ธ")

๋ฌธ์ž์—ด ๋ณ€์ˆ˜(object)๋„ ๊ฐ์ฒด์ด๋ฉฐ, ์ „๋‹ฌ ๋ฐ›์€ x๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜(object)๋„ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  name ๋ฐ์ดํ„ฐ์™€ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ž๊ธฐ ์†Œ๊ฐœํ•˜๋ฉด์„œ ํ™œ์šฉํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ๋ฌถ์ธ์ฒด ์„ ์–ธ๋œ obj๋„ ํ•˜๋‚˜์˜ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

 

 

 

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์˜๋ฏธ๋„ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ๊ฐ์ฒด๋“ค์„ ์ƒํ˜ธ์ž‘์šฉ ์‹œ์ผœ์„œ ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ํ–‰์œ„.

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

 

 

 

 

 

์‚ฌ์‹ค ํ˜„๋Œ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„  ๋„ˆ๋ฌด ๋‹น์—ฐํ•œ ์›๋ฆฌ๋ผ ์˜์•„ํ•œ ๋ถ„๋“ค๋„ ๊ณ„์‹ค ๊ฒ๋‹ˆ๋‹ค.

์™œ ์ด ๊ฐœ๋…์„ ๋”ฐ๋กœ ๊ณต๋ถ€ํ•ด์•ผ ํ•˜์ง€?

ํ•˜์ง€๋งŒ ๊ผญ ์•Œ์•„๋‘ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ง€๊ธˆ ์—ฌ๋Ÿฌ๋ถ„์ด ์งœ๊ณ  ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ์‹ค์€ ์ „ํ˜€ ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ด์ง€ ์•Š์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์žˆ๊ธฐ ์ „, ๋‘ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŽ˜๋Ÿฌ๋‹ค์ž„์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

โฑ ์ˆœ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ(A -> B -> C)

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

1. ๊ฐ•์ผ๊ตฌ๋ผ๋Š” ์‚ฌ๋žŒ์€ ๋จธ๋ฆฌ 2๊ฐœ, ๋‹ค๋ฆฌ 3๊ฐœ, ํŒ” 4๊ฐœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ๊ฒฝ์ฐฐ์ด๋‹ค.
2. ๊ฐ•์ผ๊ตฌ์— ๋Œ€ํ•œ ์†Œ๊ฐœ๋ฅผ ํ•˜๋ผ
3. ์—ฌ์ง„๊ตฌ๋ผ๋Š” ์‚ฌ๋žŒ์€ ๋จธ๋ฆฌ 2๊ฐœ, ๋‹ค๋ฆฌ 3๊ฐœ, ํŒ” 4๊ฐœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์˜์‚ฌ์ด๋‹ค.
4. ์—ฌ์ง„๊ตฌ์— ๋Œ€ํ•œ ์†Œ๊ฐœ๋ฅผ ํ•˜๋ผ

 

 

โฑ ์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Function)

๋ฐ˜๋ณต๋˜๋Š” ๋™์ž‘์„ ํ•จ์ˆ˜/ ํ”„๋กœ์‹œ์ €(return์ด ์—†๋Š” ํ•จ์ˆ˜) ํ˜•ํƒœ๋กœ ๋ชจ๋“ˆํ™”ํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ํ–‰์œ„๋งŒ ํ•จ์ˆ˜ํ™” ํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ๋ฟ, ๋ณ€์ˆ˜์™€ ๋ฐ์ดํ„ฐ ๊ฐ™์€ ์ž๋ฃŒ๋Š” ๋˜ ์ผ์ผ์ด ์ •์˜ํ•ด์ค˜์•ผ ํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

1. ๊ฐ•์ผ๊ตฌ๋ผ๋Š” ์‚ฌ๋žŒ์€ ๋จธ๋ฆฌ 2๊ฐœ, ๋‹ค๋ฆฌ 3๊ฐœ, ํŒ” 4๊ฐœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ๊ฒฝ์ฐฐ์ด๋‹ค.
2. ๊ฐ•์ผ๊ตฌ.์†Œ๊ฐœํ•จ์ˆ˜()
3. ์—ฌ์ง„๊ตฌ๋ผ๋Š” ์‚ฌ๋žŒ์€ ๋จธ๋ฆฌ 2๊ฐœ, ๋‹ค๋ฆฌ 3๊ฐœ, ํŒ” 4๊ฐœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์˜์‚ฌ์ด๋‹ค.
4. ์—ฌ์ง„๊ตฌ.์†Œ๊ฐœํ•จ์ˆ˜()

๊ทธ๋ž˜์„œ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ž…๋‹ˆ๋‹ค.

 

 

โฑ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Function)

1. class ์ •์˜ (์ธ๊ฐ„ ๋ฐ์ดํ„ฐ, ํ•จ์ˆ˜, ์ถ”๊ฐ€ ๋ณ€์ˆ˜)
2. ๊ฐ•์ผ๊ตฌ = class ๊ฐ์ฒด(๊ฒฝ์ฐฐ)
3. ์—ฌ์ง„๊ตฌ = class ๊ฐ์ฒด(์˜์‚ฌ)
5. ๊ฐ•์ผ๊ตฌ.์†Œ๊ฐœํ•จ์ˆ˜()
6. ์—ฌ์ง„๊ตฌ.์†Œ๊ฐœํ•จ์ˆ˜()

๋จธ๋ฆฌ 2๊ฐœ, ๋‹ค๋ฆฌ 3๊ฐœ, ํŒ” 4๊ฐœ๋ผ๋Š” ๋ฐ์ดํ„ฐ์™€ ์†Œ๊ฐœ ํ•จ์ˆ˜๊ฐ€ ๋ฏธ๋ฆฌ class ๊ฐ์ฒด์— ๋“ค์–ด์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ•์ผ๊ตฌ์™€ ์—ฌ์ง„๊ตฌ๋ฅผ ์†Œ๊ฐœํ•  ๋• class ๊ฐ์ฒด๋ฅผ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ„์† ์ •์˜ํ•˜๊ณ , ํ•จ์ˆ˜๋ฅผ ๊ณ„์† ์ •์˜ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค!

 

 

 

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

 

 

 

 

๐Ÿ“Œ ํŠน์ง•

 

1. ์ถ”์ƒํ™”(Abstraction)

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

 

 

์ฑ…๊ณผ ๊ด€๋ จ๋œ ๋ณ€์ˆ˜, ํ•จ์ˆ˜๋“ค์„ ์ถ”์ƒํ™”ํ•œ๋‹ค๋ฉด ๋‹ค์Œ ์ฝ”๋“œ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

class book:
    def __init__(self, title, main, price) -> None:
        self.title = title
        self.main = main
        self.price = price
        self.like = 5
    
    def introduce(self):
        print(f"์ด ์ฑ…์˜ ์ œ๋ชฉ์€ {self.title} ์ด๋ฉฐ, ๋‚ด์šฉ์€ {self.main} ์ž…๋‹ˆ๋‹ค.")
        print(f"์ด ์ฑ…์˜ ๊ฐ€๊ฒฉ์€ {self.price} ์ž…๋‹ˆ๋‹ค.")
    
    def like(self):
        print(f"์ด ์ฑ…์˜ ํ‰์ ์€ {self.like} ์ž…๋‹ˆ๋‹ค.")

์ฑ…๊ณผ ๊ด€๋ จ๋œ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋“ค์„ ๋ฌถ์–ด ํ•˜๋‚˜์˜ book ํด๋ž˜์Šค๋กœ ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถ”์ƒํ™”๋Š” ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๋Š” ํ–‰์œ„ ๊ทธ ์ž์ฒด์ž…๋‹ˆ๋‹ค.

 

์ถ”์ƒํ™”๋ฅผ ์ž˜ ํ•ด๋‘๋ฉด ๊ฐ์ฒด๋“ค์ด ๋…๋ฆฝ์ ์ธ ์„ฑํ–ฅ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์œ ์ง€ํ•˜๋ฏ€๋กœ, ํ–ฅํ›„์˜ ์œ ์ง€๋ณด์ˆ˜์— ์ข‹์Šต๋‹ˆ๋‹ค.

 

 

 

2. ์บก์Šํ™”(Encapsulation)

ํด๋ž˜์Šค์˜ ์ •๋ณด๋ฅผ ์€๋‹‰ํ™”ํ•˜์—ฌ, ๊ฐ™์€ ๊ฐ์ฒด ์•ˆ์—์„œ๋Š” ์‘์ง‘๋„๋ฅผ ๋†’์ด๊ณ  ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ผ๋ฆฌ๋Š” ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ๋™์ž‘ ๊ตฌํ˜„์ด ์–ด๋–ป๊ฒŒ ์ด๋ค„์ ธ ์žˆ๋Š”์ง€ ๊ฐ์ถ”๊ณ , ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•จ์œผ๋กœ์„œ ๋‹ค๋ฅธ ๊ฐ์ฒด์™€์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ฅผ ์œ„ํ•ด ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด๋“ค์€ private, public ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํด๋ž˜์Šค์— ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” public๊ณผ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์ˆจ๊ฒจ๋†“๋Š” private๋ฅผ ๋งŒ๋“ฆ์œผ๋กœ์„œ ์บก์Šํ™”๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

 

๋‹ค๋งŒ, python์—์„œ๋Š”...

ํŒŒ์ด์ฌ์—์„  ํด๋ž˜์Šค์™€ ๊ฐ์ฒด์˜ ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ์ด ์˜คํ”ˆ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ ํŒŒ์ด์ฌ์€ ๋ช…๋ช…(naming)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์•Œ์•„์„œ private์™€ public์„ ์ค€์ˆ˜ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.

 

 

๋‹ค์Œ์€ ํ”„๋ผ์ด๋น— ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ์ด์šฉํ•œ ์บก์Šํ™”์ž…๋‹ˆ๋‹ค.

class book:
	def __init__(self, name, name2):
    	self.name = name
        self._name2 = 0

์ด๋ฆ„์ด _ ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋Š” private๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. name์€ ์ผ๋ฐ˜์ ์ธ public์ด์ง€๋งŒ, _name์€ private์ด๋ฏ€๋กœ ์•Œ์•„์„œ ๊ฑด๋“œ๋ฆฌ์ง€ ๋ง์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

3. ์ƒ์†(Inheritance)

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

 

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

 

 

python์—์„œ ์ƒ์†์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

class book:
    def __init__(self, title, main, price) -> None:
        self.title = title
        self.main = main
        self.price = price
        self.like = 5
    
    def introduce(self):
        print(f"์ด ์ฑ…์˜ ์ œ๋ชฉ์€ {self.title} ์ด๋ฉฐ, ๋‚ด์šฉ์€ {self.main} ์ž…๋‹ˆ๋‹ค.")
        print(f"์ด ์ฑ…์˜ ๊ฐ€๊ฒฉ์€ {self.price} ์ž…๋‹ˆ๋‹ค.")
    
    def like(self):
        print(f"์ด ์ฑ…์˜ ํ‰์ ์€ {self.like} ์ž…๋‹ˆ๋‹ค.")

class fantasy(book):
    def __init__(self, title, main, price, place) -> None:
        super().__init__(title, main, price)
        self.place = place
    
    def introduce_place(self):
        print(f"ํŒํƒ€์ง€ ์†Œ์‹ค์ธ {self.title} ์€ {self.place} ์„ ๋ฐฐ๊ฒฝ์œผ๋กœ ํŽผ์ณ์ง‘๋‹ˆ๋‹ค.")
        print(f"{self.main}์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๋ฉฐ, ๊ด€๋žŒ๋ฃŒ๋Š” {self.price} ์ž…๋‹ˆ๋‹ค.")

 

 

๋ถ€๋ชจ ํด๋ž˜์Šค๋Š” book์ด๋ฉฐ, ์ž์‹ ํด๋ž˜์Šค๋Š” fantasy์ž…๋‹ˆ๋‹ค. ๊ฐ™์€ book์ด๋ผ๋Š” ์„ฑ์งˆ ์•„๋ž˜์— ์‘์ง‘๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ ์ƒ์† ๋ฐ›์„ ๊ฒฝ์šฐ, ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ํ•จ์ˆ˜, ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

marble = fantasy("์ธํ„ฐ์Šคํ…”๋ผ", "ํ‰ํ–‰์šฐ์ฃผ", "21000", "์šฐ์ฃผ ๊ณต๊ฐ„")
marble.introduce()
marble.introduce_place()

 

๊ฒฐ๊ณผ

์ด ์ฑ…์˜ ์ œ๋ชฉ์€ ์ธํ„ฐ์Šคํ…”๋ผ ์ด๋ฉฐ, ๋‚ด์šฉ์€ ํ‰ํ–‰์šฐ์ฃผ ์ž…๋‹ˆ๋‹ค.
์ด ์ฑ…์˜ ๊ฐ€๊ฒฉ์€ 21000 ์ž…๋‹ˆ๋‹ค.
ํŒํƒ€์ง€ ์†Œ์‹ค์ธ ์ธํ„ฐ์Šคํ…”๋ผ ์€ ์šฐ์ฃผ ๊ณต๊ฐ„ ์„ ๋ฐฐ๊ฒฝ์œผ๋กœ ํŽผ์ณ์ง‘๋‹ˆ๋‹ค.
ํ‰ํ–‰์šฐ์ฃผ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๋ฉฐ, ๊ด€๋žŒ๋ฃŒ๋Š” 21000 ์ž…๋‹ˆ๋‹ค.

 

 

 

4. ๋‹คํ˜•์„ฑ(Polymorphism)

ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜๋ช…, ํ•จ์ˆ˜๋ช… ๋“ฑ์ด ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์˜๋ฏธ๋กœ ํ•ด์„๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ์˜ค๋ฒ„๋ผ์ด๋”ฉ, ์˜ค๋ฒ„๋กœ๋”ฉ์ด ๊ฐ€๋Šฅํ•จ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ฒ„๋กœ๋”ฉ: ๊ฐ™์€ ์ด๋ฆ„์˜ ํ•จ์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์ •์˜ํ•˜๊ณ , ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…๊ณผ ๊ฐœ์ˆ˜๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ „๋‹ฌ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋”ฐ๋ผ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

์˜ค๋ฒ„๋ผ์ด๋”ฉ: ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ์™€ ๊ฐ™์€ ์ด๋ฆ„, ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๋‹คํ˜•์„ฑ์„ ํ™œ์šฉํ•˜๋ฉด ๊ฐ™์€ ์ด๋ฆ„์˜ ์†์„ฑ์„ ์œ ์ง€ํ•˜๊ณ , ๋ฉ”์„œ๋“œ ์ด๋ฆ„์„ ๋‚ญ๋น„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณต์žก์„ฑ์„ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋Š˜๋ ค์ฃผ์–ด ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•ด์ง‘๋‹ˆ๋‹ค.

 

 

 

์š”์•ฝ : ์ถ”์ƒํ™”๋กœ ๋น„์Šทํ•œ ์„ฑ์งˆ์˜ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ๋ฌถ๊ณ , ์บก์Šํ™”๋กœ ์‘์ง‘๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋Š” ์ƒ์†์„ ํ†ตํ•ด ๊ธฐ์กด ๊ฐ์ฒด์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‹คํ˜•์„ฑ์„ ํ†ตํ•ด ๊ธฐ๋Šฅ์„ ์ˆ˜์ • ๋˜๋Š” ์ถ”๊ฐ€ํ•˜์—ฌ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

 

๐Ÿ“Œ ์žฅ์ ๊ณผ ๋‹จ์ 

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํŠน์„ฑ์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

OOP๋Š” ๊ฐ์ฒด ๊ฐ„์˜ ๋…๋ฆฝ์„ฑ์„ ๋šœ๋ ท์ด ํ•˜๊ณ , ์ค‘๋ณต๋˜๋Š” ์ฝ”๋“œ์˜ ์–‘์„ ์ค„์ž…๋‹ˆ๋‹ค. ์ด์— ๋”ฐ๋ฅธ ์žฅ๋‹ด์ ์„ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์žฅ๋‹จ์ ์„ ๋ณด๋ฉด์„œ ์™œ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹์€์ง€ ์ƒ๊ฐํ•ด๋ณด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

 

 

1. ์žฅ์ 

- ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ ์ฆ๊ฐ€

ํŠน์ • ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ๊ฐ์ฒด๋ฅผ ๋”ฐ๋กœ ์ •์˜ํ•˜๊ธฐ์—, ํ›„์— ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ด๋„ ๋‹ค์‹œ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ ๋ฏธ๋ฆฌ ์งœ๋‘” ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•จ์œผ๋กœ์„œ ์žฌ์‚ฌ์šฉ์„ฑ์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

 

- ์ƒ์„ ์ƒ ํ–ฅ์ƒ & ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉ

ํด๋ž˜์Šค๋ฅผ ํ†ตํ•œ ๋…๋ฆฝ์ ์ธ ๊ฐ์ฒด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์งœ๊ธฐ์—, ๊ธฐ์กด์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์— ๋น„ํ•ด ์ƒ์‚ฐ์„ฑ ๋ฐ ํšจ์œจ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค ๋‹จ์œ„๋กœ ๋ชจ๋“ˆํ™”๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ๋ช…์ด ๊ฐœ๋ฐœํ•  ๊ฒฝ์šฐ, ์—…๋ฌด ๋ถ„๋‹ด์ด ์‰ฝ์Šต๋‹ˆ๋‹ค.

 

- ์ผ์ƒ์ ์ธ ๋ชจ๋ธ๋ง

๊ฐ์ฒด๋Š” ๊ณง ํ•˜๋‚˜์˜ ์กด์žฌ์ด๋ฉฐ, ์šฐ๋ฆฌ ์ผ์ƒ ๋˜ํ•œ ๊ฐ์ฒด๋“ค์˜ ํ•ฉ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ธก๋ฉด์—์„œ ๊ฐ์ฒด ์ง€ํ–ฅ์  ์‚ฌ๊ณ ๋Š” ์šฐ๋ฆฌ์™€ ์ด๋ฏธ ๋ฐ€์ ‘ํ•˜๋‹ค๊ณ ๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ์žฅ์ ์ž…๋‹ˆ๋‹ค.

 

- ์œ ์ง€๋ณด์ˆ˜์˜ ์šฐ์ˆ˜์„ฑ

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

 

 

2. ๋‹จ์ 

- ์„ค๊ณ„ ์‹œ ๋งŽ์€ ์‹œ๊ฐ„์ด ๋“ ๋‹ค. (๊ฐœ๋ฐœ ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค)

๊ฐ ๊ฐ์ฒด๊ฐ€ ์–ด๋–ค ์„ฑ์งˆ์„ ๊ฐ€์ง€๊ณ , ์–ด๋–ค ๊ณผ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.

 

- ์‹คํ–‰์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค

๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด๋Š” ์ „์ฒด์ ์œผ๋กœ ์†๋„๊ฐ€ ๋Š๋ฆฝ๋‹ˆ๋‹ค. ์ด๋Š” ํ˜ธ์ถœ๊ณผ๋„ ์—ฐ๊ด€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ํ–‰์œ„๋ฅผ ์ •์˜ํ•˜์—ฌ ๋ช…๋ นํ•˜๋Š” ๊ฒฝ์šฐ, ์ปดํ“จํ„ฐ๋Š” ๋ฐ”๋กœ ๊ณผ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ class๋กœ ์ •์˜ํ•˜๊ณ  ๊ทธ ์•ˆ์—์„œ ๋˜ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ๊ฒฝ์šฐ, ์ด๋“ค์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด๊ฐ€ ํ˜ธ์ถœ๋ฐ›์œผ๋ฉด, (1) ๊ฐ์ฒด ํ˜ธ์ถœ (2) ์Šคํƒ ์ €์žฅ (3) ์ง€์—ญ ๋ณ€์ˆ˜ ์ €์žฅ (4) ์ฝ”๋“œ ์‹คํ–‰ (5) ๋ฐ˜ํ™˜ ๊ฐ’ return (6) ํ˜ธ์ถœ ์ •๋ณด ์ œ๊ฑฐ ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ณต์žกํ•œ ๊ณผ์ •์„ ํ•„์ˆ˜์ ์œผ๋กœ ๊ฑฐ์ณ์•ผ ํ•˜๊ธฐ์— ์†๋„๋„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋Š๋ ค์ง‘๋‹ˆ๋‹ค.

 

- ์ฝ”๋”ฉ ๋‚œ์ด๋„ ์ƒ์Šน

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๋„ ํ”„๋กœ๊ทธ๋žจ์ด ๋ณต์žกํ•ด์ง€๊ณ , ์ƒ์†ํ•ด์•ผ ํ•˜๋Š” ์š”์†Œ๋“ค์ด ๋งŽ์•„์ง€๋ฉด ๋‚œ์ด๋„๊ฐ€ ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค.

 

 

 

 

๐Ÿ“Œ ํ•ต์‹ฌ ์งˆ๋ฌธ๋“ค

ํฌ์ŠคํŒ…์„ ์ฝ์€ ํ›„, ๋‹ตํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š” ์งˆ๋ฌธ๋“ค.

 

[์งˆ๋ฌธ] ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค(๊ฐ์ฒด)๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

 

[์งˆ๋ฌธ] ์บก์Šํ™”๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

 

[์งˆ๋ฌธ] ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด๋ฅผ ์“ฐ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

 

[์งˆ๋ฌธ] ๋‹คํ˜•์„ฑ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

 

[์งˆ๋ฌธ] ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋‹จ์ ๊ณผ ๊ทธ ์ด์œ ๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.