๐ป ๋ธ๋ผ์ฐ์ ๋๋๋ง ๊ณผ์
โ๏ธ ๋ธ๋ผ์ฐ์ ๋๋๋ง
๋ธ๋ผ์ฐ์ ๋๋๋ง ๊ณผ์ ์ด๋ ๋๋ฉ์ธ ์ฃผ์(์น ์ฃผ์)๋ฅผ ๋ธ๋ผ์ฐ์ ์ ์์ฒญํ ๋
ํด๋น html๊ณผ css, js๋ฅผ ๋ถ๋ฌ์์ ํ๋ฉด์ ํํํ๋ ๊ณผ์ ์ ๋งํฉ๋๋ค.
1. HTML ํ์ผ์ ํ์ฑ : ์น ๋ธ๋ผ์ฐ์ ์์ HTML ํ์ผ์ ์ฝ์ด์ค๊ณ ๊ตฌ์กฐ๋ฅผ ํด์ํ๋ ๊ณผ์ ์ ๋งํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ HTML๋ฌธ์๋ฅผ ํ์ฑํ๋ฉด DOM(Document object Model)ํธ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค. DOM์ ์น ํ์ด์ง์ ๊ตฌ์กฐ๋ฅผ ํํํ๋ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก, ๊ฐ ์์๋ ๋ ธ๋๋ก ํํ๋ฉ๋๋ค. 2. CSS ํ์ผ์ ํ์ฑ : HTML ๋ฌธ์๋ฅผ ํ์ฑํ ์ดํ์ CSS ํ์ผ์ ํ์ฑํ์ฌ CSSOM(CSS Object Model)ํธ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค. CSSOM์ ์คํ์ผ ๊ท์น์ ํํํ๋ ํธ๋ฆฌ๊ตฌ์กฐ๋ก ๊ฐ ์คํ์ผ ๊ท์น์ ๋ ธ๋๋ก ํํํฉ๋๋ค. 3. DOM๊ณผ CSSOM์ ๊ฒฐํฉ : ๋ธ๋ผ์ฐ์ ๋ DOM๊ณผ CSSOM์ ๊ฒฐํฉํ์ฌ Render Tree(๋ ๋ํธ๋ฆฌ)๋ฅผ ์์ฑํฉ๋๋ค. ๋ ๋ ํธ๋ฆฌ๋ ํ๋ฉด์ ํ์๋๋ ์์๋ค๋ง ๊ตฌ์ฑ๋ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก, ๊ฐ ์์๋ ํ๋ฉด์ ์ด๋ป๊ฒ ๋ฐฐ์น๋ ์ง ๊ฒฐ์ ํ๋ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. 4. ๋ ์ด์์ : ๋ ๋ ํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ธ๋ผ์ฐ์ ๋ ๊ฐ ์์์ ํฌ๊ธฐ์ ์์น๋ฅผ ๊ณ์ฐํด์ ๋ ์ด์์์ ์์ ํฉ๋๋ค. ์ด ๊ณผ์ ์์ ๊ฐ ์์์ ํฌ๊ธฐ, ์์น, ์ฌ๋ฐฑ, ์์ ๋ฑ์ด ๊ณ์ฐ๋๊ณ ๋ ์ด์์์ ํ๋ฉด์ ๋ณด์ฌ์ง๋ ๋ชจ์ต์ ๊ทธ๋ ค์ฃผ๋ ๊ณผ์ ์ผ๋ก ๊ต์ฅํ ์ค์ํ ๊ณผ์ ์ ๋๋ค. 5. ํ์ธํ : ๋ ์ด์์์ด ์์ฑ๋๋ฉด ๋ธ๋ผ์ฐ์ ๋ ํ๋ฉด์ ๋ณด์ฌ์ง ์์๋ค์ ํ์ธํ ํ์ฌ ์ค์ ํ๋ฉด์ ํ์ํฉ๋๋ค. ์ด ๊ณผ์ ์์ ๊ฐ ์์์ ์์, ํ ์คํธ, ์ด๋ฏธ์ง ๋ฑ์ด ํ๋ฉด์ ๊ทธ๋ ค์ง๋ฉฐ, ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ ์ต์ข ๊ฒฐ๊ณผ๋ฌผ์ด ๋์ต๋๋ค.
๐ฅ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ์ ๋ ฅ ์ ์ฃผ์์ฌํญ (= ์ฝ๋ฉ ์ปจ๋ฒค์ / ์ฝ๋ฉ ์คํ์ผ)
1. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋/์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ฌ ์์ฑํด์ผ ํฉ๋๋ค. ex) document.write('๋ฌธ์') => O ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ Document.Write('๋ฌธ์') => X ํ๋ฆฐ ๋ฌธ๋ฒ 2. ์ฝ๋๋ฅผ ํ ์ค ์์ฑํ ํ์๋ ;์ผ๋ก ๋ง๋ฌด๋ฆฌํฉ๋๋ค. ๋ง์ฝ ์ธ๋ฏธ์ฝ๋ก ์ ์ฐ์ง ์๊ณ ํ ์ค์ ๋ ์ค์ ๋ฌธ์ฅ์ ์ธ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ex) document.write('๋ฌธ์'); => O ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ document.write('๋ฌธ์') document.write('๋ฌธ์') => X ํ๋ฆฐ ๋ฌธ๋ฒ 3. ๋ฌธ์ํ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ๋์๋ ""(ํฐ๋ฐ์ดํ)์ ''(์์๋ฐ์ดํ)๋ก ๋ฌธ์๋ฅผ ๊ฐ์ธ์ผ ํ๊ณ ๋ฐ์ดํ์ ๊ฒน์นจ ์ค๋ฅ๋ฅผ ์ฃผ์ํด์ผ ํฉ๋๋ค. ex) document.write('hello "๊น๋ก๋ก" world'); => O ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ ex) document.write("hello '๊น๋ก๋ก' world"); => O ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ ex) document.write('hello \'๊น๋ก๋ก'\ world'); => O ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ => \ : ์ญ์ฌ๋์ฌ, ๋ณดํต ์ํฐ ์์ ์๋ ์ํํ์ (๏ฟฆ) \๋ฅผ ๊ธฐํธ ์์ ๋ถ์ฌ์ฃผ๋ฉด ๋ฌธ์์ ์์๊ณผ ๋์ ๊ตฌ๋ถํ๋ ๋ฐ์ดํ๊ฐ ์๋๋ผ ๊ทธ ๋ค์ ๊ธฐํธ๋ฅผ ๋จ์ํ ๋ฌธ์๋ก ์ฒ๋ฆฌํฉ๋๋ค. ์ฆ, \ ๋ค์์ ๋ฑ์ฅํ๋ ๊ธฐํธ๋ฅผ ๋จ์ ๋ฌธ์์ฒ๋ฆฌ ํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ex) document.write('hello '๊น๋ก๋ก' world'); => X ํ๋ฆฐ ๋ฌธ๋ฒ ex) document.write("hello "๊น๋ก๋ก" world"); => X ํ๋ฆฐ ๋ฌธ๋ฒ ex) document.write("hello '๊น๋ก๋ก" world'); => X ํ๋ฆฐ ๋ฌธ๋ฒ 4. ์ฝ๋๋ฅผ ์์ฑํ ๋์๋ {}๋ ()๋ []์ ์ง์ด ๋ง์์ผ ํ๋ค. ex) document.write(] => X ํ๋ฆฐ ๋ฌธ๋ฒ ex) document.write() => O ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ
โ๏ธ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฃผ์ ๊ธฐํธ
1. // : ํ ์ค ์ฃผ์์ ๋๋ค. ํ ์ค ์ง๋ฆฌ ์งง์ ์ฃผ์์ ์ ๋ ฅํ ๋ ์ฌ์ฉํฉ๋๋ค. ๋ง์ฝ ๋ค์์ค๋ก ๋์ด๊ฐ๋ ์ฃผ์์ด ์๋ค๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. 2. /**/ : ์ฌ๋ฌ ์ค์ ์์ฑํ ์ ์๋ ์ฃผ์ ์ ๋๋ค. ๋ ์ค ์ด์์ ๊ธด ์ฃผ์์ ์ ๋ ฅํ ๋ ์ฌ์ฉํฉ๋๋ค.
๐ ์๋ฐ์คํฌ๋ฆฝํธ์ ์๊ณผ ๋ฌธ
์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด์ ํฐ ์ค๊ธฐ๋ '์'๊ณผ '๋ฌธ'์ ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์์ '์'์ 'ํํ์'์ด๋ผ๊ณ ๋ ํ๋๋ฐ, ์ฐ์ฐ์๋ฟ๋ง ์๋๋ผ ์ค์ ์ซ์๊ฐ์ด๋ ํจ์๋ฅผ ์คํํ๋ ๊ฒ๋ ์์ ํฌํจ๋ฉ๋๋ค.
์ฆ, ์ด๋ค ๊ฐ์ ๋ง๋ค์ด ๋ผ ์ ์๋ค๋ฉด ๋ชจ๋ '์'์ด ๋ ์ ์๊ณ , '์'์ '๋ณ์'๋ผ๋ ๊ฒ์ ์ ์ฅ๋ฉ๋๋ค.
'๋ฌธ'์ ๋ช ๋ น์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.๋ฌธ์ ๋์๋ ;์ ๋ถ์ฌ ๊ตฌ๋ถํฉ๋๋ค.
โ ๋ธ๋ผ์ฐ์ ์ ์ฝ์์ฐฝ ํ์ฉํ๊ธฐ
๋ธ๋ผ์ฐ์ ์ ๊ฐ๋ฐ์๋๊ตฌ ์์๋ '์ฝ์'์ด๋ผ๋ ๋ฉ๋ด๊ฐ ์์ต๋๋ค.
์ฝ์์ฐฝ์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋์์ด๋ ๊ณ์ฐ์์ ์ ์ํํ๊ณ ์๋์ง ์คํํด๋ณด๋ ์คํ์ฐฝ์ ๋๋ค.
์ฝ์์ฐฝ์ ์คํํด๋ณด๋๋ก ๋ช ๋ น์ ๋ด๋ฆฌ๋ ค๋ฉด ์๋์ ๊ฐ์ด ์๋๋ค.
[๊ธฐ๋ณธํ] console.log(์คํํ ๊ฐ)
โ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ง์ด ์ฐ๋ ๋ฌธ์ฅ
๋ธ๋ผ์ฐ์ ์ body ์์ญ์ ์ฐ์ฐ์์ ๊ฒฐ๊ณผ๋ ๋ฌธ์ฅ์ ์ถ๋ ฅํ์ฌ ๋ณด๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ ๋ฌธ์ฅ์ผ๋ก
document.write()๋ผ๋ ๋ฌธ์ฅ์ด ์์ต๋๋ค.
document๋ html๋ฌธ์๋ฅผ ๋ปํ๊ณ , .write()๋ '๋ฌธ์๋ฅผ ์จ๋ผ'๋ผ๋ ๋ฌธ์ฅ์ ๋๋ค.
์ฆ, ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ ๋ฌธ์ฅ์ ๋๋ค.
โญ ๋ณ์
๋ณ์๋ ๋ณํ๋ ๊ฐ์ ์ ์ฅํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋๋ค.
๋ฐ์ดํฐ๋ฅผ ๋ด๋ ๊ทธ๋ฆ์ด๋ฆฌ๊ณ ํ ์ ์์ต๋๋ค.
๋ณ์์๋ ๋ฐ์ดํฐ๊ฐ ์ค์ง ํ ๊ฐ๋ง ์ ์ฅ๋ฉ๋๋ค.
๋ง์ฝ ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค๋ฉด ๊ธฐ์กด์ ์๋ ๋ฐ์ดํฐ๋ ์ฌ๋ผ์ง๊ณ ๋ง์ง๋ง์ ๋ค์ด์จ ๋ฐ์ดํฐ๋ง ๋จ์ต๋๋ค.
๋ณ์์ ์ ์ฅํ ์ ์๋ ๋ฐ์ดํฐ์ ์ข ๋ฅ๋ก๋
๋ฌธ์ํ (string), ์ซ์ํ(Number), ๋ ผ๋ฆฌํ(Boolean) ๋ฐ์ดํฐ์, ๋น(Null)๋ฐ์ดํฐ, undefined๋ฐ์ดํฐ๊ฐ ์์ต๋๋ค.
โ๏ธ ๋ณ์ ์ ์ธ
๋ณ์๋ฅผ ์ฌ์ฉํ ์ค๋น๋ฅผ ํ๋ ๊ณผ์ ์ '๋ณ์ ์ ์ธ'์ด๋ผ๊ณ ํฉ๋๋ค.
๋ณ์๋ฅผ ์ ์ธํ ๋์๋ var, let, const๋ผ๋ ํค์๋๋ฅผ ๋ณ์๋ช ์์ ๋ถ์ฌ์ค๋๋ค.
๋ณ์๋ช ์๋ ์๋ฌธ๊ณผ ์ซ์, ๊ทธ๋ฆฌ๊ณ ์ผ๋ถ ํน์๋ฌธ์(_, $)๋ง ํฌํจํ ์ ์์ต๋๋ค.
๋ณ์๋ช ์ ์ง์ ๋์๋ ์๋ฏธ์ ๋ง๊ฒ ๋ง๋๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ง์ฝ ๋ณ์๋ช ์ด ๋จ์ด์ ๋จ์ด์ ์กฐํฉ์ผ๋ก ๋์ด ์๋ค๋ฉด ๋๋ฒ์งธ ๋จ์ด์ ์ฒซ ๊ธ์๋ ๋๋ฌธ์๋ก ์จ์ฃผ๋ ๊ฒ์ด ์์น์ ๋๋ค.
์๋ฅผ ๋ค์ด var userName = '๊น๋ก๋ก'; ์ด๋ฐ์์ผ๋ก ์ด๋ฆ์ ์ง๋๋ค๋ฉด ๋๋ฒ์งธ ๋จ์ด์ ์ฒซ๊ธ์๊ฐ ๋๋ฌธ์๋ก ์์ฑ๋์๊ธฐ ๋๋ฌธ์
๋ง์น ๋ํ์ ๋ฑ๋ชจ์๊ณผ ๋น์ทํ๋ค๊ณ ํ์ฌ '์นด๋ฉ ํ๊ธฐ๋ฒ' ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
๋ var user_name ์ด๋ฐ์์ผ๋ก ์ด๋ฆ์ ์ง๋๋ค๋ฉด ๋ง์น ๋ชจ์์ด ๋ฑ๊ณผ ๋น์ทํ๋ค๊ณ ํ์ฌ '์ค๋ค์ดํฌ ํ๊ธฐ๋ฒ'์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
์ด๋ ๊ฒ ์ด๋ฆ์ ๊ท์น์ ๋ฐ๋ผ ์ง๋ ๊ฒ์ '์ฝ๋ฉ ์ปจ๋ฒค์ '์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
[๊ธฐ๋ณธํ] 1. var ๋ณ์๋ช = ๊ฐ; : ๋ณ์์ ์ด๊ธฐ ๊ฐ์ ๋ฃ์ด ์ด๊ธฐํ ํ ์ํ์ ๋๋ค. 2. var ๋ณ์๋ช ; : ๋ณ์๋ฅผ ๋ง๋ค์ด๋ ์ํ์ ๋๋ค.
๐จ๏ธ ์์ผ๋ก ์ง์ ๊ณต๋ถํ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์์ฑํ ๊ธ์ด๋๋๋ค !
โ๏ธ
์์ผ๋ก๋ ์ด์ฌํ ๊ณต๋ถํด์ ๋ง์ ๋ด์ฉ์ ๊ณต์ ํ๊ฒ ์ต๋๋ค :)