์ƒˆ์†Œ์‹

๐Ÿ ํŒŒ์ด์ฌ (Python)/-- ๋ฌธ๋ฒ•

ํŒŒ์ด์ฌ(Python) ๊ธฐ์ดˆ (12) ํด๋ž˜์Šค ,Self , ์ธ์Šคํ„ด์Šค( Class , instance )

  • -

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

*ํด๋ž˜์Šค (Class) ์ •์˜  

class ํด๋ž˜์Šค๋ช…() :        # ์ฒซ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž, ๋‹จ์–ด์—ฐ๊ฒฐ์‹œ์—๋„ ๋‹จ์–ด์ฒซ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž. ex) UserInfo, DataType
	ํ•จ์ˆ˜:
	ํ•จ์ˆ˜:

 ํ•จ์ˆ˜ ์ •์˜์™€ ํ˜•์‹์€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ํด๋ž˜์Šค์˜ ๋‚ด๋ถ€์—๋Š” ํ•จ์ˆ˜, ์†์„ฑ, ๋ฉ”์„œ๋“œ,์ดˆ๊ธฐ์ž(initializer), ์†Œ๋ฉธ์ž(destructor), ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜, ํด๋ž˜์Šค ๋ณ€์ˆ˜ ๋“ฑ์ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ 'ํด๋ž˜์Šค ๋ฉค๋ฒ„'๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 ํด๋ž˜์Šค๋ช…์€ ์ฒซ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉ์‹œ, ๊ฐ ๋‹จ์–ด์˜ ์ฒซ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. (์ด๋ฅผ CapWords๋ฐฉ์‹ ์ด๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค)

 

 

*๊ฐ์ฒด (object)

ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ฒฐ๊ณผ๋ฌผ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ์—์„œ ๊ฐ์ฒด๋Š” test1๊ณผ test2๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ , test1๊ณผ test2๋Š” ํด๋ž˜์Šค Sum์˜ ์ธ์Šคํ„ด์Šค ๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ถ€๋ถ„

test1.add(13) ์„ ๋ณด๋ฉด, test1 -> self๋กœ ์ „๋‹ฌ๋˜๋ฉฐ, (13)์€ num์œผ๋กœ ์ „๋‹ฌ๋œ๋‹ค.

class Sum:       #ํด๋ž˜์Šค Sum ์„ ์–ธ
    def __init__(self) : #์ตœ์ดˆ ์ดˆ๊ธฐํ™” ๊ณผ์ •. sum_num์ด๋ผ๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์ƒ์„ฑ
        self.sum_num = 0
        
    def add(self, num):    #ํด๋ž˜์Šค์•ˆ์˜ addํ•จ์ˆ˜. num์„ ๋”ํ•˜์—ฌ sum_num์— ๋„ฃ๋Š”๋‹ค.
        self.sum_num += num
        return self.sum_num  #๋”ํ•œ sum_num์„ ๋ฆฌํ„ดํ•œ๋‹ค.
         
test1 = Sum()   #test1์ด๋ผ๋Š” ๊ฐ์ฒด ์ƒ์„ฑ
test2 = Sum()   #test2๋ผ๋Š” ๊ฐ์ฒด ์ƒ์„ฑ

print(test1.add(13))
print(test1.add(9))

print(test2.add(18))
print(test2.add(2))


 

 *๋ฉ”์„œ๋“œ(Method) 

ํด๋ž˜์Šค๊ฐ€ ํ•˜๋Š” ํ–‰๋™์ด๋ผ๊ณ  ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ(instance method), ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ(class method), ์ •์  ๋ฉ”์„œ๋“œ(static method) ์„ธ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ์—์„œ ๊ฐ€์žฅ ํ”ํžˆ ์‚ฌ์šฉ๋˜๋Š” ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ๋Š” " self "๋ผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. 

 

*ํด๋ž˜์Šค ๋ณ€์ˆ˜์™€ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜

ํด๋ž˜์Šค ๋ณ€์ˆ˜ : ํ•ด๋‹น ํด๋ž˜์Šค์—์„œ ๊ณต์šฉ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ํ•จ์ˆ˜ (๋ฉ”์„œ๋“œ) ๋ฐ”๊นฅ์— ์„ ์–ธ๋ฉ๋‹ˆ๋‹ค. ์ ‘๊ทผ์€ ํ•จ์ˆ˜.๋ณ€์ˆ˜๋ช… ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. 

 

