์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ์ค๋ธ์
- ์ฑ
- ๊ฐ๋ฐ
- Java
- ๊น๋ฏธ๊ฒฝ์๋งํ์์
- ํ์ด์ฌ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ์ฝ๋ฉ
- ๋ฆฌ์กํธ
- ๋ง์ผ๋ด๊ฐ์ธ์์๋ค์์ฐ๋ค๋ฉด
- ์ค๋ผํด
- ์ํ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์ปดํจํฐ๊ณผํ
- K๋ฐฐํฐ๋ฆฌ
- css
- ์นํผ๋ธ๋ฆฌ์ฑ
- JavaScript
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ComputerScience
- html
- Python
- database
- K๋ฐฐํฐ๋ฆฌ๋ ๋ณผ๋ฃจ์
- ํ๋ก๊ทธ๋๋ฐ
- ์๋ฐ
- ๋ฐ์ํ
- ๋ผํ๋ผ์ค์๋ง๋
- ๋ ์
- ์นํ์ด์ง๋ง๋ค๊ธฐ
- Today
- Total
JiYoung Dev ๐ฅ
[ํ์ด์ฌ] ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ / ํด๋์ค / ๋ฉ์๋ ๋ณธ๋ฌธ
2023.02.20 ์ฝ๋์ ํ์ต๋ด์ฉ ์ ๋ฆฌ
๐ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ
๐ ๊ฐ์ฒด (object)
์์ฑ๊ณผ ํ๋์ผ๋ก ์ด๋ฃจ์ด์ง ์กด์ฌ
์ฐ๋ฆฌ๊ฐ ์ด์๊ฐ๋ฉด์ ๋ณด๋ ๋ชจ๋ ์กด์ฌ
ํ์ค์ ์กด์ฌํ๋ , ๊ฐ์์ผ๋ก ์กด์ฌํ๋ ์๊ด์์ด ์์ฑ๊ณผ ํ๋์ ๋ ์ฌ๋ฆด ์ ์๋ค๋ฉด ๋ชจ๋ ๊ฐ์ฒด๋ผ๊ณ ํ ์ ์์
์๋์ฐจ
์์ฑ : ์์, ํฌ๊ธฐ, ์ข์์, ...
ํ๋ : ์๋์ ๊ฑธ๋ค, ์์ ์ ๋ฐ์ผ๋ฉด ์์ผ๋ก ๋๊ฐ๋ค, ๋ธ๋ ์ดํฌ๋ฅผ ๋ฐ์ผ๋ฉด ๋ฉ์ถ๋ค, ...
์ธ์คํ๊ทธ๋จ ์ ์
์์ฑ : ์ด๋ฉ์ผ ์ฃผ์, ๋น๋ฐ๋ฒํธ, ์น๊ตฌ ๋ชฉ๋ก, ...
ํ๋ : ์ข์์, ํ๋ก์ฐ, ...
ํ๋ก๊ทธ๋๋ฐ์์ ์์ฑ์ ๋ณ์๋ก ํ๋์ ๋ฉ์๋(ํจ์)๋ก ์ ์๋จ
๐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด๋
ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ๊ฐ์ ๋ ๋ฆฝ๋ ๊ฐ์ฒด๋ค๊ณผ ๊ทธ ๊ฐ์ฒด๋ค ๊ฐ์ ์ํธ์์ฉ์ผ๋ก ํ์ ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ ๊ทผ๋ฒ
(ํ๋ก๊ทธ๋จ์ ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ์ค๊ณํ๋ค. = ๋ชจ๋ธ๋งํ๋ค. ๋ผ๊ณ ํํ)
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ํ๋ก๊ทธ๋จ์ ๋ง๋ค๋ ค๋ฉด
1. ํ๋ก๊ทธ๋จ์ ์ด๋ค ๊ฐ์ฒด๋ค์ด ํ์ํ ์ง ์ ํ๋ค.
2. ๊ฐ์ฒด๋ค์ ์์ฑ๊ณผ ํ๋์ ์ ํ๋ค.
3. ๊ฐ์ฒด๋ค์ด ์๋ก ์ด๋ป๊ฒ ์ํตํ ์ง ์ ํ๋ค.
< ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ์ ๊ฐ๋จํ ์ : ์ด๊ฒ์ ๋ง๋ค๊ธฐ >
1. '์ด๊ฒ์'์ ์ด๋ค ๊ฐ์ฒด๋ค์ด ํ์ํ ์ง ์ ํ๋ค.
๊ฐ์ฒด : ๊ฒ์ ์บ๋ฆญํฐ ๊ฐ์ฒด, ์ด ๊ฐ์ฒด, ์ด์ ๊ฐ์ฒด
2. ๊ฐ ๊ฐ์ฒด๋ค์ ์์ฑ๊ณผ ํ๋์ ์ ํ๋ค.
๊ฒ์ ์บ๋ฆญํฐ ๊ฐ์ฒด
์์ฑ : ID ํ์ฌ ์ฌ์ฉ ์ค์ธ ์ด ์ฒด๋ ฅ ๋ชฉ์จ
ํ๋ : ์ด์ ๋ฐ์ฌํ๋ค ๋ฌ๋ฆฐ๋ค ์ฒด๋ ฅ์ด 0์ด ๋๋ฉด ์ฃฝ๋๋ค
์ด ๊ฐ์ฒด
์์ฑ : ๋ชจ๋ธ๋ช ๋ฌด๊ฒ ์ฅ์ ๋ ์ด์ ๊ฐ์
ํ๋ : ์ด์์ ๋ฐ์ฌํ๋ค.
์ด์ ๊ฐ์ฒด
์์ฑ : ๊ณต๊ฒฉ๋ ฅ
ํ๋ : ์ด์์ ๋ง์ ์บ๋ฆญํฐ์ ์ฒด๋ ฅ์ ๊ณต๊ฒฉ๋ ฅ๋งํผ ๊น๋๋ค.
3. ๊ฐ์ฒด๋ค์ด ์๋ก ์ด๋ป๊ฒ ์ํตํ ์ง ์ ํ๋ค.
๊ฒ์ ์บ๋ฆญํฐ๊ฐ ์ด์ ๋ฐ์ฌ → ์ด์ ์ฅ์ ๋ ์ด์ ๊ฐ์๊ฐ 1๊ฐ ์ค์ด๋ ๋ค → ์ด์์ ๋ง์ ์บ๋ฆญํฐ์ ์ฒด๋ ฅ์ด ์ด์์ ๊ณต๊ฒฉ๋ ฅ ๋งํผ ๊น์ธ๋ค → ๊ฒ์ ์บ๋ฆญํฐ์ ์ฒด๋ ฅ์ด 0์ด ๋๋ฉด ์ฃฝ๋๋ค.
๐ ํด๋์ค์ ์ธ์คํด์ค
์ธ์คํ๊ทธ๋จ์ ์๋ก ๋ค์ด์ ์ค๋ช ํ๋ฉด, ์ธ์คํ๊ทธ๋จ์ ์ฌ์ฉ์ ๊ฐ๊ฐ์ ๋ชจ๋ ์ด๋ฉ์ผ ์ฃผ์, ๋น๋ฐ๋ฒํธ, ํ๋ก์, ํ๋ก์ฐ ๋ฑ ๊ณตํต๋ ์์ฑ๊ณผ ํ๋์ ๊ฐ์ง๊ณ ์์.(๋ด๋ถ์ ์กด์ฌํ๋ ๊ฐ์ ๋ค๋ฆ) ์ด๋ ๊ฒ ๊ณตํต๋ ์์ฑ๊ณผ ํ๋๋ค์ ๊ฐ์ฒด์ 'ํ'์ด๋ผ๊ณ ํ๋ฉด, 'ํ'๋ก ๋ง๋ ๊ฒฐ๊ณผ๋ฌผ์ 'ํด๋์ค'๋ผ๊ณ ํจ. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ํด๋์ค๋ก '๊ฐ์ฒด'๋ฅผ ๋ง๋ค ์ ์์. ์ฌ๊ธฐ์ ๊ฐ์ฒด๋ ์ธ์คํด์ค๋ผ๊ณ ๋ ํจ.
โผโผโผ ํด๋์ค์ ์ธ์คํด์ค ์ ์ํ๊ธฐ
ํด๋์ค ์ ์
class ํด๋์ค ์ด๋ฆ
ํด๋์ค์ ๋ด์ฉ(์์ฑ, ํ๋)
๋จ, ํด๋์ค ์ด๋ฆ์ ์ฒซ ๊ธ์๋ ํญ์ ๋๋ฌธ์๋ก ์์ํ ๊ฒ - ํ์ด์ฌ ๊ท์น
์ธ์คํด์ค ์์ฑ
์ธ์คํด์ค ์ด๋ฆ1 = ํด๋์ค ์ด๋ฆ()
์ธ์คํด์ค ์ด๋ฆ2 = ํด๋์ค ์ด๋ฆ()
์ธ์คํด์ค ์ด๋ฆ3 = ํด๋์ค ์ด๋ฆ()
๐ ์ธ์คํด์ค ๋ณ์
์ธ์คํด์ค๊ฐ ๊ฐ์ง๊ณ ์๋ ์์ฑ์ ์ธ์คํด์ค ๋ณ์๋ผ๊ณ ํจ
์ธ์คํด์ค ๋ณ์ ์ ์ํ๊ธฐ
์ธ์คํด์ค ์ด๋ฆ.์์ฑ ์ด๋ฆ(์ธ์คํด์ ๋ณ์) = "์์ฑ์ ๋ฃ์ ๊ฐ"
์.
user1.name = "๊น๋์"
user1.email = "captin@korea.ke"
user1.password = "12345"
user2.name = "๊น๊ธฐ์"
...
user3.name = "์ฌ์ง์"
...
์์์ name, email, password ๊ฐ ์ธ์คํด์ค์ ๋ณ์
์ธ์คํด์ค ๋ณ์ ์ฌ์ฉํ๊ธฐ
์ธ์คํด์ค ์ด๋ฆ.์ธ์คํด์ค ๋ณ์ ์ด๋ฆ
print(user1.email)
print(user2.password)
# ์ถ๊ฐํ์ง ์์ ์ธ์คํด์ค์ ๋ณ์๋ฅผ ์คํํ๋ฉด? error ๋ฐ์
# ์ธ์คํด์ค ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ฌ์ฉํ๊ธฐ ์ ์ ๊ผญ ์ ์ํด์ผ ํจ
โผโผโผ ํด๋์ค์ ์ธ์คํด์ค, ์ธ์คํด์ค ๋ณ์ ์ ์ํ๊ธฐ ์ฝ๋ ์์ฑ ์
๐ ์ธ์คํด์ค ๋ฉ์๋
์์์ ์ธ์คํด์ค์ ์์ฑ์ ๋ณ์๋ก ๋ํ๋๋ค๋ฉด, ํ๋์ ํจ์๋ก ๋ํ๋
ํด๋์ค ์์ ํจ์๋ฅผ ์ ์ํ๋ ๊ฒ์ ๊ฐ์ฒด์ ํ๋์ ์ ์ํ๋ ๊ฒ์ด๋ฉฐ, ๊ฐ์ฒด์ ํ๋์ ๋ํ๋ด๋ ํจ์๋ฅผ ๋ฉ์๋๋ผ๊ณ ํจ
๋ฉ์๋์ ์ข ๋ฅ : ์ธ์คํด์ค ๋ฉ์๋, ํด๋์ค ๋ฉ์๋, ์ ์ ๋ฉ์๋
์ด๋ฌํ ๋ฉ์๋ ์ค ์ธ์คํด์ค ๋ฉ์๋๋ ์ธ์คํด์ค ๋ณ์๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, ์ธ์คํด์ค ๋ณ์์ ๊ฐ์ ์ค์ ํ๋ ๋ฉ์๋
โผโผโผ ์ธ์คํด์ค ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ์ธ์คํด์ค ๋ฉ์๋ ์ (say_hello)
say_hello ํจ์๋ ์ธ์คํด์ค ๋ณ์ name์ ์ฌ์ฉํ๋ ํจ์
โ ์ธ์คํด์ค ๋ฉ์๋ ์ฌ์ฉ๋ฒ
1. ํด๋์ค๋ก ํธ์ถํ๋ ๋ฐฉ๋ฒ
ํด๋์ค ์ด๋ฆ.๋ฉ์๋์ด๋ฆ(์ธ์คํด์ค)
2. ์ธ์คํด์ค๋ก ํธ์ถํ๋ ๋ฐฉ๋ฒ
์ธ์คํด์ค ์ด๋ฆ.๋ฉ์๋()
์ธ์คํด์ค๋ก ์ธ์คํด์ค ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ์ธ์คํด์ค๊ฐ ๋ฉ์๋์ ์ฒซ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก ์๋ ์ ๋ฌ
→ ์ธ์คํด์ค ๋ฉ์๋๋ฅผ ์ ์ํ ๋๋ ํญ์ ์ฒซ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก ์ธ์คํด์ค๋ฅผ ๋ฐ๊ธฐ ์ํ ํ๋ผ๋ฏธํฐ๋ก ์จ์ผ ํจ
โผโผโผ ์ธ์คํด์ค ๋ฉ์๋ ํธ์ถ ์ฝ๋
์ธ์คํด์ค ๋ฉ์๋์ ํน๋ณํ ๊ท์น
์ธ์คํด์ค ๋ฉ์๋์ ์ฒซ๋ฒ์งธ ํ๋ผ๋ฏธํฐ ์ด๋ฆ์ self๋ก ์์ฑ
์ธ์คํด์ค ๋ฉ์๋์ ํ๋ผ๋ฏธํฐ์ ์ธ์คํด์ค ๋ณ์์ ์ด๋ฆ์ ๊ฐ์๋ ์๊ด์์
์ด๋ ๊ฒ ์์ฑํ๋ ๊ฒ์ด ์ผ๋ฐ์
๋ฌธ์ ํ์ด. ์ธ์คํด์ค ๋ณ์๋ฅผ ํ ๋ฒ์ ์ค์ ํ๋ ์ธ์คํด์ค ๋ฉ์๋(initialize) ์์ฑ
์์ ๋ฌธ์ ์์ initailize ๋ฉ์๋์ ๋ํ์ฌ user1, user2์ user3, user4์ ํ๋ผ๋ฏธํฐ๊ฐ ๋ค๋ฅธ ์ด์
- user1๊ณผ user2๋ ํ๋ผ๋ฏธํฐ๋ฅผ 3๊ฐ, user3์ user4๋ ํ๋ผ๋ฏธํฐ 4๊ฐ
user1๊ณผ user2๋ ์ธ์คํด์ค๋ฅผ ํตํด์ ์ธ์คํด์ค ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ์์. ๋ฐ๋ผ์ ์ฒซ๋ฒ์งธ ํ๋ผ๋ฏธํฐ์ธ self๋ก ์ธ์คํด์ค user1์ด ์๋์ผ๋ก ๋์ด๊ฐ. ๊ทธ๋์ initialize ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ user1 ์ธ์คํด์ค๋ฅผ ์ง์ ๋๊ฒจ์ฃผ์ง ์์๋ ๋จ
๋ฐ๋ฉด user3์ user4๋ ํด๋์ค๋ฅผ ํตํด์ ์ธ์คํด์ค ๋ฉ์๋๋ฅผ ํธ์ถ. ํด๋์ค๋ฅผ ํตํด ํธ์ถํ ๊ฒฝ์ฐ ์ฒซ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก ์ธ์คํด์ค๊ฐ ์๋์ผ๋ก ์ ๋ฌ๋์ง ์๊ธฐ ๋๋ฌธ์ user3/user4 ์ธ์คํด์ค๋ฅผ ์ฒซ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก ์ง์ ๋๊ฒจ์ค์ผ ํจ
๐ ํน์ ๋ฉ์๋
magic method = special method = ํน์ ๋ฉ์๋ = ๋๋ ๋ฉ์๋๋ผ๊ณ ํจ
์ด๋ค์ ํน์ ์ํฉ์์ ์๋์ผ๋ก ํธ์ถ๋๋ ๋ฉ์๋๋ก ๋ฉ์๋์ ์ด๋ฆ ์ ๋ค์ ์ธ๋๋ฐ 2๊ฐ๊ฐ ์๋ ๋ฉ์๋
โ __init__ ๋ฉ์๋ : ์ธ์คํด์ค๊ฐ ์์ฑ๋ ๋ ์๋์ผ๋ก ํธ์ถ
__init__ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์๋์ ๊ฐ์ด ๊ธธ์๋ ์ฝ๋๋ฅผ ๊ฐ๋จํ๊ฒ ์์ฑํ ์ ์์
โผโผโผ __init__ ๋ฉ์๋ ์ฌ์ฉ ์
โผโผโผ __init__ ๋ฉ์๋ ์ฌ์ฉ ํ
๋ฌธ์ ํ์ด. ํ๋ก์ฐ ๊ธฐ๋ฅ ๋์ ๋ฉ์๋ ์์ฑํ๊ธฐ
โ __str__ ๋ฉ์๋
์ธ์คํด์ค ์ถ๋ ฅ ์ ์ํ๋ ์ ๋ณด๊ฐ ๋์ค๊ฒ ํ๊ณ ์ถ์ ๋ ์ฌ์ฉ
โผโผโผ __str__ ๋ฉ์๋ ์ฌ์ฉ ์
โผโผโผ __str__ ๋ฉ์๋ ์ฌ์ฉ ํ
๐ ํด๋์ค ๋ณ์
์ธ์คํด์ค ์์ ๋ง์ ์์ฑ → ์ธ์คํด์ค ๋ณ์
์ฌ๋ฌ ์ธ์คํฐ์ค๋ค์ด ๊ณต์ ํ๋ ์์ฑ → ํด๋์ค ๋ณ์
ํด๋์ค ๋ณ์๋, ๊ฐ์ ํด๋์ค์ ์ธ์คํด์ค๋ค์ด ๊ณต์ ํ๋ ๊ฐ์ ๋งํจ
์ด๋ sns์ User ํด๋์ค์์ ์ ์ ์ ์ดํฉ์ ๋ชจ๋ ์ธ์คํด์ค๋ค์ด ๊ณต์ ํ๋ ๊ฐ์ผ๋ก ํด๋์ค ๋ณ์๋ผ๊ณ ํ ์ ์์
์๋ ์ฌ์ง์์๋ count๊ฐ ํด๋์ค ๋ณ์, ์ด ์ ์ ์ ์๋ก ํด๋์ค ๋ณ์๋ก ์ง์
ํด๋์ค ๋ณ์๋ ํด๋์ค ์ ์ ๋ถ๋ถ ์๋ ์ง์
ํด๋์ค ๋ณ์์ ๊ฐ์ ์ฝ๊ฑฐ๋ ์ค์ ํ๋ ๋ฐฉ๋ฒ
1. ํด๋์ค ์ด๋ฆ. ํด๋์ค ๋ณ์ ์ด๋ฆ
2. ์ธ์คํด์ค ์ด๋ฆ. ํด๋์ค ๋ณ์ ์ด๋ฆ
๋จ, ํด๋์ค ๋ณ์์ ๊ฐ์ ์ง์ ํ ๋๋ ์ธ์คํด์ค ์ด๋ฆ์ด ์๋ ํด๋์ค ์ด๋ฆ(1๋ฒ)์ผ๋ก ์ง์ ํ ๊ฒ
WHY? ์ธ์คํด์ค ์ด๋ฆ์ผ๋ก ์ง์ ํ ๊ฒฝ์ฐ, ํด๋์ค ๋ณ์์ ์ด๋ฆ์ด ๊ฐ์ ์ธ์คํด์ค ๋ณ์๋ก ์๋กญ๊ฒ ์ง์ ๋๊ธฐ ๋๋ฌธ
๐ ๋ฐ์ฝ๋ ์ดํฐ (decorator) ํจ์
์ด๋ค ํจ์๋ฅผ ๊พธ๋ฉฐ์ ์๋ก์ด ํจ์๋ก ๋ง๋ค ๋ ์ฌ์ฉ
ํ๋ผ๋ฏธํฐ๋ก ์ด๋ค ํจ์๋ฅผ ๋ฐ์์, ๋ ๋ค๋ฅธ ๊พธ๋ฉฐ์ง ์๋ก์ด ํจ์๋ก return ํ๋ ๊ฒ
๋ฐ์ฝ๋ ์ดํฐ ํจ์๋ฅผ ์ฐ๋ ค๋ฉด @๋ฐ์ฝ๋ ์ดํฐ ํจ์์ด๋ฆ์ ๋ฌ์์ฃผ๋ฉด ๋จ
๐ ํด๋์ค ๋ฉ์๋
์ธ์คํด์ค ๋ณ์์ ๊ฐ์ ์ฝ๊ฑฐ๋ ์ค์ ํ๋ ๋ฉ์๋ → ์ธ์คํด์ค ๋ฉ์๋
ํด๋์ค ๋ณ์์ ๊ฐ์ ์ฝ๊ฑฐ๋ ์ค์ ํ๋ ๋ฉ์๋ → ํด๋์ค ๋ฉ์๋
์์ฑ๋ฐฉ๋ฒ
@classmethode
def ํด๋์ค ๋ฉ์๋ ์ด๋ฆ(cls):
์คํ๋ฌธ
ํด๋์ค ๋ฉ์๋ ๊ท์น
1. ์ฒซ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก ํด๋์ค๊ฐ ์๋ ์ ๋ฌ
2. ๊ทธ๋ฆฌ๊ณ ํด๋์ค๋ฅผ cls๋ผ๋ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌ๋ฐ์
ํด๋์ค ๋ฉ์๋ ์คํ
ํด๋์ค ์ด๋ฆ.ํด๋์ค ๋ฉ์๋ ์ด๋ฆ()
ํน์
์ธ์คํด์ค ์ด๋ฆ.ํด๋์ค ๋ฉ์๋ ์ด๋ฆ()
โป ๋ ๊ฐ์ง ๊ฒฝ์ฐ ๋ชจ๋ ํ๋ผ๋ฏธํฐ()๋ฅผ ๋น์๋ .
ํด๋์ค ๋ฉ์๋์ ๊ฒฝ์ฐ ์๋์ผ๋ก ์ฒซ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก ํด๋์ค๋ฅผ ์๋ ์ ๋ฌํ๊ธฐ ๋๋ฌธ
ํด๋์ค๊ฐ ์๋ ์ ๋ฌ๋๋ ์ด์ ๋ ํด๋์ค ๋ฉ์๋ ๋ฐ์ฝ๋ ์ดํฐ๋ก ํด๋์ค ๋ฉ์๋๋ฅผ ๋ง๋ค์ด์คฌ๊ธฐ ๋๋ฌธ
๋ฉ์๋๋ฅผ ์์ฑํ ๋
์ธ์คํด์ค ๋ณ์๋ฅผ ์ด๋ค๋ฉด ์ธ์คํด์ค ๋ฉ์๋๋ฅผ,
ํด๋์ค ๋ณ์๋ฅผ ์ด๋ค๋ฉด ํด๋์ค ๋ฉ์๋๋ฅผ ๋ง๋ค์ด์ผ ํจ.
๋ง์ฝ,
ํด๋์ค ๋ณ์์ ์ธ์คํด์ค ๋ณ์๋ฅผ ๋ ๋ค ์ฐ๋ ๊ฒฝ์ฐ์๋ ์ด๋ค ๋ฉ์๋๋ฅผ ์์ฑํด์ผ ํ ๊น?
→ ์ธ์คํด์ค ๋ฉ์๋๋ก ๋ง๋ค ๊ฒ
→ ์ธ์คํด์ค ๋ฉ์๋์์๋ ํด๋์ค ๋ณ์๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ง๋ง, ํด๋์ค ๋ฉ์๋๋ ์ธ์คํด์ค ๋ณ์๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๊ธฐ ๋๋ฌธ
๋ง์ฝ, ์ธ์คํด์ค๊ฐ ์์ด๋ ํ์ํ ์ ๋ณด๊ฐ ์๋ค๋ฉด?
→ ํด๋์ค ๋ฉ์๋
→ ์ธ์คํด์ค๊ฐ ํ๋๋ ์๋๋ผ๋ ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ฉด ํด๋์ค ๋ฉ์๋๋ก ๋ง๋ค์ด์ผ ํจ
โผโผโผ ํด๋์ค ๋ฉ์๋ ์์ด๋ ์ธ์คํด์ค ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํด๋์ค ๋ณ์๋ฅผ ๋ถ๋ฌ์ฌ ์ ์์
โผโผโผ ์ธ์คํด์ค๊ฐ ํ๋๋ ์๋๋ผ๋ ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ฉด ํด๋์ค ๋ฉ์๋๋ก ๋ง๋ค์ด์ผ ํจ
๋ฌธ์ ํ์ด. ์ ์ ์ธ์คํด์ค ์์ฑ์ ํ์ํ ์ ๋ณด๋ค ๋ฌธ์์ด์ผ ๊ฒฝ์ฐ, ๋ฆฌ์คํธ์ผ ๊ฒฝ์ฐ ์ธ์คํด์ค ์์ฑํ๊ธฐ
๐ ์ ์ ๋ฉ์๋(static method)
์ธ์คํด์ค ๋ณ์, ํด๋์ค ๋ณ์๋ฅผ ์ ํ ๋ค๋ฃจ์ง ์๋ ๋ฉ์๋
๋ฉ์๋ ์ ์ ์์ @staticmethod ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ํ์ํด์ผ ํจ
์ ์ ๋ฉ์๋๋ ์ธ์คํด์ค ๋ฉ์๋์ self๋ ํด๋์ค ๋ฉ์๋์ cls์ฒ๋ผ ์๋์ผ๋ก ์ ๋ฌ๋๋ ํ๋ผ๋ฏธํฐ๊ฐ ์์
์ ์ ๋ฉ์๋๋ ์ธ์คํด์ค, ํด๋์ค ๋ ๊ฐ์ง ๋ชจ๋๋ฅผ ํตํด ์ฌ์ฉํ ์ ์์
์ธ์คํด์ค ๋ณ์๋ ํด๋์ค ๋ณ์ ์ค ์๋ฌด๊ฒ๋ ์ฌ์ฉํ์ง ์์ ๋ฉ์๋์ผ ๊ฒฝ์ฐ ์ ์ ๋ฉ์๋๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ฉด ๋จ.
์ฆ, ์ด๋ค ์์ฑ์ ๋ค๋ฃจ์ง ์๊ณ , ๋จ์ง ๊ธฐ๋ฅ(ํ๋)์ ์ธ ์ญํ ๋ง ํ๋ ๋ฉ์๋๋ฅผ ์ ์ํ ๋ ์ ์ ๋ฉ์๋๋ก ์ ์