๐ ์นํ์ด์ง๊ฐ ๋ธ๋ผ์ฐ์ ์ ๋๋๋ง๋๋ ๊ณผ์
HTML ํ์ฑ - DOM ํธ๋ฆฌ ๊ตฌ์ถ - CSS ํ์ฑ - Render ํธ๋ฆฌ ๊ตฌ์ถ - ๋ ์ด์์ - ํ์ธํธ - ๋ฐ์์ฑ ๋ฐ ์ํธ์์ฉ
1. HTML ํ์ฑ
- ๋ธ๋ผ์ฐ์ ๊ฐ html ํ์ผ์ ๋๋๋ง ํ๋ ๊ฒฝ์ฐ๋ ์ธ์ ์ผ๊น?
๋ธ๋ผ์ฐ์ ์ ์ฌ์ดํธ ์ฃผ์๋ฅผ ์ ๋ ฅํ๊ฒ ๋๋ฉด, ์ฃผ์์ ์๋ ์๋ฒ๊ฐ ์ฝ์๋์ด ์๋ html ํ์ผ์ ๋ธ๋ผ์ฐ์ ๋ก ์ ์กํ๊ฒ ๋๋ค.
์ด๋, html ์ฝ๋๋ 8๋นํธ์ ๋ฐ์ดํฐ ํํ๋ก ์ ์ก๋๋ค.(=๋ฐ์ดํธ ์คํธ๋ฆผ)
๋ฐ์ดํธ๋ฅผ ๋ฌธ์๋ก ๋ณํํ๊ณ ๊ฐ์ง๊ณ ์๋ ํ ํฐ๊ณผ ๋น๊ต๋ฅผ ํด์ ํด๋น ๋ฌธ์๊ฐ html ์ฝ๋์ธ์ง ํ์ธํ๋ค.(ํ ํฐํ ๊ณผ์ ) ํ ํฐ์ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋์ด ์๋ html์ ์์ ํน์ ์ข ๋ฃ ํ๊ทธ ๊ทธ๋ฆฌ๊ณ ์์ฑ๊ณผ ์์ฑ ๊ฐ ๋ฑ ์ฝ์๋ ์ฌ๋ฌ๊ฐ์ง ๊ฐ๋ค์ ์๋ฏธํ๋ค.
2. DOM ํธ๋ฆฌ ๊ตฌ์ถ
์ ํ ํฐํ ๊ณผ์ ์ ํตํด ๋ ธ๋๊ฐ ์์ฑ๋๋ค. ๋ ธ๋๋ DOM ํธ๋ฆฌ๋ฅผ ์ด๋ฃจ๋ ๊ฑฐ๋ํ ๊ตฌ์กฐ์ ํ ๋จ์๋ฅผ ๋งํ๋ค. ์์ ๋ ธ๋๋ค์ด ๋ชจ์ฌ์ ํ๋์ ๊ฑฐ๋ํ ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ด๋ฃจ๊ฒ ๋๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ DOM ํธ๋ฆฌ๋ฅผ ์์ฑํ ๋, link์ img ํ๊ทธ๋ฅผ ๋ง๋๊ฒ ๋๋ฉด ํด๋น ํ๊ทธ ์์ ๋ช ์๋์ด ์๋ ๋ฆฌ์์ค๋ฅผ ๋ค์ด ๋ฐ๋๋ค.
script ํ๊ทธ๋ฅผ ๋ง๋๊ฒ ๋๋ฉด ๋ ์์ฑ์ ์ค๋จํ๊ณ ์คํฌ๋ฆฝํธ ํ๊ทธ ์์ ๋ค์ด์๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ํด์ํ๋ค.
3. CSS ํ์ฑ
๋ธ๋ผ์ฐ์ ๋ก ์ ๋ฌ๋ฐ์ CSS ํ์ผ์ ๋ฌธ์๋ก ํด์ํ๊ณ ๊ฐ์ง๊ณ ์๋ ํ ํฐ๊ณผ ๋น๊ต๋ฅผ ํด์ ๋ ธ๋๋ฅผ ๋ฐํํ๋ค. ๋ ธ๋๋ค์ด ๋ชจ์ฌ์ CSS object ๋ชจ๋ธ. ์ฆ, CSSOM Tree๋ฅผ ์์ฑํ๋ค.
4. Render ํธ๋ฆฌ ๊ตฌ์ถ
DOM ํธ๋ฆฌ์ CSSOM ํธ๋ฆฌ๋ฅผ ํฉ์ณ์ ๋ ๋ ํธ๋ฆฌ๋ฅผ ์์ฑํ๋ค. (์ด๋ฅผ ํฌ๊ฒ ๋ ์ด์์ ๋จ๊ณ๋ผ๊ณ ํํํ๊ธฐ๋ ํ๋ค.) Render ํธ๋ฆฌ๋ ํ๋ฉด์ ํ์๋๋ ์์๋ค๊ณผ ๊ทธ๋ค์ ์คํ์ผ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ํธ๋ฆฌ ๊ตฌ์กฐ์ด๋ค. ํ์ง๋ง, ์ผ๋ถ ์์๋ ๋ ๋๋ง์ ํฌํจ๋์ง ์์ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ์คํ์ผ์ "display: none"์ด ์ง์ ๋ ์์๋ ๋ ๋ ํธ๋ฆฌ์ ํฌํจ๋์ง ์๋๋ค.
5. ๋ ์ด์์ (๋ฆฌํ๋ก์ฐ)
์์ ๋ง๋ค์ด์ง DOM ํธ๋ฆฌ์ ๊ณ์ฐ๋ ์คํ์ผ์ ๋ฐ๋ผ๊ฐ๋ฉด์ ์์์ ํฌ๊ธฐ๋ ์ขํ์ ๊ฐ์ ์ ๋ณด๋ฅผ ๋ด์ ๋ ์ด์์ ํธ๋ฆฌ๋ฅผ ์์ฑํ๊ฒ ๋๋ค.
* ๋ฆฌํ๋ก์ฐ : css๋ฅผ ์์ ํด์ ํ๋ฉด์ ๋ณด์ฌ์ง๋ ๋ ์ด์์์ด ๋ณ๊ฒฝ๋๋ค๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ๋ ์ด์์์ ๋ค์ ์์ฑํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ๋จ๊ผ์ธ ํ์ธํธ ๋จ๊ณ๋ก ๋์ด๊ฐ๋ค. ๋ฐ๋ผ์ ๋ ์ด์์์ด ์ค๊ฐ์ ๋ณ๊ฒฝ๋๋ ๊ฒ์ ๋ธ๋ผ์ฐ์ ์ ๋ถ๋ด์ด ๋๋ ์์ ์ด๋ค.
๋ฆฌํ๋ก์ฐ์ ๋ฆฌํ์ธํธ๊ฐ ๋ฐ๋์ ์์ฐจ์ ์ผ๋ก ๋์์ ์คํ๋์ง๋ ์๋๋ค. ๋ ์ด์์์ ์ํฅ์ด ์๋ ๋ณ๊ฒฝ์ด ๋ฆฌํ๋ก์ฐ ์์ด ๋ฆฌํ์ธํธ๋ง ์คํ๋๋ค.
6. ํ์ธํธ (๋ฆฌํ์ธํธ)
๋ ๋ ํธ๋ฆฌ๋ฅผ ๋ฐ๋ผ์ ํ์ธํธ ๊ธฐ๋ก์ด ์์ฑ์ด ๋๋ค. ํ์ธํธ ๊ธฐ๋ก์๋ ์์๋ฅผ ๋ ๋๋ง ํ๋ ์์ ๊ทธ๋ฆฌ๊ณ ์ง๊ธ๊น์ง์ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ํ ํ์ด์ง๋ฅผ ์ฌ๋ฌ ๊ฐ์ ๋ ์ด์ด๋ก ๋๋ ๋ค์ ๊ทธ ์์ ํ ์คํธ, ์, ์ด๋ฏธ์ง, ๋ณด๋, ๊ทธ๋ฆผ์ ๋ฑ ๋ชจ๋ ์๊ฐ์ ์ธ ๋ถ๋ถ์ ๊ทธ๋ฆฌ๋ ์์ ์ด ์งํ๋๋ค.
์ฌ๋ฌ๊ฐ์ง ๋ ์ด์ด๋ฅผ ์คํฌ๋ฆฐ์ ํฝ์ ๋ก ํํํ๊ฒ ๋๊ณ , ๋๋์ด์ ธ ์๋ ๋ ์ด์ด๋ฅผ ํ๋๋ก ํฉ์ฑํด์ ํ์ด์ง๋ฅผ ์์ฑํ๊ฒ ๋๋ ์ปดํฌ์งํ ๋จ๊ณ๊ฐ ์ด์ด์ง๋ค.
** transform, opacity๋ ๋ฆฌํ๋ก์ฐ, ๋ฆฌํ์ธํธ ์๋ต
transform, opacity๋ DOM ํธ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ์ ๋ คํ ์ ๋๋ฉ์ด์ ์ ๊ตฌํํ๊ธฐ ์ํด์ ํฌ์ง์ ์์ฑ๋ณด๋ค๋ ํธ๋์คํผ ์์ฑ์ ํตํด์ ๊ตฌํํ๋ ๊ฒ์ด ์ข๋ค.
7. ๋ฐ์์ฑ ๋ฐ ์ํธ์์ฉ
์น ํ์ด์ง๊ฐ ๋ ๋๋ง๋๊ณ ํ๋ฉด์ ํ์๋ ํ, ์ฌ์ฉ์์ ์ํธ์์ฉ์ ๋ํด ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๊ณ ์ฒ๋ฆฌํ๋ค. ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ๋ผ ์น ํ์ด์ง๊ฐ ๋ณ๊ฒฝ๋๊ฑฐ๋ ์๋ก์ด ์์ฒญ์ด ์๋ฒ๋ก ์ ์ก๋์ด ๋์ ์ผ๋ก ์ ๋ฐ์ดํธ๋ ์ ์๋ค.
๐ Restful API๋?
RESTful API๋ Representational State Transfer(ํํ ์ํ ์ ์ก)์ ์ฝ์ด๋ก, ์น ์๋น์ค์ ์ํคํ ์ฒ ์คํ์ผ ์ค ํ๋์ด๋ค. RESTful API๋ ๋คํธ์ํฌ ๊ธฐ๋ฐ์ ์ํํธ์จ์ด ์์คํ ๊ฐ ํต์ ์ ์ํ ๊ท์น๊ณผ ์ ์ฝ์ ์ ๊ณตํ๋ค.
- ์ฃผ์ ํน์ง:
- ํด๋ผ์ด์ธํธ-์๋ฒ ๊ตฌ์กฐ: ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ญํ ์ ๋ถ๋ฆฌํ์ฌ ํ์ฅ์ฑ๊ณผ ์ ์ฐ์ฑ์ ํฅ์์ํต๋๋ค.
- ์ํ ์์(Statelessness): ๊ฐ ์์ฒญ์ ์๋ฒ์ ๋ํ ์ถฉ๋ถํ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์์ด์ผ ํ๋ฉฐ, ์๋ฒ๋ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค. ์ธ์ ์ํ๋ฅผ ์ ์งํ์ง ์๋ ๊ฒ์ด ํน์ง์ ๋๋ค.
- ์บ์ ์ง์: ์๋ต ๋ฐ์ดํฐ์ ์บ์ ํค๋๋ฅผ ํฌํจํ์ฌ ํด๋ผ์ด์ธํธ ์ธก์์ ์บ์ฑ์ ํตํด ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- ๊ณ์ธตํ: ์ฌ๋ฌ ๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ๋ ์์คํ ์์ ์ค๊ฐ ๊ณ์ธต(๋ก๋ ๋ฐธ๋ฐ์, ์บ์ ๋ฑ)์ ํตํด ํ์ฅ์ฑ๊ณผ ๋ณด์์ฑ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
- ์ผ๊ด๋ ์ธํฐํ์ด์ค: ์ผ๊ด๋ URI(Uniform Resource Identifier)๋ฅผ ํตํด ์์์ ์ ๊ทผํ๊ณ , HTTP ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์์์ ์ํ๋ฅผ ์กฐ์ํฉ๋๋ค.
- ์ฃผ์ HTTP ๋ฉ์๋:
- GET: ์๋ฒ์์ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉํฉ๋๋ค. ์ฃผ๋ก ๋ฐ์ดํฐ ์กฐํ์ ์ฌ์ฉ๋ฉ๋๋ค.
- POST: ์๋ฒ์ ์๋ก์ด ๋ฆฌ์์ค๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํฉ๋๋ค. ์ฃผ๋ก ๋ฐ์ดํฐ ์์ฑ์ ์ฌ์ฉ๋ฉ๋๋ค.
- PUT: ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์ ๋ฐ์ดํธ(์ ์ฒด ๊ต์ฒด)ํ ๋ ์ฌ์ฉํฉ๋๋ค.
- PATCH: ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์ ๋ฐ์ดํธ(๋ถ๋ถ ๋ณ๊ฒฝ)ํ ๋ ์ฌ์ฉํฉ๋๋ค.
- DELETE: ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
RESTful API์๋ ์ด์ธ์๋ OPTIONS, HEAD, TRACE, CONNECT ๋ฑ์ HTTP ๋ฉ์๋๋ ์ฌ์ฉ๋ ์ ์๋ค. ์ด๋ค์ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ํํ๋ค.
- OPTIONS: ์๋ฒ๊ฐ ์ ๊ณตํ๋ ๋ฆฌ์์ค์ ๋ํ ์ง์ ๊ฐ๋ฅํ ๋ฉ์๋๋ฅผ ํ์ธํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
- HEAD: GET ๋ฉ์๋์ ์ ์ฌํ์ง๋ง, ์๋ต ๋ณธ๋ฌธ์ ๋ฐํํ์ง ์๊ณ ํค๋ ์ ๋ณด๋ง์ ๋ฐํํฉ๋๋ค.
- TRACE: ์์ฒญ์ ๋ฐ์ฌํ์ฌ ๋๋ฒ๊น ์ด๋ ํ ์คํธ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- CONNECT: ํ๋ก์๋ฅผ ํตํด ์๋ฒ์์ ํฐ๋์ ๋งบ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌใป ์บ์ (0) | 2023.07.21 |
---|---|
Hoisting๊ณผ TDZ ใป parameter์ argument (0) | 2023.07.20 |
ํ๋ก์ ํธ ํ๊ณ ๋ก (0) | 2023.07.06 |
React_์ด๋ฏธ์ง ํ์ผ ์ ๋ก๋ํ๊ธฐ (0) | 2023.05.17 |
JSON (0) | 2023.05.02 |