์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ : self.๋ณ€์ˆ˜๋ช… ์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ๊ฐ ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค ๋ฐ–์—์„œ๋Š” ๊ฐ์ฒด๋ณ€์ˆ˜.์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ๋กœ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. (ex ์œ„์˜ ์ฝ”๋“œ์˜  : test1.sum_num)

 

*ํด๋ž˜์Šค ์˜ˆ์ œ 

์Šค๋งˆํŠธํฐ(๊ฐค๋Ÿญ์‹œ, ์•„์ดํฐ)์˜ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

class SmartPhone() :   #ํด๋ž˜์Šค ์ƒ์„ฑ
time = 40    #ํด๋ž˜์Šค ๋ณ€์ˆ˜. ์ ‘๊ทผ์€ SmartPhone.time
    def __init__ (self, name, price):   #์ตœ์ดˆ์˜ ํด๋ž˜์Šค ์ดˆ๊ธฐํ™”๊ณผ์ •
                                        #self๋ฅผ ํ†ตํ•ด ์ธ์Šคํ„ด์Šค 

        self.name = name
        self.price = price

    def info_print(self):
        print("์Šค๋งˆํŠธํฐ์˜ ์ •๋ณด : ",self.name, self.price)


iphone6s = SmartPhone("์•„์ดํฐ6s", "50๋งŒ์›")   #์•„์ดํฐ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
Galaxy10 = SmartPhone("๊ฐค๋Ÿญ์‹œ10", "40๋งŒ์›")   #๊ฐค๋Ÿญ์‹œ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
iphone6s.info_print()          #์ถœ๋ ฅํ•จ์ˆ˜ (๋‘๋ฒˆ์งธํ•จ์ˆ˜ info_print)ํ˜ธ์ถœ(์‹คํ–‰)
Galaxy10.info_print()

๊ฒฐ๊ณผํ™”๋ฉด

์ด๋•Œ ์‚ฌ์šฉํ•œ ์ธ์Šคํ„ด์Šค iphone6s์™€ Galaxy10์€ ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

(๋„ค์ž„์ŠคํŽ˜์ด์Šค : ๊ฐ์ฒด๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•  ๋•Œ ์ €์žฅ๋˜๋Š” ๋…๋ฆฝ์  ๊ณต๊ฐ„) 

๊ทธ๋ฆฌ๊ณ  ๋ˆˆ์—ฌ๊ฒจ ๋ณผ๊ฒŒ self์ธ๋ฐ,  ํด๋ž˜์Šค ๋‚ด์˜ ํ•จ์ˆ˜๋ฅผ ๋ฉ”์„œ๋“œ(๋™์ž‘๊ธฐ๋Šฅ)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. self๋ฅผ ์ฒซ๋ฒˆ์งธ ์ธ์ž๋กœ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด, self์— ๋Œ€ํ•œ ๊ฐ’์„ ํŒŒ์ด์ฌ์—์„œ ์ž๋™์œผ๋กœ ๋„˜๊ฒจ์ค๋‹ˆ๋‹ค. ๋งŒ์•ฝ self๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํ•จ์ˆ˜๋ฅผ ์ž…๋ ฅํ•ด๋ณด๋ฉด

class SmartPhone() :   #ํด๋ž˜์Šค ์ƒ์„ฑ
    def __init__ (self, name, price):   #์ตœ์ดˆ์˜ ํด๋ž˜์Šค ์ดˆ๊ธฐํ™”๊ณผ์ •
                                        #self๋ฅผ ํ†ตํ•ด ์ธ์Šคํ„ด์Šค 

        self.name = name
        self.price = price

    def info_print(self):
        print("์Šค๋งˆํŠธํฐ์˜ ์ •๋ณด : ",self.name, self.price)
        
        
    def info_print_2():            #self ๋ฉ”์„œ๋“œ ์—†์Œ
        print('awefwefa')

