Python public attributes are better getter-setter
Last updated
Last updated
์ธํฐ์ ๊ฒํฐ ๋ฉ์๋ ๋์ ํ๋ฒํ ์ ํธ๋ฆฌ๋ทฐํธ๋ฅผ ์ฌ์ฉํ๋ผ
ํ์ด์ฌ์์ ๊ฒํฐ-์ธํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๊ณ , ๊ณต๊ฐ์ ์ ํธ๋ฆฌ๋ทฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐํธํ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ์.
ํ๋กํผํฐ ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ด์ฉํ ๋ค์ํ ์ฐ์ฐ์ ์ ์ฉํ ์ ํธ๋ฆฌ๋ทฐํธ๋ฅผ ๋ฐํํ์
Worst case
ํต์์ ์ธ ๊ฒํฐ-์ธํฐ๋ฅผ ์ฌ์ฉํ ์ฝ๋์ด์ง๋ง, ํ์ด์จ๋ํ์ง ์์ ์ฝ๋์ ์์์ด๋ค.
get - set๊ตฌ์กฐ์ ์ ํธ๋ฆฌํฐ ๋ฉ์๋๋ ์ฝ๋๋ฅผ ์ง์ ๋ถํ๊ฒ ํ๋ค. ํ์ง๋ง, ๊ธฐ๋ฅ์ ์บก์ํ ํ๋ ๊ฒฝ๊ณ๋ฅผ ์ค์ ํ๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์ ์์ฃผ ์ฌ์ฉ๋๋ค.
ํ์ด์ฌ์์๋ ์ ์ฒ๋ผ ์ฝ๋๋ฅผ ๊ตฌํํ ํ์๊ฐ ์ ํ ์๋ค.
Solution
๊ณต๊ฐ ์ ํธ๋ฆฌ๋ทฐํธ๋ฅผ ์ด์ฉํ๊ธฐ
์ ์ฝ๋๋ ์ ํธ๋ฆฌํฐ ๊ฒํฐ ์ธํฐ๋ฅผ ์ฌ์ฉํ์ง ์์ ์ฑ ๊ณต๊ฐ ์ ํธ๋ฆฌ๋ทฐํธ๋ฅผ ์ด์ฉํ๋ค. ์ฝ๋๊ฐ ๊ต์ฅํ ๊น๋ํด์ง๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๋ง์ฝ, ์ ํธ๋ฆฌ๋ทฐํธ๋ฅผ ์ค์ ํ ๋ ํน๋ณํ ๊ธฐ๋ฅ์ ์ํ ํด์ผ ํ๋ค๋ฉด ํ๋กํผํฐ ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ด์ฉ ํ ์ ์๋ค.
Best case - 1
property decorator ์ฌ์ฉ ํ์ฌ ๊ธฐ๋ฅ ์ํํ๊ธฐ
Best case - 2
Property๋ฅผ ํ์ฉ ํ์ฌ ๋ฐ์ดํฐ ๊ฒ์ฆํ๊ธฐ
๊ฒํฐ๋ ์ธํฐ๋ฅผ ์ ์ ํ ๋ ๊ฐ์ฅ ์ข์ ์ ์ฑ
๊ด๋ จ์ด ์๋ ๊ฐ์ฒด ์ํ๋ฅผ property setter
๋ฉ์๋ ์์์๋ง ๋ณ๊ฒฝ ํ๋ค.
๋ ๋ณต์กํ๊ฑฐ๋ ๋๋ฆฐ ์ฐ์์ ๊ฒฝ์ฐ์๋ ์ผ๋ฐ์ ์ธ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ผ.
I/O, DB DML
์๋ก์ด ํด๋์ค ์ธํฐํ์ด์ค๋ฅผ ์ ์ ํ ๋๋ ๊ฐ๋จํ ๊ณต๊ฐ ์ ํธ๋ฆฌ๋ทฐํธ์์ ์์ํ๊ณ , ์ธํฐ๋ ๊ฒํฐ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ง ๋ง๋ผ.
๊ฐ์ฒด์ ์ ๊ทผํ๋ ์ ํธ๋ฅ๋นํธ์ ํน์ ํ ๊ธฐ๋ฅ์ด ํ์ํ๋ค๋ฉด property decorator๋ฅผ ํ์ฉํ๋ผ.
property decorator๋ฅผ ๊ตฌ์ฑํ ๋ ๋ฉ์๋๊ฐ ๋น ๋ฅด๊ฒ ์คํ ๋๋๋ก ์ ์งํ๋ผ.