์คํ ๋ฆฌ์ง vs ๋ฉ๋ชจ๋ฆฌ
์คํ ๋ฆฌ์ง : ์ ์ฅ๊ณต๊ฐ์ ํฌ์ง๋ง, ์ ์ฅํ๊ฑฐ๋ ๊ฐ์ ธ์ค๋๋ฐ์ ์๋ ๋ง์ด ๊ฑธ๋ฆผ ( ์ฐฝ๊ณ )
๋ฉ๋ชจ๋ฆฌ : ์ ์ฅ๊ณต๊ฐ์ ์์ง๋ง, ์ ์ฅํ๊ฑฐ๋ ๊ฐ์ ธ์ค๋๋ฐ์ ์๋ ์ ๊ฒ ๊ฑธ๋ฆผ ( ์ฑ
์ ์๋ )
์๋ฃ๊ตฌ์กฐ์์๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ดํ ๋ด์ฉ์ ์ฃผ๋ก ๋ค๋ฃฌ๋ค.
RAM ์ด๋?
Random Access Memory(์์ ์ ๊ทผ ๋ฉ๋ชจ๋ฆฌ)
์์ ์ ๊ทผ : ์ ์ฅ ์์น์ ์๊ด ์์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ๋ ํญ์ ์ผ์ ํ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ 1๋ฒ์ง์ด๋ , 145924๋ฒ์ง ์ด๋ ์๊ด์์ด ์ ๊ทผ ์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ํญ์ ๋์ผํ๋ค.
์ฆ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ ๋ฐ์ดํฐ ์ ๊ทผ ์๊ฐ๋ณต์ก๋๋ O(1) ์ด๋ค.
์์ฐจ์ ๊ทผ ( ์์์ ๊ทผ)
์์ฐจ์ ๊ทผ์ ์๋ ์ ์ฐ๋ ๋น๋์คํ
์ดํ๋ฅผ ์๊ฐํ๋ฉด ๋๋ค. ํน์ ์์น๊น์ง ๊ฐ๋ ค๋ฉด ์ฒ์๋ถํฐ ํด๋น ์์น๊น์ง ๋น๋์ค๋ฅผ ๋นจ๋ฆฌ๊ฐ๊ธฐํด์ ์์ฐจ์ ์ผ๋ก ์ ๊ทผํด์ผ ํ๋ค. ๋น์ฐํ ์์์ ๊ทผ๋ณด๋ค ๋นํจ์จ์ ์ด๋ค.
๋ฉ๋ชจ๋ฆฌ์ ๊ธฐ๋ณธ ๋จ์
๋ฉ๋ชจ๋ฆฌ๋ ํ๋์ ๊ธด ๋ ๋ก ํํํ ์ ์๋๋ฐ, ์ด ๋ฉ๋ชจ๋ฆฌ ๋ ํ ์นธ์ด ์ ์ฅํ ์ ์๋ ๊ธฐ๋ณธ๋จ์๋ byte ์ด๋ค.
ํ์ด์ฌ์์ ๋ณ์ ํ ๋น์ C์ธ์ด์ ๋ค๋ฅด๋ค
num = 5
print(num+5) # 10
Python
๋ณต์ฌ
ํ์ด์ฌ์ C์ธ์ด์ ๋ค๋ฅด๊ฒ ๋ชจ๋ ๋ณ์๊ฐ ํฌ์ธํฐ(๋ ํผ๋ฐ์ค)์ด๋ค.
ํ์ด์ฌ ๊ธฐ์ค์ผ๋ก num=95 ๋ฌธ์ฅ์ num ์ 95 ๋ผ๋ ๊ฐ์ด ๋ค์ด์ค๋ ๊ฒ ์๋๋ผ, 95 int object๊ฐ ์์ฑ๋ ํ 95๊ฐ ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๊ฐ ๋ค์ด์จ๋ค.
๊ทธ๋ ์ง๋ง, ์ด num ์ ์ฌ์ฉํ ๋์๋ num ๊ฐ์ ์ฃผ์๊ฐ์ด ๋ค์ด์ค๋ ๊ฒ ์๋๋ผ ํ์ด์ฌ์ด ์์์ ์ฃผ์๋ฅผ ์ฐธ์กฐํด์ ์ ์ฅ๋ ๊ฐ์ ๋ฐ์์จ๋ค.
>>> a = 1
>>> b = 1
>>> print(id(a),id(b))
140338459240752 140338459240752
>>> a = 2
>>> print(id(a),id(b)) # a ๋ b ๋ณ์๋ฅผ ์ฌ์ฉํ ๋์๋ ์ง์ ๋ ๊ฐ์ ๋ฐ์์ค๋ฏ๋ก ์ค์ a,b์ฃผ์๋ฅผ ์ ์๋ ์๋ค.
140338459240784 140338459240752
>>> print(id(2), id(1))
140338459240784 140338459240752
Python
๋ณต์ฌ
a์ b ๋ ๊ฐ์ ์ ์๊ฐ์ฒด(1) ๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ์์ง๋ง, a ๊ฐ 2๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ๋๋ฉด a ์๋ 2 ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ๋ด๊ธฐ๊ธฐ ๋๋ฌธ์ a ์ ๋ด๊ธด ์ฃผ์๊ฐ์ด ๋ฌ๋ผ์ง๋ค.
์ด์ ๊ฐ์ด ๋ณ์๊ฐ ๋์ํ๋ ์ํฉ์์ ์ฃผ์ํด์ผ ํ ์ ์ด ํ๋ ์๋๋ฐ, ๊ฐ์ ๊ฐ์ ๊ฐ์ก๋ค๊ณ ํด์ ๋ชจ๋ ๋์ผํ object๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ์ ์๋๋ผ๋ ๊ฒ์ด๋ค. (๋ฌผ๋ก ๊ฐ์ object๋ฅผ ๊ฐ๋ฆฌํฌ ์๋ ์๋ค. -5 ~ 256 ์ฌ์ด์ ์ซ์ ๊ฐ์ฒด๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฏธ๋ฆฌ ํ ๋น๋์ด ์๊ณ , ํญ์ ๋์ผํ id ๋ฅผ ๊ฐ์ง๋ค. )
>>> a = 12345
>>> b = 12345
>>> id(a)
23564368
>>> id(b)
23564584 # a ์ b ๋๋ค ๊ฐ์ ๊ฐ(12345) ์ง๋ง ๊ฐ์ฒด๋ ๋ค๋ฅธ ๊ฐ์ฒด์ด๋ค.
>>> a is b # ๊ฐ์ฒด ๋น๊ต
False
>>> a == b # ๊ฐ ๋น๊ต
True
Python
๋ณต์ฌ
๋ด๊ฐ ๋ด๋ฆฐ ๊ฒฐ๋ก ์ ํ์ด์ฌ์ ๋ณ์์ ๊ฐ์ด ๋ค์ด์ค๋ ๊ฒ์ด ์๋๋ผ, ๊ฐ์ฒด์ ๋ณ์ ๊ผฌ๋ฆฌํ๊ฐ ๋ฌ๋ฆฐ๋ค๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ๊ฐ๋ค.
์ฐธ๊ณ : https://copycode.tistory.com/55
JS ์ immuatable ๊ฐ์ฒด์ mutalbe ๊ฐ์ฒด ์ ๊ฐ์ ๋ฉ์ปค๋์ฆ์ด๋ค.
๊ฐ โ ๊ฐ์ฒด