iphone6s = SmartPhone("์•„์ดํฐ6s", "50๋งŒ์›")
Galaxy10 = SmartPhone("๊ฐค๋Ÿญ์‹œ10", "40๋งŒ์›")
iphone6s.info_print_2()
Galaxy10.info_print_2()

self๊ฐ€ ์—†์œผ๋ฉด ์ธ์ž๋ฅผ ์ž๋™์œผ๋กœ ๋„˜๊ฒจ์ฃผ์ง€ ์•Š๊ธฐ๋•Œ๋ฌธ์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 

 

 

* ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ์™€ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ

class SelfTest():
    def fun_1():  #ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋ผ๊ณ  ํ•จ, ํด๋ž˜์Šค์—์„œ ์ง์ ‘ ํ˜ธ์ถœ ๊ณตํ†ต ๊ณต์œ 
        print('fun_1 ํ˜ธ์ถœ')
    def fun_2(self):   #์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋ผ๊ณ  ํ•จ
        print('fun_2 ํ˜ธ์ถž')
        

SelfTest.fun_1()   #ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ๋ฒ• (์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ ํ•„์š” ์—†๋‹ค)
SelfTest.fun_2("์•„๋ฌด๊ฑฐ๋‚˜") #์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ ํ•„์š”. 

๊ฒฐ๊ณผํ™”๋ฉด

* ํด๋ž˜์Šค์˜ ์ƒ์†

 

์ƒ์œ„ ํด๋ž˜์Šค๋Š” ์Šˆํผํด๋ž˜์Šค(๋ถ€๋ชจ)๋ผ๊ณ  ํ•˜๋ฉฐ, ํ•˜์œ„ ํด๋ž˜์Šค๋Š” ์„œ๋ธŒํด๋ž˜์Šค(์ž์‹)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ธŒํด๋ž˜์Šค๋Š” ์Šˆํผํด๋ž˜์Šค์˜ ๋ชจ๋“  ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ค‘๋ณต์ž‘์„ฑ์„ ํ”ผํ•˜๋ฉฐ, ํšจ์œจ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

*์ƒ์œ„ ํด๋ž˜์Šค ์„ ์–ธ


PC๋ผ๋Š” ๋ถ€๋ชจํด๋ž˜์Šค, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ฐ‘์— LG์™€ Samsung , ๋‘๊ฐ€์ง€์˜ ์ž์‹ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

       *๋ถ€๋ชจํด๋ž˜์Šค ์„ ์–ธ(PC)

class PC:
    '''์Šˆํผ ํด๋ž˜์Šค'''
    def __init__ (self, price, color) :
        self.price = price
        self.color = color
    def Info(self) :
        return "๊ฐ€๊ฒฉ์€ : %s , ์ƒ‰๊น”์€ : %s" %(self.price, self.color)

      *์ž์‹ํด๋ž˜์Šค ์„ ์–ธ(LG, ์‚ผ์„ฑ)

 

 

 

class Lg(PC) :      #ํด๋ž˜์Šค ์„ ์–ธ๋’ค ๊ด„ํ˜ธ์— ๋ถ€๋ชจํด๋ž˜์Šค๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ƒ์†
    def __init__(self, name, price, color) :
        super().__init__(price,color)  #price, color๋ฅผ ์Šˆํผํด๋ž˜์Šค๋กœ ๋„˜๊ธฐ๋ ค๋ฉด initํ•„์š”
        self.name = name
    def model(self) :
        return "Your PC's Name : %s" %(self.name)

class Samsung(PC) :
    def __init__(self, name, price, color) :
        super().__init__(price,color)  #price, color๋ฅผ ์Šˆํผํด๋ž˜์Šค๋กœ ๋„˜๊ธฐ๋ ค๋ฉด initํ•„์š”
        self.name = name
    def model(self) :
        return "Your PC's Name : %s" %(self.name)

 

์ž์‹์€ ๋ถ€๋ชจ์˜ ๋ฉ”์„œ๋“œ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ถ€๋ชจํด๋ž˜์Šค์˜ Info๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋ฉด,

model1 = Lg("gram", "170๋งŒ์›", "ํฐ์ƒ‰")
print(model1.Info())

์ถœ๋ ฅ๊ฐ’->>>>>>>>>
๊ฐ€๊ฒฉ์€ : 170๋งŒ์› , ์ƒ‰๊น”์€ : ํฐ์ƒ‰

