2022๋ ์ ๊ฐ๋ฐ์์ ๊ธธ๋ก ๋ค์ด์๋ฉฐ ์๋ฐ๊ธฐ ํ๊ณ ๋ก
findViewById๋ฅผ '์ง์'ํด์ผ ํ๋ ์ด์ ์ View Binding์ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ ๋ฐฉ์์ ๋ํ์ฌ
0. ๋น์ฆ๋์ค ์ ๋๋ฆฌํฑ์ค์ ๋ํ ์ ๋ฐ์ ์ธ ๊ฐ์ ๋ฐ ์๋ฆฌ์ฆ ์๊ฐ
ํด๋ก์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ณ ์ ์ ๊ฐ๋ ์ด ์๋๋ค. ํจ์๋ฅผ ์ผ๊ธ ๊ฐ์ฒด๋ก ์ทจ๊ธํ๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฌ์ฉ๋๋ ์ค์ํ ํน์ฑ์ด๋ค.ํด๋ก์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ณ ์ ๊ฐ๋ ์ด ์๋๋ฏ๋ก, ํด๋ก์ ์ ๊ดํ ์ ์๊ฐ ECMAScript ์ฌ์์ ๋ฑ์ฅํ์ง ์๋๋ค.MDN์์๋ ํด๋ก์ ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด
์คํ ์ปจํ ์คํธ(execution context)๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋์ ์๋ฆฌ๋ฅผ ๋ด๊ณ ์๋ ํต์ฌ ๊ฐ๋ ์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์ค์ฝํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก์๋ณ์์ ์๋ณ์์ ๋ฐ์ธ๋ฉ๋ ๊ฐ(์๋ณ์ ๋ฐ์ธ๋ฉ)์ ๊ด๋ฆฌํ๋ ๋ฐฉ์๊ณผ ํธ์ด์คํ ๋ฐ์ ์ด์ , ํด๋ก์ ๋์ ๋ฐฉ์ ๋ฑ์ ์คํ ์ปจํ ์คํธ๋ฅผ ํตํด ์ดํด
strict mode(์๊ฒฉ ๋ชจ๋)๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด์ ๋ฌธ๋ฒ์ ์ข ๋ ์๊ฒฉํ ์ ์ฉํ์ฌ ์ค๋ฅ๋ฅผ ๋ฐ์์ํฌ ๊ฐ๋ฅ์ฑ์ด ๋๊ฑฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ต์ ํ ์์ ์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ ์ฝ๋์ ๋ํด ๋ช ์์ ์ธ ์๋ฌ๋ฅผ ๋ฐ์์ํจ๋ค.stirct mode๊ฐ ๋ฌธ๋ฒ์ ์ข ๋ ์๊ฒฉํ ์ ์ฉํ๋ค๊ณ
1) ํ์ค ๋นํธ์ธ ๊ฐ์ฒด : ECMAScript ์ฌ์์ ์ ์๋ ๊ฐ์ฒด, ์ ํ๋ฆฌ์ผ์ด์ ์ ์ญ์ ๊ณตํต ๊ธฐ๋ฅ ์ ๊ณต, ์๋ฐ์คํฌ ๋ฆฝํธ ์คํ ํ๊ฒฝ๊ณผ ๊ด๊ณ์์ด ์ฌ์ฉํ ์ ์์. ํ์ค ๋นํธ์ธ ๊ฐ์ฒด๋ ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ก์ ์ ๊ณต. ๋ณ๋ ์ ์ธ ์์ด ์ ์ญ ๋ณ์์ฒ๋ผ ์ธ์ ๋ ์ฐธ์กฐ ๊ฐ๋ฅ2)
์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ช ๋ นํ, ํจ์ํ, ํ๋กํ ํ์ ๊ธฐ๋ฐ, ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ง์ํ๋ ๋ฉํฐ ํจ๋ฌ๋ค์ ์ธ์ด์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฒฝ์ฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํน์ง์ธ ์ ๊ทผ ์ ํ์(public, private, prtected ๋ฑ)๊ฐ ์์ด์ ๊ฐ์ฒด์งํฅ ์ธ์ด๊ฐ ์๋๋ผ๊ณ ์๊ฐํ ์ ์
๋ค์๊ณผ ๊ฐ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ฒด๋ฅผ ์ผ๊ธ ๊ฐ์ฒด๋ผ๊ณ ํ๋ค.1) ๋ฌด๋ช ์ ๋ฆฌํฐ๋ด๋ก ์์ฑํ ์ ์๋ค. ์ฆ, ๋ฐํ์์ ์์ฑ์ด ๊ฐ๋ฅํ๋ค.2) ๋ณ์๋ ์๋ฃ๊ตฌ์กฐ(๊ฐ์ฒด, ๋ฐฐ์ด ๋ฑ)์ ์ ์ฅํ ์ ์๋ค.3) ํจ์์ ๋งค๊ฐ๋ณ์์ ์ ๋ฌํ ์ ์๋ค.4) ํจ์์ ๋ฐํ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.์๋ฐ์ค
new ์ฐ์ฐ์์ ํจ๊ป Object ์์ฑ์ ํจ์๋ฅผ ํธ์ถํ๋ฉด ๋น ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ๋ฐํํ๋ค. ๋น ๊ฐ์ฒด ์์ฑ ํ ํ๋กํผํฐ ๋๋ ๋ฉ์๋๋ฅผ ์ถ๊ฐํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค.์์ฑ์ ํจ์(constructor)๋ new ์ฐ์ฐ์์ ํจ๊ป ํธ์ถํ์ฌ ๊ฐ์ฒด(์ธ์คํด์ค)๋ฅผ ์์ฑํ๋ ํจ์๋ฅผ ๋งํ๋ค
๋ด๋ถ ์ฌ๋กฏ๊ณผ ๋ด๋ถ ๋ฉ์๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๊ตฌํ ์๊ณ ๋ฆฌ์ฆ์ ์ค๋ช ํ๊ธฐ ์ํด ECMAScript ์ฌ์์์ ์ด์ฉํ๋ ์์ฌ ํ๋กํผํฐ(pseudo property)์ ์์ฌ ๋ฉ์๋(pseudo method)๋ค.๋ด๋ถ ์ฌ๋กฏ๊ณผ ๋ด๋ถ ๋ฉ์๋์ ๊ฒฝ์ฐ ECMAScript ์ฌ์์ ์ ์๋
์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์ ๊ณตํ๋ 7๊ฐ์ง ๋ฐ์ดํฐ ํ์ (์ซ์, ๋ฌธ์์ด, ๋ถ๋ฆฌ์ธ, null, undefined, ์ฌ๋ฒ, ๊ฐ์ฒด ํ์ )์ ํฌ๊ฒ ์์ํ์ ๊ณผ ๊ฐ์ฒดํ์ ์ผ๋ก ๊ตฌ๋ถํ ์ ์๋ค.์์ ํ์ ์ ๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ์ผ๋ก ๋ณ์์ ํ ๋นํ๋ฉด ๋ณ์(ํ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ)์๋ ์ค์ ๊ฐ์ด ์ ์ฅ๋๋ค
๋ณธ ์ฅ์ ์๋ฐ์คํฌ๋ฆฝํธ ํจ์์ ๊ฐ๋ ์ ์ดํดํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค.ํจ์๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ฐ์ฅ ์ค์ํ ํต์ฌ ๊ฐ๋ ์ด๋ค. ์ค์ฝํ, ์คํ ์ปจํ ์คํธ, ํด๋ก์ , ์์ฑ์ ํจ์์ ์ํ ๊ฐ์ฒด ์์ฑ, ๋ฉ์๋, this. ํ๋กํ ํ์ , ๋ชจ๋ํ ๋ฑ ์ค์ํ ๊ฐ๋ ๋ค์ด ๋ชจ๋ ํจ์์ ๊น์ ๊ด๋ จ์ด ์๊ธฐ
์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ฐ์ฒด ๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๊ณ , ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ด ๊ฐ์ฒด์ด๋ค. ์์๊ฐ์ ์ ์ธํ ๋๋จธ์ง ๊ฐ(ํจ์, ๋ฐฐ์ด, ์ ๊ท ํํ์ ๋ฑ)์ ๋ชจ๋ ๊ฐ์ฒด์ด๋ค.๊ฐ์ฒด๋ 0๊ฐ ์ด์์ ํ๋กํผํฐ๋ก ๊ตฌ์ฑ๋ ์งํฉ์ด๋ฉฐ, ํ๋กํผํฐ๋ ํค์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋๋ค.์ฌ๊ธฐ์ "name
์ฐ์ฐ์๋ ํ๋ ์ด์์ ํํ์์ ๋์์ผ๋ก ์ฐ์ , ํ ๋น, ๋น๊ต, ๋ ผ๋ฆฌ, ํ์ , ์ง์ ์ฐ์ฐ, ๋ฑ์ ์ํํด ํ๋์ ๊ฐ์ ๋ง๋ ๋ค. 1. ์ฐ์ ์ฐ์ฐ์ 1) ์ดํญ ์ฐ์ ์ฐ์ฐ์ > ์ดํญ ์ฐ์ ์ฐ์ฐ์๋ 2๊ฐ์ ํผ์ฐ์ฐ์๋ฅผ ์ฐ์ ์ฐ์ฐํ์ฌ ์ซ์ ๊ฐ์ ๋ง๋ ๋ค. ๋ชจ๋ ์ดํญ ์ฐ์ ์ฐ์ฐ์๋ ํผ์ฐ
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฒฝ์ฐ ๋ณ์๋ฅผ ์ ์ธํ ๋ var, let, const ํค์๋๋ฅผ ์ฌ์ฉํ๋ค.ES6 ์ด์ ๋ถํฐ๋ ๋ณ์ ์ ์ธ์ ์ค๋ก์ง var ํค์๋๋ง์ ์ด์ฉํ๋ค๊ณ ํ๋ค.๊ทธ๋ ๋ค๋ฉด ๋ณ์ ์ ์ธ์ var ์ธ์ let, const๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๊ฐ ์์๊น?varํค์๋๋ ์ฌ๋ฌ ๋จ์ ์
Activity ์๋ช ์ฃผ๊ธฐ onDestory์ ๊ดํ์ฌ