์ด๋ ‡๊ฒŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. 

 

*๋ฉ”์†Œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ(method overriding)

๋งŒ์•ฝ ๋ฐฉ๊ธˆ ์‚ฌ์šฉํ•œ ๋ถ€๋ชจํด๋ž˜์Šค์˜ Info()๋ผ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ž์‹๋„ ๊ฐ–๊ณ ์žˆ๋‹ค๋ฉด, ์ž์‹์˜ Info()๊ฐ€ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

์ž์‹ํด๋ž˜์Šค์ธ LG์—๋„ Info()๋ฅผ ์ถ”๊ฐ€ํ•œ ํ›„, Info๋ฅผ ํ˜ธ์ถœํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

class PC:
    '''์Šˆํผ ํด๋ž˜์Šค'''
    def __init__ (self, price, color) :
        self.price = price
        self.color = color
    def Info(self) :     #๋ถ€๋ชจ ํด๋ž˜์Šค์˜ Info
        return "๊ฐ€๊ฒฉ์€ : %s , ์ƒ‰๊น”์€ : %s" %(self.price, self.color)


class Lg(PC) :
    def __init__(self, name, price, color) :
        super().__init__(price,color)  #price, color๋ฅผ ์Šˆํผํด๋ž˜์Šค๋กœ ๋„˜๊ธฐ๋ ค๋ฉด initํ•„์š”
        self.name = name
    def model(self) :
        return "Your PC's Name : %s" %(self.name)
    def Info(self):
    	return "์ด๊ฑด ์ž์‹ํด๋ž˜์Šค์˜ Info"

class Samsung(PC) :
    def __init__(self, name, price, color) :
        super().__init__(price,color)  #price, color๋ฅผ ์Šˆํผํด๋ž˜์Šค๋กœ ๋„˜๊ธฐ๋ ค๋ฉด initํ•„์š”
        self.name = name
    def model(self) :
        return "Your PC's Name : %s" %(self.name)


model1 = Lg("gram", "170๋งŒ์›", "ํฐ์ƒ‰")
print(model1.Info())


์ถœ๋ ฅ๊ฐ’------------------->>>>>
์ด๊ฑด ์ž์‹ํด๋ž˜์Šค์˜ Info

 

 

*๋‹ค์ค‘์ƒ์†, Inheritance Info ,  class.mro()

์œ„์˜ ์˜ˆ์ œ์ฒ˜๋Ÿผ ํ•œ๋‘๊ฐœ์˜ ์ƒ์†๊ด€๊ณ„๋Š” ํŒŒ์•…ํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ค‘์ฒฉ๋˜๊ณ , ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ถ€๋ชจ, ์ž์‹ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด

ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋•Œ ํด๋ž˜์Šค๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ™•์ธ ํ•ด ๋ณผ์ˆ˜์žˆ๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

mro๋ฅผ ์‚ฌ์šฉ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

class X() :
    pass

class Y() :
    pass

class Z() :
    pass

class A(X,Y) :  #X,Y๋ฅผ ์ƒ์†๋ฐ›์Œ
    pass

class B(Y,Z) :  #Y,Z๋ฅผ ์ƒ์†๋ฐ›์Œ
    pass

class M(B,A,Z) : #B,A,Z๋ฅผ ์ƒ์†๋ฐ›์Œ
    pass

print("X๋Š”", X.mro())

print("A๋Š”", A.mro())

print("M์€", M.mro())


์ถœ๋ ฅ๊ฐ’------->>>>>>>
X๋Š” [<class '__main__.X'>, <class 'object'>]
A๋Š” [<class '__main__.A'>, <class '__main__.X'>, <class '__main__.Y'>, <class 'object'>]
M์€ [<class '__main__.M'>, <class '__main__.B'>, <class '__main__.A'>, <class '__main__.X'>, <class '__main__.Y'>, <class '__main__.Z'>, <class 'object'>]

(ํด๋ž˜์Šค ๋‚ด๋ถ€์˜ pass๋Š”, ๋‚ด์šฉ์ด ๊ณต๋ฐฑ์ด์–ด๋„ ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.) 

Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.