๐ [ ๋ ํ๊ฐ ] ์ธ์์ ์ง๋ฐฐํ๋ ๋ค์ฏ ๊ฐ์ง ํ๋ ฅ์ ๋ฒ์น ์ด ํ๋ ฅ์ - ๋งํด ๋ ธ์, ๋ก์ ํ์ดํ๋
์ด ์ฑ
์ ์ฝ๊ฒ ๋ ๊ณ๊ธฐ๋ ๊ณต๋ถ์ต๊ด์ ๊ธธ๋ฌ์ฃผ๋ ์คํ ์นดํก๋ฐฉ์์ ์ฌ๋ฌ ์ฑ
์ ์ถ์ฒ๋ฐ์์๋๋ฐ, ์ด ์ฑ
์ด ์๋ผ๋ ์ค๊ณ ์์ ์์ ์ ์ผํ๊ฒ ์ฌ๊ณ ๊ฐ ๋จ์ ์ฑ
์ด์๋ค. ์ ๊ฐ์์ ์ฝ 50% ํ ์ธํด์ ๊ตฌ๋งคํ๋๋ฐ, ์ ์ฒด์ ์ธ ๋ด์ฉ์ ํ๋ ฅ
์ ์๋ฌผํ, ์ฌ๋ฆฌํ ๊ด์ ์์ ๋ค๋ฃฌ ์ฑ
์ด๋ค. ํจ๊ป ์ผํ๊ณ ์ถ์ ๊ฐ๋ฐ์
๊ฐ ๋๋ ๊ฒ์ด ๋์ ๋ชฉํ์ธ๋ฐ, ์ด ์ฑ
์ ํ์๋ค์๊ฒ ์ด๋ค ๋ง์๊ฐ์ง์ผ๋ก ์ํด์ผํ๋์ง ์๋ ค์ค ์ฑ
์ด์๋ค. ์ฝ 500ํ์ด์ง์ ๋ ๋๊ณ , ๊ณต๋ถ๋ฅผ ํ๊ธฐ ์ , ํน์ ์๊ฐ์ด ๋ ๋๋ง๋ค ์ฝ์๋ค. ์ฝ์ ๊ธฐ๊ฐ์ 21. 5. 26. ~ 21. 7. 14.
์ด๋ค.
๋ด์ฉ์ ์ฃ์์ ๋๋ ๋ง
๋ฅผ ์ค์ฌ์ผ๋ก ๋ด์ฉ์ ์์ฑํ๊ณ , ์ฃ์์ ๋๋ ๋ง
์ค ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ์ํ๋ฉด ํจ๊ณผ์ ์ธ์ง ๋ํ๋ด๊ณ ์๋ค. ์ฒ์์ ์ฃ์์ ๋๋ ๋ง
๊ฐ ์ด๋ค ๊ฒ์์ธ์ง ์ ํํ ๋ชฐ๋๋๋ฐ ์ด ์ฑ
์ ์ฝ์ผ๋ฉด์ ์กฐ๊ธ์ด๋๋ง ์๊ฒ๋์๋ค. ๊ธฐ์ต์ ๋จ๋ ๋ฌธ๋จ์ ์ฃ์์ ๋๋ ๋ง
์์ ์๋๋ฐฉ์ ๋ฐฐ์ ํ๊ฑฐ๋ ์ฒ๋ฒํ๋ ์ฌ๋๋ค์ ๋์ค์ ํญ์ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ง ๋ชปํ๋ค๋ ์ ์ด์๋ค. ์ฆ, ์ฒ๋ฒ์ ํ๋ ฅ์ ์งํ๋ฅผ ์ํ ๋งค์ปค๋์ฆ์ด ์๋๋ผ๋ ์ ์ด๋ค. ๊ด์ฐฎ์ ์ฑ์ ์ ๊ฑฐ๋ ์ด๋ค์ ๋ณด๋ณต์ฑ ์ฒ๋ฒ๋ก ์ฌํ๋ฅผ ์
ํ์ํค์ง ์์๊ณ ๋ฐฐ์ ์ผ๋ก ๋์ํ์ ๋ฟ์ด๋ค. ๋ ๋ณด์
์ ์ฒ๋ฒ๋ณด๋ค ๋์ฑ ์ฐฝ์กฐ์ ์ธ ํํ์ ํ๋ ฅ์ ๋ณ๋๋ฐ, ํจ๊ป ํจ์จ์ ์ผ๋ก ์ผํ๋ ๊ฒ ์ด์์ ๋ง๋ค์ด ๋ผ ์ ์์ด์ ์ฐฝ์กฐ์ฑ์ ์๊ทนํ๊ธฐ๋ ํ๋ค. ๋๋จธ์ง ๋ด์ฉ์ ํํ(๊ฐ์ ์ํธ์ฑ)
, ๊ณต๊ฐ ์ ํ
, ๋ค์์ค ์ ํ
, ํ์ฐ ์ ํ
์ผ๋ก ๊ตฌ์ฑ๋์ด์์๋๋ฐ, ์ ์ผ ๊ธฐ์ต์ ๋จ๋ ์ฃผ์ ๊ฐ ์ฃ์์ ๋๋ ๋ง
์๋ค.
์ด์ธ์๋ ์ฑ
์ ์ฝ์ผ๋ฉด ์ ์ ์์ง๋ง ๊ฒฐ๋ก ์ ์ผ๋ก ํ๋ ฅ
์ ์ธ๋ฅ๋ฅผ ๋ณ์์ ์ ๋๋ก ์ฐ๋ฆฌ ์ฃผ๋ณ์์ ์ ๋ ๋น ์ง ์ ์๋ ํ์๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋ ฅ
์ ์๋์์ ์ค๋ ๊ฒ์ด์ง ์์์๋ถํฐ ๋์ฌ ์ ์๋ ํ์๊ฐ ์๋๋ค. ๋ง์ฝ, ๋ค๋ฅธ์ฌ๋๊ณผ ํ์
์ ํ๋๊ฒฝ์ฐ์ ์ฐฝ์กฐ์ ์ด๋์ ๋๋ฆฌ๋ ค๋ฉด ๊ทธ์ ๊ฑธ๋ง์ ํ๊ฒฝ์ ์กฐ์ฑํด์ผํ๋ค๋๊ฒ๋ ๋ฐฐ์ ๋ค. ๋, ๋ดํฅ์
, ํธํ์
, ๊ฒฝ์์
์ธ ์ฌ๋์ด ๋๊ธฐ๋ณด๋ค๋ ์ธํฅ์
, ์ด๋ฆฐ๋ง์
, ์ดํ์
์ธ ์ฌ๋์ด ๋์ด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
์ด์ ์๋ ์ฑ ์ ๋ช๋ฒ ์ฝ์์ง๋ง ํํ์ด ์๊ฐ๋ ๋๋ง๋ค ๋ ์ํ๋ฉฐ ์๋ ํ ์ ์ ์ฒ์์ธ๊ฒ ๊ฐ๋ค. ์์ผ๋ก ์์ฃผ ์ด๋ฐ ์ต๊ด์ ๊ฐ์ ธ์ผ๊ฒ ๋ค.
์ด ์ฑ
์ ์๋ผ๋ ์ค๊ณ ์์ ์ ๋ค๋ ์ ๋ ํ๋ก๊ทธ๋๋ฐ ๊ด๋ จํ ์ฑ
์ด ์ด๋ค๊ฒ์ด ์๋์ง ๊ตฌ๊ฒฝํ๋ค HTML5
๋ฅผ ๋ค๋ฃฌ ์ฑ
์ธ๋ฐ, ๊ฐ๊ฒฉ์ ์ฝ 50% ์ ๋ ํ ์ธ(22,000 -> 11,800)ํ๊ธธ๋ ์ผ๋ฅธ ๊ตฌ๋งคํ ์ฑ
์ด๋ค. ์๋ผ๋ ์จ๋ผ์ธ์๋ ์ ํ์ด ๋์ด ๋ ์ด์ ํ์ง ์๋ ์ฑ
์ด๋ค. ์ ์ฒด ํ์ด์ง๋ ์ฝ 300ํ์ด์ง์ด๊ณ , ์ฝ์ ๊ธฐ๊ฐ์ 21. 8. 28. ~ 21. 10. 9.
์ด๋ค.
์ฑ
์ HTML5
์ CSS3
์ ๋ํ ๋ด์ฉ์ ์ฃผ๋ก ๋ค๋ฃจ๋๋ฐ, ๋์๊ฒ ์์ด ๊ฐ์ฅ ๋์์ด ๋๋ ๋ด์ฉ์ ์๋ฉํฑ ์น(sementic web)
์ด๋ค. ์๋ฉํฑ ํ๊ทธ๋ฅผ ์ด๋ค ์๊ธฐ์ ์ฌ์ฉํด์ผํ๋์ง ์ ์ฌ์ฉํด์ผํ๋์ง ๋ฑ์ ๊ดํ ๋ด์ฉ์ ์์ ๋ฅผ ํตํด ์ค๋ช
ํ๋ ์ ๊ณผ ๊ทธ๋ํฝ ๋ด์ฉ์ ํ
์คํธ๋ก ํด์ํด์ ์ฝ์ด์ฃผ๋ ์คํฌ๋ฆฐ ๋ฆฌ๋๋ฅผ ์ด์ฉํ๋ ์ฌ์ฉ์๋ค์ ์ํด์๋ ์ด๋ค ๋งํฌ๋ฅผ ์ฌ์ฉํด์ผํ๋์ง๋ฅผ ์๋ ค์ฃผ๋ ์ (์ ๋ชฐ๋๋๋ฐ HTML5
์ ๋์
ํ role
์์ฑ์ ํตํด ์คํฌ๋ฆฐ๋ฆฌ๋๊ฐ ์์ฃผ ์ฝ๊ฒ ํ์ด์ง๋ฅผ ๋ถ์ํ๊ณ , ๋ชจ๋ ์ญํ ์ ๋ถ๋ฅํด์ ํ์ด์ง์ ์์ธ์ ๋ง๋ค ์ ์๋ค๊ณ ํ๋ค.)๊ณผ ์ค๋ฌด์ ์ธ ์์๋ค์ ๊ณ ๋ คํด ๊ธฐ๋ฅ์ด ํธํ๋์ง ์๋ ๋ธ๋ผ์ฐ์ ์์์ ๋์ฒ๋ฐฉ๋ฒ๋ ์ด ์ฑ
์ ์ฝ๋๋ฐ ๋์์ด ๋ง์ด ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ฉํฑ ์น์ ๊ดํ ๋ด์ฉ์ ๊ธฐ๋ก์ผ๋ก ๋จ๊ธฐ๊ณ ์ถ์ด ๊ฒ์๋ฌผ์ ํฌ์คํ
ํ๋ค. ์ฑ
์ ๋ค์์ ์ฃผ์ ๋ค์ ๋ค๋ฃจ๊ณ ์๋ค.
- ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๊ฐ์
- ์๋งจํฑ ๋งํฌ์ ์ผ๋ก ๋ธ๋ก๊ทธ ๋ฆฌ๋ด์ผํ๊ธฐ
- ์ฌ์ฉ์ ์ค์ฌ์ ์น ํผ ๋ง๋ค๊ธฐ
- CSS3๋ก ๋ ๋์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๋ง๋ค๊ธฐ
- ์ ๊ทผ์ฑ ํฅ์์ํค๊ธฐ
- ์บ๋ฒ์ค์ ๊ทธ๋ฆฌ๊ธฐ
- ์ค๋์ค์ ๋น๋์ค
- ๋์ ์ฆ๊ฒ๊ฒ
- ํด๋ผ์ด์ธํธ ์ธก ๋ฐ์ดํฐ๋ก ์์ ํ๊ธฐ
- ๋ค๋ฅธ API ์ด์ฉํ๊ธฐ
- ๊ณง ์ฐ๋ฆฌ ๊ณ์ผ๋ก ์ฌ ๊ฒ
- ๊ธฐ๋ฅ ์์ธ
์ด ์ฑ
์ ๋จ์ ์ ๋ฐํ์ด ์ค๋๋๋ค๋ ์ ์ธ๋ฐ, ์ดํ์ด 2011
๋
์ด๋ค. ๊ทธ๋์์ธ์ง ์ฑ
์ ์์ ์ฝ๋๋ jQuery
๋ฅผ ์ฌ์ฉํด์ jQuery
๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฐ๋ฐ์์๊ฒ๋ ์ดํดํ๊ธฐ ์กฐ๊ธ ์ด๋ ค์ธ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋น์์๋ ํธํ๋์ง ์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ง๊ธ์ ํธํ๋๋๋ก ๋ณ๊ฒฝ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด ์ ์ ์ผ๋ํด์ผ ํ๋ค.
HTML5
์ ํต์ฌ ๊ฐ๋
์ ์์ธํ๊ฒ ์๋ ค์ฃผ๋ ์ ์ ๋งค์ฐ ์ข์ ๊ฐ๋
์ ์๊ณ ์ถ์ ๋ถ๋ค์๊ฒ๋ ์ถ์ฒํ ๋งํ ์ฑ
์ด์ง๋ง, ์ฑ
์ ๋ฐํ์ด ์ค๋๋ ์ ๊ณผ jQuery
๋ฅผ ์ด์ฉํ ์์ ์ฝ๋๋ฅผ ์ฌ์ฉํ๊ณ ์์ด ์ค์ตํ ์ ์๋ ์ ์ ์์ฌ์ ๋ค.
์ด ์ฑ
์ ์ฝ๊ฒ ๋ ๊ณ๊ธฐ๋ ์ปค์คํ
๋ฒ
์ค ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ด๋ป๊ฒ ํ๋ฉด ์ด๋ฏธ์ง๋ฅผ ๋น ๋ฅด๊ฒ ๋ก๋ฉ ํ ์ ์์๊น?๋ผ๋ ๊ณ ๋ฏผ์ AWS S3
์๋น์ค๋ฅผ ์ด์ฉํ๊ธฐ ์ํด ๋ง์์ ๋จน์๋๋ฐ, ์ ์ AWS
์ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ๋ ์ ๋ชฐ๋ผ์ AWS
์ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์ฐ๊ณ ์ถ๋ค๋ ์๊ฐ์ด ๋ค์ด์ ๊ตฌ๋งคํ๋ค. ๊ตฌ๊ธ๋ง์ ํด๋ณด๋๊น AWS
์ ๊ด๋ จ๋ ๋ด์ฉ๋ ์ ์์๋ค. ๊ทธ๋์ ์์ ์ ๊ตฌ๋งคํ๊ฒ ๋ค๊ณ ๋ง์์ ๋จน์๊ณ , ์๋ฆฌ๋ ์ค๊ณ ์์ ์ผ๋ก ๊ตฌ๋งคํ๋ ค๊ณ ํ๋๋ฐ ์ถํ๋์ง ์ผ๋ง ์ ๋ ์์ ์ด์ด์ ๋งค๋ฌผ์ด ์์ด ์ ์ฑ
์ผ๋ก ๊ตฌ๋งคํ๋ค. ๊ฐ๊ฒฉ์ 16,200
์, ์ถํ ์ผ์๋ 2021๋
6์ 30์ผ
, ์ด ํ์ด์ง๋ 280์ชฝ์ด๋ค. ๋
์ ๊ธฐ๊ฐ์ 21. 10. 14 ~ 21. 10. 18.
์ด๋ค. ๋ด์ฉ์ด ์ด๋ ต์ง ์์์ ๊ธ๋ฐฉ ์ฝ์ ์ ์๋ ์ฑ
์ด์๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก AWS
๋ ํด๋ผ์ฐ๋ ์ปดํจํ
์๋น์ค์ ํ๋์ด๋ค. ๊ตญ๋ด์์๋ ์ฌ์ฉ๋์ด ๋ง์ง ์์ง๋ง ์ง๋๊ฐ๋ค ์ด๋ฆ์ ๋๋ ํ๋ฒ ๋ค์ด๋ดค์ ๋ฒํ ์๋ง์กด์ด ์ํ์ฌ์ ๋
ธํ์ฐ๋ฅผ ํ์ฉํ์ฌ ์ ๊ณตํ๊ณ ์๋ค. ํด๋ผ์ฐ๋ ์ปดํจํ
์๋น์ค๋ ์๋ฒ ๋ฐ ๋คํธ์ํฌ ๋ฑ์ ์ธํฐ๋ท์ผ๋ก ๋น๋ ค์ฃผ๋ ์๋น์ค๋ก, ์ธ์ ์ด๋์๋ ์ง ์ด์ฉ ํ ์ ์๋ ์ฅ์ ์ด ์๋ค. ์ด๋ฌํ AWS
์ฅ์ ์ ๋ช ๊ฐ์ง ์๋๋ฐ ์๋น์ค๋ฅผ ์กฐํฉํ๊ธฐ ์ฌ์ด ์ , ๋ด๊ฐ ์ฌ์ฉํ ๋งํผ ๋น์ฉ์ ์ง๋ถํ๋ ์ข
๋์ ๋ผ๋ ์ , ํดํน์ผ๋ก๋ถํฐ ๋ฐฉ์ด ํ ์ ์๋ ๋ณด์ ๋ฅ๋ ฅ, ๊ธ๋ก๋ฒ ํ์ฅ์ด ์ฝ๋ค๋ ์ ๋ฑ์ด ์๋ค.
AWS
์์ ์ ๊ณตํ๋ ์๋น์ค๋ 165๊ฐ ์ด์์ด ์๋๋ฐ, ์ด ์ค์์ S3
, cloudFront
๋ ๋ค์์ ์์ธํ๊ฒ ์ดํด๋ณด๊ณ ๋๋จธ์ง EC2
, IAM
, AMI
, EBS
, ELB
, ์ค๋
์ท
, ์คํ ์ค์ผ์ผ๋ง
, cloudWatch
, Elastic IP
, ๋ฆฌ์ (region)
, VPC
, ์๋ธ๋ท
, CIDR
๋ฑ์ ์ฉ์ด์ ๊ฐ๋
๋ง ์ด์ง ์์๋ณด์.
EC2(Amazon Elastic Compute Cloud
: ์ปดํจํ ์ฉ๋์ ์ ๊ณตํ๋ ์๋น์ค์ด๋ค. ์ฝ๊ฒ ๋งํด ์๋ฒ์ ํ์ํ ์ธํธ๋ฅผ ํด๋ผ์ฐ๋์์ ๋น๋ฆด ์ ์๋ค๋ ๋ป์ด๋ค. ์๋ ์๋ฒ๋ ์ด๋ฏธ ๋ง๋ค์ด์ง ์๋ฒ ๊ธฐ๊ณ๋ ์๋ฒ ๊ธฐ๋ฅ์ ๋น๋ฆฌ๋ ๊ฒ์ด์ง๋ง, ํด๋ผ์ฐ๋์ ๊ฒฝ์ฐ์๋ ๋น๋ฆฐ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ ์๋ฒ๋ฅผ ๋ง๋ ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์ฐฉ๊ฐํ๋ฉด ์๋๋ ๊ฒ์ดEC2
๋ ๋งค๋์ง๋ ์๋น์ค๊ฐ ์๋๋ค. ๋ฐ๋ผ์ ์๋ฒ ๋ฐ ๋คํธ์ํฌ ์ด์์AWS
๊ฐ ๋ด๋นํ์ง๋ง,OS
๋ฅผ ํฌํจํ์ฌ ํ์ํ ์ํํธ์จ์ด๋ ์ฌ์ฉ์๊ฐ ์ง์ ์ค์นํ๊ณ ์ด์ํด์ผ ํ๋ค.IAM(Identity and Access Management)
:AWS
์ ์ธ์ฆ ๋ฐฉ์์ด๋ค.AWS
๋ ์๋น์ค ์ฌ๋ฌ ๊ฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ ์ ํ ๊ด๋ฆฌ๋ฅผ ์ํ ์ธ์ฆ ๋ฐฉ์์ด ๊ผญ ํ์ํ๋ค.AWS
๊ณ์ ๊ณผ ๋น์ทํ ์ ์์ง๋ง,AWS
๊ณ์ ์ ๊ณ์ฝ์ ๊ด๋ฆฌํ๋ ๊ณ์ ์ธ๋ฐ ๋ฐํด,IAM
์ ๊ฐ ์๋น์ค์ ๋ํ ์ ์์ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฅ์ด๋ค. ์ฌ๋์ ๋ํด ๋ถ์ฌํ๋IAM
์IAM์ฌ์ฉ์
๋ผ๊ณ ํ๋ค.AMI(Amazon Machine Image)
:EC2
๋ฅผ ์งํฑํ๋ ์ค์ํ ์์ ์ค ํ๋์ด๋ค.AMI
๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ผํ ์ธ์คํด์ค๋ฅผ ๋๋์ผ๋ก ์ฝ๊ฒ ์์ฑ ํ ์ ์๋ค. ์ํํธ์จ์ด ๊ตฌ์ฑ์ ๊ธฐ๋กํ ํ ํ๋ฆฟ์ด๋ค. ์ธ์คํด์ค(๊ฐ์ ์๋ฒ)๋ฅผ ์์ฑํ๊ธฐ ์ํ ๊ธํ๊ณผ ๊ฐ์ ๊ฒ์ผ๋ก, ๊ธํ์ ํ ๋ฒ ๋ง๋ค์ด ๋๋ฉด ์ผ๋ง๋ ์ง ๊ฐ์ ์ค์ ์ ์๋ฒ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค. ๋์ผํ ์๋ฒ๊ฐ ์ฌ๋ฌ๊ฐ ํ์ ํ ๋ ์๋ฒ๋ง๋คOS
๋ฅผ ์ค์นํ๊ณ , ์ํ์น, ์ํํธ์จ์ด๋ฅผ ์ค์นํ๋ ๋ฑ ๊ฐ์ ์์ ์ ๋ฐ๋ณตํด์ผ ํ ๋AMI
๋ฅผ ์ฌ์ฉํ๋ฉด ๋จ ๋ช ๋ถ๋ง์ ๋์ผํ ์๋ฒ๋ฅผ ๋ง๋ค ์ ์๋ค.EBS(Amazon Elastic Block Store)
: ์๊ตฌ์ ์ธ ๋ธ๋ก ์คํธ๋ฆฌ์ง ๋ถ๋ฅจ์ผ๋ก ์ฃผ๋กEC2
์ธ์คํด์ค์ ์กฐํฉํ์ฌ ์ฌ์ฉํ๋ค. ๋ํ์ ์ธ ์คํ ๋ฆฌ์ง๋HDD
์SSD
์ด๋ค. ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ์ผ๋ฐ์ ์ธ ์ปดํจํฐ์ ์ฅ์ฐฉํ๋ ์ ์ฅ์ฅ์น์ธHDD
์SDD
๋ฅผ ๋ ์ฌ๋ฆฌ๋ฉด ํธํ๋ค.ELB(Elastic Load Balancing)
:AWS
๊ฐ ์ ๊ณตํ๋ ๋ก๋ ๋ฐธ๋ฐ์์ด๋ค. ๋ก๋ ๋ฐธ๋ฐ์๋ ์๋ฒ์ ์ง์ค๋๋ ํธ๋ํฝ์ ์๋ฒ ์ฌ๋ฌ ๋๋ ๋คํธ์ํฌ์ ๋ถ๋ฐฐํ๋ ๋ฐฉ์์ด๋ค. ์๋ฒ ํ ๋์ ์ง์ค๋๋ ๋ถํ๋ฅผ ๋ถ์ฐ์ํค๊ธฐ ๋๋ฌธ์ ๋ถํ ๋ถ์ฐ ์ฅ์น๋ผ๊ณ ๋ ํ๋ค.์ค๋ ์ท(snapshot)
: ์ด๋ค ์์ ์ ์๋ฒ ๋์คํฌ ์ํ๋ฅผ ํต์งธ๋ก ๋ณด์กดํ ํ์ผ์ด๋ ํด๋ ๋ฑ์ ์งํฉ์ด๋ค. ํต์งธ๋ก ๋ณด์กดํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ ์ํํธ์จ์ด๋ฟ๋ง ์๋๋ผOS
์ ์ค์ ์ ๋ณด ๋ฑ๋ ๋ชจ๋ ํฌํจ๋๋ค. ๋ณดํต ์ํํธ์จ์ด ํน์OS
๊ฐฑ์ ์์ ๋ฑ์ ํ ๋ ๋ฌด์ธ๊ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ฐ๋ก ๋๋๋ฆด ์ ์๋๋ก ๋ฐฑ์ ํ๊ธฐ ์ํด ์ค๋ ์ท์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ๋ํ ๊ฐ์ธ์ดAWS
์์AMI
๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ค๋ ์ท์ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.์คํ ์ค์ผ์ผ๋ง(Auto Scaling)
: ์๋ฒ์ ์ก์ธ์ค ์ํ์ ๋ฐ๋ผ ์๋ฒ ๋์๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ด๋ ๊ธฐ๋ฅ์ด๋ค.AWS
๋EC2 Auto Scaling
์ ๋จ๋ ์ผ๋ก ์ฌ์ฉํ ๋ฟ๋ง ์๋๋ผCloudWatch
์์ ์๋ฒ์ ๋ถํ ์ ๋ณด(CPU ๋ถํ, ๋คํธ์ํฌ ํต์ ๋ ๋ฑ) ๋ฐ์ดํฐ๋ฅผ ์ฐธ์กฐํ์ฌ ์ค์ผ์ผ๋ง์ ์ฐธ๊ณ ํ ์๋ ์๋ค.CloudWatch
: ๊ฐAWS
์๋น์ค์ ๋ฆฌ์์ค ๋ชจ๋ํฐ๋ง๊ณผ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ๋ ์๋น์ค์ด๋ค.AWS
์ ๊ฐ ์๋น์ค์์ ์งํ, ๋ก๊ทธ ๋ฑ์ ์์ง, ๊ธฐ๋กํ๋ค. ์์งํ ๋ก๊ทธ๊ฐ ์๊ณ ๊ฐ์ ๋์ผ๋ฉด ํน์ ๋์์ด ์ผ์ด๋๋๋ก ์ค์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์ํฉ์ ๋์ฒํ๋ ๊ด๋ฆฌ๋ ๊ฐ๋ฅํ๋ค.Elastic IP
:AWS
๊ฐ ์ ๊ณตํ๋ ์ ์ ์ธ ๊ณต์ธ(public)IPv4
์ฃผ์์ด๋ค.EC2
์ธ์คํด์ค๋ ์ ์ง ํ ๋ค์ ์์ํ๋ฉด ๊ณต์ธIP
์ฃผ์๊ฐ ๋ฐ๋๊ฒ ๋๋ค. ์ด๋ ์๋ฒ๋ก์ ์ฌ์ฉํ๋๋ฐ ๋ฌธ์ ๊ฐ ๋๋ค. ๊ทธ๋์ ๊ณ ์ IP
์ฃผ์๋ฅผ ์ธ์คํด์ค์ ์ฐ๊ฒฐํด์ผ ํ๊ณ , ์ด๋ ๊ณ ์ IP๋ก ์ฌ์ฉํ๋ ๊ฒ์ดElastic IP
์ฃผ์์ด๋ค.๋ฆฌ์ (Region)
:AWS
๋ ์ ์ธ๊ณ 25์ง์ญ์ ์๋ฒ์ ๋ฐ์ดํฐ ์ผํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ด๋ฌํ ์ง๋ฆฌ์ ๋ถ๋ฅ๊ฐ ๋ฆฌ์ ์ด๋ค. ์ฌ์ฉ์๊ฐ ์๋น์ค๋ฅผ ์ฌ์ฉํ ๋ ์ง์ญ์ ์ง์ ํ๋๋ฐ ๊ตญ๋ด์์๋ ์์ธ์ ์์นํด์๋ค. ๊ตญ๋ด์ ๋ง์ ์ฌ๋์ด ์์ธ ๋ฆฌ์ ์ ์ ํํ์ง๋ง, ์์ง ์์ธ ๋ฆฌ์ ์์ ์ ๊ณตํ์ง ์๋ ์๋น์ค๋ ์๊ธฐ ๋๋ฌธ์ ์ ๊ณตํ์ง ์๋ ์๋น์ค๋ง ๋ฏธ๊ตญ ๋๋ถ ๋ฑ ๋ค๋ฅธ ๋ฆฌ์ ์ ์ ํํ๋ฉด ๋๋ค. ๋ฆฌ์ ์ ๊ฐ๋จํ๊ฒ ๋งํ๋ฉด ๋ฐ์ดํฐ ์ผํฐ์ด๋ค. ๊ฐ ๋ฆฌ์ ์๋ ์ฌ๋ฌ ๊ฐ์ฉ ์์ญ(AZ)์ด ๊ฐ๊ฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ ๋ฆฝ๋ ์ค๋น๋ก ์ค์น๋์ด ์๋ค. ์ฆ ์ธ๊ณ ๊ฐ๊ตญ์ ๋ฐ์ดํฐ ์ผํฐ๊ฐ ์์ด ์ ์ธ๊ณ์ ์ธ ํ์ฅ์ฑ์ ๊ฐ์ง ์ ์๋ค.VPC(Amazon Virtual Private Cloud)
: ์น ์๋ฒ๋DB
์๋ฒ์ ๊ฐ์ ์๋ฒ๋ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋์ด ์์ด์ผ ํ๋ค. ํ ์ฅ์์ ๋ชจ์์ ๋คํธ์ํฌ๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฒ๋ ๊ฐ๋ฅํ์ง๋ง ๊ทธ๋ ๊ฒ ๋๋ฉด ์๋ฒ๋ก์์ ์๋ฏธ๊ฐ ์๋ค.AWS
์๋น์ค์ธEC2
๋RDS(Relational Database Service)
๋ฑ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋คํธ์ํฌ์ ์ฐ๊ฒฐ ๋์ด์์ด์ผ ํ๋ค. ์ด๋ฌํ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ฒ์ดAmazon VPC
์ด๋ค.AWS
๊ณ์ ์ ์ฉ ๊ฐ์ ๋คํธ์ํฌ ์๋น์ค๋ก,AWS
์์ ์ ๊ณตํ๋ ๋ฆฌ์์ค๋ง ์ค์นํ ์ ์๋ค. ํนํEC2
๋RDS
์ ๊ฒฝ์ฐVPC
๋ฅผ ์ ํํ์ง ์์ผ๋ฉด ์๋ฒ๋ฅผ ์์ฑํ ์ ์๊ธฐ ๋๋์ ๋ฆฌ์๋ฅด๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ฐ๋์ ํ์ํ ์๋น์ค์ด๋ค.์๋ธ๋ท(subnet)
: ์ปค๋ค๋ ๋คํธ์ํฌ๋ฅผ ์๊ฒ ๋๋ ๋คํธ์ํฌ๋ฅผ ๋งํ๋ค. ๋คํธ์ํฌ๋ฅผ ๋ถํ ํด ์ง์ ํต์ ํ ์ ์๋ ๋ฒ์๋ฅผ ์ขํ๊ณ , ๋ฐฉํ๋ฒฝ์ ์ค์ ํด ๋ณด์์ ๊ฐํํ๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก ํ๋ค.VPC
๋ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์๋ ๋คํธ์ํฌ ๋ฒ์๋ฅผ ์์ฑํ๊ณ ๊ทธ ์๋์ ์ฉ๋์ ๋ฐ๋ผ์ ์๋ธ๋ท(์์ ๋คํธ์ํฌ)์ ์์ฑํ๋ค. ์ผ๋ฐ์ ์ธ ๋คํธ์ํฌ์ ๊ฒฝ์ฐ ์๋ธ๋ท๋ผ๋ฆฌ ํต์ ํ๋ ค๋ฉด ๋ผ์ฐํ ์ด ํ์ํ์ง๋งVPC
์ ๊ฒฝ์ฐ์๋ ๋ผ์ฐํ ์์ด๋ ํต์ ํ ์ ์๋ค.CIDR(Classless Inter-Domain Routing)
: ๋คํธ์ํฌ์ ์๋ธ๋ท์ ๋ฒ์๋ฅผ ๋๋๋๋ฐ ์ฌ์ฉ๋๋ ํ๊ธฐ๋ฒ์ ๋งํ๋ค. ํ๋ฆฌํฝ์ค ํ๊ธฐ๋ผ๊ณ ๋ ํ๋๋ฐ/24
,/20
์ฒ๋ผ/(์ฌ๋์)
๋ค์ ๋คํธ์ํฌ ๊ธธ์ด๋ฅผ ์ซ์๋ก ์ ์ด์ ํ๊ธฐํ๋ค.255.255.255.0
์ด๋255.255.255.40
๊ณผ ๊ฐ์ด ์๋ธ๋ท ๋ง์คํฌ๋ก ํ๊ธฐํ๋ ๊ฒฝ์ฐ๋ ์์ง๋ง,AWS
๋CIDR
์ ์ฌ์ฉํ๋ค./24
๋256๊ฐ
,/20
์4,096๊ฐ
๋ฅผ ์๋ฏธํ๋๋ฐ(2์ 32 - ๋คํธ์ํฌ์ ๊ธธ์ด) ** 2
๋ฅผ ๊ธฐ์ตํ๋ฉด ์ฝ๊ฒ ๊ณ์ฐ ํ ์ ์๋ค.
์ง๊ธ๊น์ง ์ดํด๋ณธ ๊ฐ๋
์ธ์๋ DHCP
, IP ๋ง์ค์ปค๋ ์ด๋
, NAT
, ์ธ๋ฐ์ด๋ ๋ฐ ์์๋ฐ์ด๋
, VPC ์๋ํฌ์ธํธ
, ๊ฐ์ค ์ฌ์ค๋ง
๋ฑ์ด ์์ผ๋, AWS
๊ณ ์ ์๋น์ค๊ฐ ์๋ ๋คํธ์ํฌ ๊ฐ๋
์ด๋ฏ๋ก ์๋ตํ๊ฒ ๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ๋น์ฅ ํ๋ก์ ํธ์ ๋์์ด ๋ ๊ฐ๋
์ S3
, CloudFront
์ ๋๊ฐ ๋๊ฒ ๋ค. ํ์ง๋ง ์๋ฒ๋ฅผ ์ง์ ๊ตฌ์ฑํ์ง ์๊ณ ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ์์ฆ์ cloud
์ ๋ํ์ ์ธ ๊ธฐ์
์ธ AWS
์์ ์ฌ์ฉํ๋ ๊ฐ๋
๊ณผ ๊ตฌ์กฐ ๋ฑ์ ์๊ณ ์์ผ๋ฉด ๋๋จธ์ง cloud
์๋น์ค๋ ๋น์ทํ ๊ฒ์ด๊ณ ๋์ค์ ์ธ์ ๊ฐ ํ๋ฒ์ ์จ๋จน์ง ์์๊น ์๊ฐํ๋ฉฐ ์ด ์ฑ
์ ๊ณจ๋๋ค. ์ฑ
์ ์ฝ์ผ๋ฉด์ ๋๋์ ์ AWS
์ ๊ดํด ์ฒ์ ๋ค์ด๋ณด๋ ๊ฐ๋
์ด ๋ง์๊ณ ์ฒ์ AWS
ํํ์ด์ง์ ์ ์ํ์ ๋๋ ์ธ๊ณ์ด์ฒ๋ผ ๋๊ปด์ก๋ ๋จ์ด๋ค์ด ์ด์ ๋ ์กฐ๊ธ์ฉ ๋ณด์ด๋ ๊ฒ์ ์ ๊ธฐํ๋ค. WEB
์ ๊ดํ ์ ๋ฐ์ ์ธ ์ง์์ ์๋ ค๋ฉด ๋ง์ ๊ณต๋ถ๋ฅผ ํด์ผํ๋ค๋ ๊ฒ๋ ๋๊ผ๋ค.
ํญ์ ์น์ฌ์ดํธ๋ฅผ ๊ตฌ๊ฒฝํ๋ค๋ณด๋ฉด ๋๋ถ๋ถ ๋ฐ์ํ ํ์ด์ง๋ก ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.(์ค๋์ ์ง) ๋ด๊ฐ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค ๋๋ ํญ์ ๋ฐ์ํ ํ์ด์ง๋ก ๋ง๋ค๋ ค๊ณ ๋
ธ๋ ฅํ๋ค. ํ์ง๋ง, ๋ฐ์ํ ํ์ด์ง์ ์ฉ์ด๊ฐ ์ ํํ ์ด๋ค๊ฒ์ด๊ณ ์ธ์ ๋ฐ์ํ ํ์ด์ง๋ฅผ ๋ง๋ค์ด์ผํ๋๊ฐ? ์ด๋ป๊ฒํ๋ฉด ์ ์ ๊ฐ ๋ณด๊ธฐ ํธํ ๋ฐ์ํ ํ์ด์ง๋ฅผ ๋ง๋ค ์ ์์๊น? ํ๋ ์ฐฐ๋์ ์ด ์ฑ
์ ๋ณด๊ฒ ๋์๋ค. ์ฑ
์ ์๋ผ๋์์ ์ฃผ๋ฌธํ๊ณ ์ฝ 200ํ์ด์ง๋ก ๊ตฌ์ฑ๋์ด์๋ค. ์ฝ์ ๊ธฐ๊ฐ์ 21.10.19. ~ 21.11.4.
์ด๋ค.
ํ๋ผ๋ฒจ์ ํธ๋ ํธ ์ํด์ ๋ฐ์ํ ๋์์ธ์ ์ธ๊ณ๋ก ์ง์ ํ๊ฒ ๋ ๊ณผ์ ์ ์ค๋ช ํ๋ค. ํฌํ ์ต์ผ๋ก ์์ ํ๋ ๋ฐฉ์์ ๋ฒ๋ฆฌ๊ณ ์๋ก์ด ๋ฐฉ์์ ์ฑํํ๋๋ฐ, ๊ฐ๋ณ ๊ทธ๋ฆฌ๋, ๊ฐ๋ณ ์ด๋ฏธ์ง, ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ํ์ฉํ ๋ฐฉ์์ด๋ค. ๊ธฐ์กด์๋ ํ์ด์ง๋ฅผ ๋ง๋ค์๋ค๋ฉด, ํ์ด์ง ๋์ ์ด๋ค ํ๋ฉด ํฌ๊ธฐ์์๋ ๋ฉ์์ง๋ฅผ ๊ฐ์ฅ ์ ์ ๋ฌํ๋๋ก ๋ค์ ๋ฐฐ์นํ ์ ์๋ ์ฝํ ์ธ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ถํ๋ค. ์ฆ, ๋ฐ์ํ ๋์์ธ์ ์ด๋ค ํ๋ฉด ํฌ๊ธฐ์์๋ ๋ฉ์์ง๋ฅผ ๊ฐ์ฅ ์ ์ ๋ฌํ๊ฒ๋ ์ฌ๋ฐฐ์น๊ฐ ๊ฐ๋ฅํ ์์ ๋์์ธ ๋ดํฌ๋ผ๊ณ ํ๋ค. ์ดํ์๋ ๋ฐ์ํํ์ด์ง๋ฅผ ์ ์ฉํ 3-40๊ฐ์ ์ธ๊ตญ ์ฌ์ดํธ๋ฅผ ์์๋ก ๋ค๋ฉด์ ์ฌ์ดํธ๋ค์ ์ฅ์ ๊ณผ ๋จ์ ์ ๋ํด ์ค๋ช ํ๋ค.
๋ฐ์ํํ์ด์ง๋ฅผ ์ ์ฉํ ๋ ์์
์ ๋ฒ์์ ๋ณต์ก๋๊ฐ ์ปค์ง๋ฉด์, ์์
์ ๋ชจ๋ํํด์ผํ๋ค๋ ํ์์ฑ์ด ๋๋๋์๋๋ฐ, ๋์์ธ ๋ด์์ ์ปดํฌ๋ํธ์ ์ด์ ์ ๋ง์ถ๊ฒ ๋์๋ค. ๊ทธ๋์ ํจํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํน์ ์คํ์ผ๊ฐ์ด๋๋ฅผ ๋ง๋๋๊ฒ์๋ ์๋กญ๊ฒ ๊ด์ฌ์ด ์ง์ค๋์๋๋ฐ ์ฐ๋ฆฌ๊ฐ ํํ ์๊ณ ์๋ ์คํ๋ฒ
์ค๋ ๋ฐ์ํ ์ฌ์ดํธ์ ์ฌ์ฉํ ํจํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ณต๊ฐํ ์ต์ด์ ๊ธฐ์
์ด๋ผ๊ณ ์ค๋ช
ํ๋ค. ์ปค์คํ
๋ฒ
์ค ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๋ ์คํ๋ฒ
์ค ํจํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ทน ์ฌ์ฉํ๋๋ฐ ํจํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ณต๊ฐํ ์ต์ด์ ๊ธฐ์
์ด๋ผ๊ณ ํ๋ ์ ๊ธฐํ๋ค. ๋ค์์ผ๋ก ๋ฐ์ํ ํ์ด์ง๋ฅผ ๊ตฌ์ฑํ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ต์ ๋ธ๋ผ์ฐ์ ์ธ์ง ํ
์คํธํ๋ ๋ฐฉ๋ฒ๋ ์๋ ค์คฌ๋ค. ๋ค์์ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ค. ์ด ์ฝ๋๋ฅผ ์ฌ์ฉํ์๋์ ์ฅ์ ์ ์ฌ์ดํธ๊ฐ ๋ก๋๋ ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ
์คํธ์ฝ๋๋ฅผ ํตํด ๊ธฐ๋ฅ ์ํ์ด ์ด๋ ค์ด ๋ธ๋ผ์ฐ์ ๋ฅผ ๊ฑธ๋ฌ๋ด๊ณ , ๊ทธ๋ฐ ๋ธ๋ผ์ฐ์ ์๋ JS
๋ก ๊ตฌ๋๋๋ UI
๋ฅผ ๋๋ถ๋ถ ์ ์ธํ์ฌ ๊นจ๋ํ๊ณ ๊ฐ๊ฒฐํ๋ฉฐ ํต์ฌ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ๋ง ๋จ๊ฒจ๋๋๊ฒ์ ์๋ค.
// querySelector, addEventListener, getComputedStyle DOM ์์ฑ์ ์ง์์ฌ๋ถ๋ฅผ ํ์ธํ๋ ์กฐ๊ฑด๋ฌธ
if ( !( "querySelector" in document && "addEventListener" in window && "getComputedStyle" in window)){
return;
}
// DOM ์์ฑ์ ๋ชจ๋ ์ง์ํ๋ฉด HTML์์์ enhanced ํด๋์ค๋ฅผ ์ ์ฉํ๋ค.
window.document.documentElement.className += " enhanced";
๋ฐ์ํ ํ์ด์ง๋ฅผ ๊ตฌ์ฑํ ๋ ๊ฐ๋ณ ์ด๋ฏธ์ง
์ ๊ฐ๋ณ ๋์์
์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์๋ ์ค๋ช
ํ๋ค. ๋จผ์ , ๋์์์ ์ด๋ฏธ์ง์ ๋ฌ๋ฆฌ ๊ณ ์ ํ ํฌ๊ธฐ๋ฅผ ๊ฐ๊ณ ์์ง ์์ผ๋ฏ๋ก HTML
์์ ํฌ๊ธฐ๋ฅผ ๋ฐ๋์ ์ง์ ํด์ค์ผ ํ๋ค. ์ด๋, ์ข
ํก๋น(aspect radio)
๋ฅผ ๊ณ ๋ คํ์ฌ ๋ฃ์ด์ผํ๋๋ฐ 4:3
๋น์จ์ padding-bottom: 75%
๋ฅผ ๋ฃ๊ณ , 16:9
๋น์จ์ padding-bottom: 56.2757202%
๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค. padding-top
ํน์ padding-bottom
์ ํผ์ผํธ๊ฐ์ ์ค์ ํ๋ฉด ๊ทธ ๊ฐ์ ๊ทธ๊ฒ์ ๋๋ฌ์ผ ์ปจํ
์ด๋ ๋ธ๋ก์ ๋์ด์ ๋ํ ๋น์จ์ด ์๋๋ผ ๋๋น์ ๋ํ ๋น์จ์ด ๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ์์ง ํจ๋ฉ์ ํญ์ ๊ทธ๊ฒ์ ๋๋ฌ์ธ๊ณ ์๋ ๋ฐ์ค ๋๋น์ 75%
, 56.2757202%
๊ฐ ๋๋ค.
<!DOCTYPE html>
<head>
<style>
.intro{
position: relative;
padding-top: 25px; /* IE5 IE6์ ๊นจ์ง ์์ ๋ชจ๋ธ์ ํผํ๊ธฐ ์ํ ๊ณต๊ฐ */
padding-bottom: 75%; /* 4:3 */
padding-bottom: 56.2757202%; /* 16:9 */
height: 0;
}
.intro video {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
}
</style>
</head>
<body>
<div class="intro">
<video controls>
<source src="/media/cc0-videos/flower.mp4"
type="video/mp4">
Sorry, your browser doesn't support embedded videos.
</video>
</div>
</body>
</html>
๊ฐ๋ณํ ์ด๋ฏธ์ง๋ฅผ ๋ง๋๋๋ฐ ์ ์ฉํ ์ฌ๋ฌ CSS
์์ฑ ์ค background-size
์์ฑ์ ์ด์ฉํ๋ค. ๋ง์ฝ, ์ด๋ฏธ์ง์ ๋๋น ํน์ ๋์ด๊ฐ ์ด๋ฏธ์ง๋ฅผ ๋๋ฌ์ผ ์ปจํ
์ด๋ ๋ธ๋ก๋ณด๋ค ๋ ํฌ๋ค๋ฉด ์ปจํ
์ด๋ ๋ธ๋ก ๋ฐ๊นฅ์ ๋๋จธ์ง ํฝ์
๋ค์ ๋ณด์ด์ง ์์ ๊ฒ์ด๋ค. ํ์ง๋ง background-size
์์ฑ์ ์ฌ์ฉํ๋ฉด ์ด์ ๊ฐ์ ํ์์ ์ ์ดํ ์ ์๋ค. ์ด๋ ๊ธธ์ด๊ฐ ์ค ํ๋๋ฅผ auto
๋ก ์ค์ ํ๋ฉด ํน์ ๋๋น ๋๋ ๋์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ๋ก์ธ๋ก ๋น์จ์ ์ ์งํ ์ฑ ์ด๋ฏธ์ง ํฌ๊ธฐ๊ฐ ์กฐ์ ๋๋ค. ๋ง์ฝ, ๊ฐ๋ก ์ธ๋ก ๋น์จ์ ์ ์งํ๋ฉด์ ์ปจํ
์ด๋๋ฅผ ์ฑ์ฐ๊ณ ์ถ์ ๋ background-size: cover
๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋๋ฐ, ์ปจํ
์ด๋์ ํฌ๊ธฐ๊ฐ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ณด๋ค ์๋ค๋ฉด ์ด๋ฏธ์ง์ ์ผ๋ถ๊ฐ ๋ทฐ์ ๋ณด์ด์ง ์์ ๋๊ฐ ์๋ค. ์ด๋ด๋๋ background-size: contain
๋ฅผ ์ฌ์ฉํ๋ฉด ์ปจํ
์ด๋ ์์ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ์ ์ฒด๊ฐ ๋ฐ๋์ ๋ณด์ธ๋ค. ์ด์ธ์๋ ๋ฐ์ํ๊ด๊ณ , flex
, grid
๋ฑ์ ๋ํ ์ค๋ช
์ด ์ ํ์๋ค.
์ด ์ฑ
์ ์ฝ์๋ค๊ณ ๋ฐ์ํ ํ์ด์ง๋ฅผ 100% ์ดํดํ๋ค๊ณ ํ๊ธฐ๋ ํ๋ค๋ค. ๋ฐ์ํ์ ์๋ํ๋ ๋ฐฉ๋ฒ์ ๋ค์ํ๊ณ ์ง๊ธ๋ ๊พธ์คํ ๋ฐ์ ํ๊ณ ์๋ ๋ถ์ผ๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ง๋ง, ์ฑ
์ ์ฝ์ผ๋ฉด์ ๋ฐ์ํํ์ด์ง๊ฐ ์ ์๊ธฐ๊ฒ ๋์๊ณ ๋ฐ์ํ ํ์ด์ง๋ฅผ ๋ง๋๋ ๊ธฐ์ด์ ์ธ ์ง์, ์์ฉ ์์ ๋ฑ์ ๋ฐฐ์์ ์ข์๋ค. ์ ์ผ ๋จ๋ ์ง๋ฌธ์ ๋ฐ์ํ ํ์ด์ง๋ ํน์ ๊ธฐ๊ธฐ ์ค์ฌ์ ๋ถ๊ธฐ์ ์ ์ค์ ํ์ง ์๊ณ ์์๋ค์ ๊ฒฝ๊ณ์ ์์น์ ๋ฐ๋ผ ๋ ์ด์์ ์์คํ
์ ์กฐ์ ํ๋ค๋ฉด, ๋์ฑ ๊ฒฌ์คํ๊ณ ๋ฏธ๋ ์งํฅ์ ์ธ ๋ ์ด์์์ ๋ง๋ค์ด๋ผ ์ ์์ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ๋๋ฉด ์ฐ๋ฆฌ๊ฐ ์์ง ์์ํด๋ณธ ์ ๋ ์๋ ๊ธฐ๊ธฐ์ ๋ธ๋ผ์ฐ์ ๋ ๋ ์ ๋๋นํ ์ ์์ ๊ฒ์ด๋ค.
๋ผ๋ ๋ง์ธ๋ฐ, ์์ฆ์๋ ๋ชจ๋ฐ์ผ, ํ๋ธ๋ฆฟ, ๋ฐ์คํฌํฑ ์ฌ์ด์ ๊ฒฝ๊ณ๊ฐ ํ๋ ค์ง๊ณ ์๊ธฐ๋๋ฌธ์ ๊ฐ๊น์ด ๋ฏธ๋์๋ ์ฐ๋ฆฌ๊ฐ ๋ง๋๋ ์ฌ์ดํธ๊ฐ ์ค๋งํธํฐ๊ณผ ํ๋ฉด ํฌ๊ธฐ๊ฐ ๊ฑฐ์ ๋น์ทํ ์ค๋งํธ ์์น์์๋ ํ์๋ ์๋ ์๊ธฐ ๋๋ฌธ์ ๊ธฐ๊ธฐ ์ข
๋ฅ์ ํ์ ์ง์ง ๋ง๊ณ ํ๊ฒฝ์ ํน์ฑ์ ๊ณ ๋ คํ๋ ๊ฒ์ด ๊ฑด์ค์ ์ธ ๋ฐฉํฅ์ด๋ผ๋ ์๋ฏธ์ธ๊ฒ ๊ฐ๋ค.
์ด ์ฑ
์ ๋ณด๊ฒ ๋ ๊ณ๊ธฐ๋ ์๋ฆฌ์ค ํ ํ๋ก์ ํธ์์ ํ๋ก ํธ์๋๋ฅผ ์ค๋นํ๊ณ ์๋ ๋์๊ฒ ๋ฌด์งํ๋ ๋ฐฑ์๋ ํํธ๋ฅผ ๋ด๋นํ๊ฒ ๋์๊ณ , ๋งจ๋
์ ํค๋ฉํ๋๊ฒฉ์ผ๋ก ๋ฐฑ์๋์ ๊ดํ ์ ๋ณด๋ฅผ ์ด๋ฆฌ์ ๋ฆฌ ์ฐพ์๋ณด๋ ์ค ๋น๊ต์ ์ต๊ทผ(2021.5.21.
)์ ์ถํํ๊ณ Spring
์ ๋ค๋ฃจ๋ ์ฑ
์ด ์๋๋ผ Express.js
๋ฅผ ๋ค๋ฃจ๋ ์์ ์ด์ด์ ๊ตฌ๋งคํ๋ค. ์ฑ
์ ์๋ผ๋์์ ์ฃผ๋ฌธํ๊ณ , ์ฑ
์ ์ฝ 450ํ์ด์ง๋ก ๊ตฌ์ฑ๋์ด์์ผ๋ฉฐ ๋
์๊ธฐ๊ฐ์ 2022.01.25 ~ 2022.02.19
์ด๋ค.
ํํ์ด ์ฑ
์ ์ฝ์ผ๋ฉฐ ๋น์ฅ์ ๋ฐฑ์๋๋ฅผ ๊ตฌํํด์ผํ๋ํฐ๋ผ ๋ด๊ฐ ํ์ํ ์ฃผ์ ๋ง ๋จผ์ ์ดํด๋ดค๋ค. ์ต์คํ๋ ์ค ์๊ฐ, ํ์ง๋ณด์ฆ, ์ฟ ํค์ ์ธ์
, ๋ฏธ๋ค์จ์ด, ์ง์์ฑ, ๋ผ์ฐํ
, REST API์ JSON, SPA, ๋ณด์ ํํธ์๋ค. ์ด ์ค์์ ๊ฐ์ฅ ๊ธฐ์ต์ ๋จ๋ ๋ถ๋ถ์ ๋ฐ๋ก ๋ฏธ๋ค์จ์ด, ์ฟ ํค์ ์ธ์
์ธ๋ฐ, ๋๋ JWT
๋ฅผ ์ด์ฉํ์ฌ ์ธ์ฆ์ ๊ตฌํํ์ง๋ง ์๋ฒ์์ ์ฟ ํค๋ฅผ ์ ํ ์ธ์ํ์ง ๋ชปํ๋ ๋ฌธ์ ๊ฐ ์์๋๋ฐ ๊ฒฐ๊ตญ cookie-parser
๋ฏธ๋ค์จ์ด๋ฅผ ์์ฑํ์ง ์์์ ์๊ธฐ๋ ๋ฌธ์ ์๋ค.. (์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฝ 3์๊ฐ์ ์ฝ์งํ๋ค.) ๋๋ถ์ ๋ฏธ๋ค์จ์ด์ ์ค์์ฑ์ ๊นจ๋ฌ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ฟ ํค์ ๋ํด ๊ธฐ์กด์ ์๊ณ ์๋ ์ง์๊ณผ ๋๋ถ์ด ๋ช ๊ฐ์ง ์๋ก์ด ์ฌ์ค์ ์๊ฒ ๋์๋๋ฐ, ์ฟ ํค์ ๊ดํด ์์๋ฌ์ผ ํ ์ค์ํ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ๋ค.
1. ์ฌ์ฉ์๊ฐ ์ฟ ํค ๋ด์ฉ์ ๋ณผ ์ ์๋ค.
- ์๋ฒ์์ ํด๋ผ์ด์ธํธ์ ๋ณด๋ด๋ ์ฟ ํค๋ ๋ชจ๋ ํด๋ผ์ด์ธํธ์์ ๋ณผ ์ ์๋ค. ์ฟ ํค๋ฅผ ์ํธํํด์ ์ฝํ
์ธ ๋ฅผ ๋ณดํธํ ์ ์๊ธด ํ์ง๋ง, ๋ณ๋ณํ ๋ชฉ์ ์ผ๋ก๋ง ์ฌ์ฉํ๋ค๋ฉด ๊ตณ์ด ์ํธํํ ์ด์ ๊ฐ ์๋ค. ์๋ช
๋ (Signed)์ฟ ํค๋ ์ฝํ
์ธ ๋ฅผ ์ฝ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ค๊ธด ํ๊ฒ ์ง๋ง, ์ํธํ๋ผ๊ณ ํ ์ ์๋ ์์ค์ด ์๋๋ค.
2. ์ฌ์ฉ์๊ฐ ์ฟ ํค๋ฅผ ์ญ์ ํ๊ฑฐ๋ ๊ธ์งํ ์ ์๋ค.
- ์ฌ์ฉ์๋ ์ฟ ํค ์ ์ฒด์ ๋ํ ๊ถํ์ด ์๊ณ , ๋ธ๋ผ์ฐ์ ์๋ ์ฟ ํค๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก, ๋๋ ํ๊บผ๋ฒ์ ์ญ์ ํ๋ ๊ธฐ๋ฅ์ด ์๋ค. ๋ํ, ์ฌ์ฉ์๊ฐ ์ฟ ํค๋ฅผ ๊ธ์งํ ์๋ ์๋๋ฐ ์ด๋ด ๋ ์ฟ ํค ์์ด๋ ์ ๋๋ก ๋์ํ ์ ์๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๋ง ๋จ์ํ ๊ธฐ๋ฅ ๋ง๊ณ ๋ ์ํํ๊ธฐ ์ด๋ ต๋ค.
3. ์ฟ ํค๋ ๊ณต๊ฒฉ์ ์ฌ์ฉ๋ ์ ์๋ค.
- XSS(cross-site-scripting attack) ๊ณต๊ฒฉ ์ค ์
์์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ก ์ฟ ํค ์ฝํ
์ธ ๋ฅผ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ๋ ์๋ค. ์๋ฒ์ ์ ์๋๋ ์ฟ ํค๋ฅผ ๋งน์ ํด์๋ ์ ๋๋ ์ด์ ์ค ํ๋๋ค. `์๋ช
๋ ์ฟ ํค(Signed cookie)`๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ก ์ฟ ํค๋ฅผ ๋ณ์กฐํ์ ๊ฒฝ์ฐ ๊ทธ ํ์ ์ด ๋ช
๋ฐฑํ ๋๋ฌ๋๋ฏ๋ก ๊ณต๊ฒฉ์ ๋ง๋๋ฐ ๋์์ด ๋๋ค. (์๋ช
๋ ์ฟ ํค๋ ์ผ๋ฐ์ ์ธ ์ฟ ํค๋ณด๋ค ์ฐ์ ์์๊ฐ ๋๋ค. ์๋ช
๋ ์ฟ ํค์์ ์ฌ์ฉ๋ ์ด๋ฆ์ ์ผ๋ฐ ์ฟ ํค์์๋ ์ฌ์ฉํ ์ ์๋ค.) ๋๋ `httpOnly` ์ต์
์ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ์์ ์ฟ ํค๋ฅผ ์์ ํ์ง ๋ชปํ๊ณ ์๋ฒ์์๋ง ๊ฐ๋ฅํ๊ฒ๋ ์ค์ ํ ์๋ ์๋ค. ์ด๋ฐ ๊ฒฝ์ฐ ํ์ฉ๋๊ฐ ์กฐ๊ธ ๋จ์ด์ง์ง๋ง ํจ์ฌ ์์ ํ๋ค.
4. ์ฟ ํค๋ฅผ ๋จ์ฉํ๋ฉด ์ฌ์ฉ์๊ฐ ๋์น์ฑ๋ค.
- ์ฌ์ฉ์์ ์ปดํจํฐ์ ์ฟ ํค๋ ๋ฐ์ดํฐ๋ฅผ ๋๋ฌด ๋ง์ด ์ ์ฅํ๋ฉด ์ฌ์ฉ์๋ฅผ ์ง์ฆ๋๊ฒ ํ ์ ์์ผ๋ฏ๋ก ํผํด์ผ ํ๋ค. ์ฟ ํค๋ ์ต์ํ์ผ๋ก ์ ์งํด๋ผ.
5. ์ฟ ํค์์ ์ฌ์ฉ ํ ์ ์๋ option
- domain: ์ฟ ํค์ ๋๋ฉ์ธ์ ์ฐ๊ฒฐํ๋ค. ํ์ง๋ง ํ์ฌ ์๋ฒ๊ฐ ์คํ ์ค์ธ ๋๋ฉ์ธ์ด ์๋ ๋ค๋ฅธ ๋๋ฉ์ธ๊ณผ ์ฐ๊ฒฐํ ์๋ ์๋ค.
- path: ์ฟ ํค๊ฐ ์ ์ฉ๋ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๋ค. ๊ธฐ๋ณธ๊ฐ์ธ `/`๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ดํธ์ ๋ชจ๋ ํ์ด์ง์ ์ฟ ํค๊ฐ ์ ์ฉ๋๋ค. ๊ฒฝ๋ก๋ฅผ `/foo`๋ก ์ค์ ํ๋ฉด `/foo`, `/foo/bar` ๋ฑ์ ์ ์ฉ๋๋ค.
- maxAge: ํด๋ผ์ด์ธํธ๊ฐ ์ฟ ํค๋ฅผ ์ผ๋ง๋ ์ค๋ ๋ณด๊ดํ๊ณ ์์ด์ผ ํ๋์ง ๋ฐ๋ฆฌ์ด ๋จ์๋ก ์ง์ ํ๋ค. ์ด ์ต์
์ ์ค์ ํ์ง ์์ผ๋ฉด ์ฟ ํค๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์ ๋ ์ญ์ ๋๋ค. `expired` ์ต์
์์ ๋ง๋ฃ ๋ ์ง๋ฅผ ์ค์ ํ ์๋ ์์ง๋ง ๋ฌธ๋ฒ์ด ๋ณต์กํ๊ธฐ ๋๋ฌธ์ `maxAge`๋ฅผ ๊ถํ๋ค.
- secure: `HTTPS` ์ฐ๊ฒฐ์ ํตํด์๋ง ์ฟ ํค๋ฅผ ์ ์กํ๋ค.
- httpOnly: ์๋ฒ์์๋ง ์ฟ ํค๋ฅผ ์์ ํ๋ค. ์ฆ, client์์๋ ์ฟ ๋ฆฌ๋ฅผ ์์ ํ ์ ์๋ค. XSS๊ณต๊ฒฉ์ ๋ง๋๋ฐ ๋์์ด ๋๋ค.
- signed: ์ฟ ํค์ ์๋ช
์ ํด์ `res.cookie`๊ฐ ์๋๋ผ `res.signedCookies`์์ ์ ๊ทผํ ์ ์๊ฒ ํ๋ค. ์๋ช
๋ ์ฟ ํค๊ฐ ๋ณ์กฐ๋๋ฉด ์๋ฒ๋ ๊ทธ ์ฟ ํค๋ฅผ ๊ฑฐ๋ถํ๊ณ ์๋ ๊ฐ์ผ๋ก ์ด๊ธฐํ ํ๋ค.
๋ํ, passport
๋ฅผ ์ด์ฉํด ์ธ์ฆํํธ๋ฅผ ๊ตฌํํ๋๋ฐ, GitHub Strategy
๋ฅผ ์ฌ์ฉํด์ ๋ค์๊ณผ ๊ฐ์ด ์ธ์ฆ์ ๊ตฌํํ๋ค. ์ฒ์์๋ passport
ํํ์ด์ง์ docs์ ๋น์ทํ๊ฒ ์์ฑํ์ง๋ง, ๋ค์ ์ฝ๋๋ ๋ด๊ฐ GitFarm
ํ๋ก์ ํธ์์ ์์ฑํ ๋ฐฑ์๋ ์ฝ๋์ด๋ค. ์ฝ๋๋ ์งง์๋ณด์ด์ง๋ง ๋์ ์๋น์ค์ ํ์ํ ์ ๋ณด์ ๋ง๊ฒ ์์ ํ๋๋ฐ ๊ทธ ์์
์ด ์๊ฐ๋ณด๋ค ์ค๋ ๊ฑธ๋ ธ๋ค.
// passport/strategy/GitHub.js
import GitHub from "passport-github2";
import keys from "../../config/keys.js";
import { User } from "../../model/index.js";
const GitHubStrategy = GitHub.Strategy;
const { clientID, clientSecret, callbackURL } = keys.GitHub;
const config = {
clientID,
clientSecret,
callbackURL,
};
export default new GitHubStrategy(
config,
async (accessToken, refreshToken, profile, done) => {
const { username } = profile;
const { id, avatar_url: avatarUrl } = profile._json;
const findUser = await User.findOne({ id });
if (!findUser) {
const newUser = new User({
id,
username,
avatarUrl,
accessToken,
});
newUser.save();
return done(null, newUser);
}
return done(null, findUser);
},
);
// routes/api/auth.js
router.get(
"/github",
passport.authenticate("github", {
scope: ["repo", "profile", "user"],
session: false,
}),
);
router.get(
"/github/callback",
passport.authenticate("github", {
session: false,
failureRedirect: "/api/auth/login/failed",
}),
async (req, res) => {
const { id, username } = req.user;
const payload = { id, username };
const token = await createToken(payload);
res.cookie("token", token, cookieConfig);
res.redirect("/loading");
},
);
์ด ์ฑ
์ ์ฝ์ผ๋ฉฐ ์ต์ํ์ ๋ฐฑ์๋์์ ํ์ํ ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ ๋์์ ๋ง์ด ๋ฐ์๋ค. ์์ง๊น์ง ์ฐ๋ฆฌ๋๋ผ์์๋ Express.js
๋ณด๋ค Spring
์ ๋ ๋ง์ด ์ฌ์ฉํ์ง๋ง, ๋ฐฑ์๋์ ํฐ ํ์ ๋ฒ์ด๋์ง ์์ ๊ฒ์ด๋ค. JAVA
๋ณด๋ค JS
๋ฅผ ๋ ์ ์๋ฉด์ ๋ฐฑ์๋๋ฅผ ๋ง๋ณด๊ณ ์ถ์ ๋ถ๋ค์๊ฒ ์ถ์ฒํด์ฃผ๊ณ ์ถ์ ์ฑ
์ด๋ค.
reference
- ํ ๊ถ์ผ๋ก ๋๋ด๋ Node & Express : ๋ชจ๋ ์น์ ์ํ ์๋ฒ ์ฌ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๊ฒ
- Passport-GitHub2
๊ธฐ์ ๋ฉด์ ์ ์ค๋นํ๋ค๊ฐ ์ฃผ์ํ์์ฐฝ์ www.naver.com
์ ์
๋ ฅํ๊ณ Enter
๋ฅผ ์น๊ณ ๋์ ๋ธ๋ผ์ฐ์ ๋ก ๋ ๋๋ง๋๋ ๊ณผ์ ์ ์ค๋ช
ํด๋ฌ๋ผ๋ ๋ง์ ๋ฃ๊ณ ์ด๋ป๊ฒ ๋๋์ง ๊ถ๊ธํ์ฌ ๋คํธ์ํฌ ํ๋กํ ์ฝ์ชฝ์ ๋ค๋ฃฌ ์์ ์ด ์๋์ง ์ฐพ์๋ณด๋ค ์ด ์ฑ
์ ๋ฐ๊ฒฌํ๊ฒ ๋์๋ค. ์๋ผ๋์์ ๊ตฌ๋งคํ์๊ณ , ๊ตฌ๋งค์์ ํ๋ ๋๋ฆ ๊ด์ฐฎ์๋ค. ๋
์๊ธฐ๊ฐ์ 22.3.31. ~ 4.5.
์ด๊ณ , ์ฑ
์
์ฝ 300ํ์ด์ง๋ก ๊ตฌ์ฑ๋์ด์์ง๋ง, ๊ทธ๋ฆผ์ผ๋ก ์ค๋ช
ํด์ฃผ๋ ํ์ด์ง๊ฐ ๋ง์ ์์๋ณด๋ค ๋นจ๋ฆฌ ์ฝ์๋ค. ์ฒซ ์ถํ์ด 2015๋
์ด๋ผ ํ์ฌ ํธ๋ ๋(WEB 3.0
๋ฑ)๋ฅผ ์ค๋ช
ํด์ฃผ์ง ์๋ ์ ์ด ์์ฌ์ ์ง๋ง, ๋๋ถ๋ถ์ ๋ด์ฉ์ ์์ง๊น์ง๋ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ, ํ๋กํ ์ฝ์ ์ ์ฒด์ ์ธ ํ๋ฆ์ ์๊ณ ์ถ์ ๋ถ๋ค์๊ฒ ์ถ์ฒํ๊ณ ์ถ์ ์ฑ
์ด๋ค. ์ฐธ๊ณ ์ฌํญ์ผ๋ก ์ฑ
์ ๋ชฉ์ Basic
์ด ๋ค์ด๊ฐ์ ๊ทธ๋ฐ์ง ํ ๊ฐ๋
์ ๊น์ํ ์ค๋ช
ํด์ฃผ์ง๋ ์๋๋ค.
์ปจํ ์ธ ๋ ์ด 11์ฅ์ผ๋ก ๊ตฌ์ฑ๋์ด์๊ณ , ์น๊ณผ ๋คํธ์ํฌ์ ๊ธฐ๋ณธ๋ถํฐ HTTP, HTTPS, ์น ๊ณต๊ฒฉ๊ธฐ์ ๊น์ง ์์ฑ๋์ด์๋ค.
HTTP
๋ ๋ฑ์ฅ ๋น์ ์ฃผ๋ก ํ
์คํธ๋ฅผ ์ ์กํ๊ธฐ ์ํ ํ๋กํ ์ฝ์ด์์ง๋ง, ํ๋กํ ์ฝ ์์ฒด๊ฐ ์๋นํ ์ฌํํด์ ์ฌ๋ฌ ๊ฐ์ง ์์ฉ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํด ๊ธฐ๋ฅ์ด ๊ณ์ํด์ ์ถ๊ฐ๋์์ต๋๋ค. ์ง๊ธ์ ์น์ด๋ผ๋ ํ์ ๋์ด ๋ค์ํ๊ฒ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ์ด ๋์์ต๋๋ค.
์๋ก ๋ค๋ฅธ ํ๋์จ์ด์ ์ด์์ฒด์ ๋ฑ์ ๊ฐ์ง๊ณ ์๋ก ํต์ ํ๊ธฐ ์ํด์๋ ๋ชจ๋ ์์์ ๊ท์น์ด ํ์ํ๊ฒ ๋๋๋ฐ ์ด๋ฅผ ํ๋กํ ์ฝ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
ํ๋กํ ์ฝ์๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์์ง๋ง, ์ธํฐ๋ท๊ณผ ๊ด๋ จํ ํ๋กํ ์ฝ๋ค์ ๋ชจ์ ๊ฒ์ TCP/IP
๋ผ๊ณ ๋ถ๋ฆ
๋๋ค. TCP/IP
๋ ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต
, ํธ๋์คํฌํธ ๊ณ์ธต
, ๋คํธ์ํฌ ๊ณ์ธต
, ๋งํฌ ๊ณ์ธต
์ด๋ ๊ฒ 4๊ณ์ธต์ผ๋ก ๋๋๋๋ฐ, ๊ณ์ธตํ ๋์ด์๋ ์ด์ ๋ ์ด๋์ ๊ฐ ์ฌ์์ด ๋ฐ๋ ๋ ์ ์ฒด๋ฅผ ๋ฐ๊พธ๋ ๊ฒ๋ณด๋ค ์ฌ์์ด ๋ณ๊ฒฝ๋ ํด๋น ๊ณ์ธต๋ง ๋ฐ๊พธ๋ฉด ์์ ์ ํธํ๊ฒ ํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
๊ฐ ๊ณ์ธต์ ๊ฑฐ์น ๋๋ ๋ฐ๋์ ํค๋์ ํด๋น ๊ณ์ธต์ ํ์ํ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๊ณ , ๋ฐ๋๋ก ์์ ์ธก์์๋ ํด๋น ๊ณ์ธต๋ง๋ค ์ฌ์ฉํ ํค๋๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
IP
์ ์ญํ ์ ๊ฐ๊ฐ์ธ์ ํจํท์ ์๋๋ฐฉ์๊ฒ ์ ๋ฌํ๋ ๊ฒ์
๋๋ค. IP
์ฃผ์๋ ๊ฐ ๋
ธ๋์ ๋ถ์ฌ๋ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๊ณ MAC
์ ๊ฐ ๋คํธ์ํฌ ์นด๋์ ํ ๋น๋ ๊ณ ์ ์ ์ฃผ์์
๋๋ค. IP
์ฃผ์๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ์ง๋ง, ๊ธฐ๋ณธ์ ์ผ๋ก MAC
์ฃผ์๋ ๋ณ๊ฒฝ ํ ์ ์์ต๋๋ค.
IP
ํต์ ์ MAC
์ฃผ์์ ์์กดํด์ ํต์ ์ ํฉ๋๋ค. ์ธํฐ๋ท์์ ์ฌ๋ฌ๋์ ์ปดํจํฐ์ ๋คํธ์ํฌ ๊ธฐ๊ธฐ๋ฅผ ์ค๊ณํด์ ์๋๋ฐฉ์๊ฒ ๋์ฐฉํฉ๋๋ค.(๊ฐ์ ๋์ ๋ด์ ์๋ ๊ฒฝ์ฐ ์ ์ธ) ์ค๊ณํ๋ ๋์, ๋ค์์ผ๋ก ์ค๊ณํ ๊ณณ์ MAC
์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ชฉ์ ์ง๋ฅผ ์ฐพ์๊ฐ๋๋ฐ, ์ด๋ ARP(Address Resolution Protocol)
์ด๋ผ๋ ํ๋กํ ์ฝ์ด ์ฌ์ฉ๋ฉ๋๋ค.
TCP(Transfer Control Protocol)
์ ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํธ ์คํธ๋ฆผ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ฝ๊ฒ๋งํด ํฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ฝ๊ฒ TCP
์ธ๊ทธ๋จผํธ๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋จ์ ํจํท์ผ๋ก ์๊ฒ ๋ถํดํ์ฌ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋งํ๊ณ ์ ํํ๊ฒ ๋์ฐฉํ๋์ง ํ์ธํ๋ ์ญํ ์ ๋ด๋นํ๊ณ ์์ต๋๋ค. ์ด๋, ์๋์๊ฒ ํ์คํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ํด 3-way-handshaking
๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. ํจํท์ ๋ณด๋ด๋ ๊ฒ์์ ๋๋๋๊ฒ ์๋๋ผ, ๋ณด๋๋์ง ์ฌ๋ถ๋ฅผ ์๋์๊ฒ ํ์ธํ๊ณ SYN
, ACK
์ด๋ผ๋ TCP
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ก์ ์ธก์์๋ ์ต์ด SYN
ํ๋๊ทธ๋ฅผ ์๋์๊ฒ ์ ์ํจ๊ณผ ๋์์ ํจํท์ ๋ณด๋ด๊ณ , ์์ ์ธก์์๋ SYN/ACK
ํ๋๊ทธ๋ก ์ก์ ์ธก์ ์ ์ํจ๊ณผ ๋์์ ํจํท์ ์์ ํ ์ฌ์ค์ ์ ํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ก์ ์ธก์ด ACK
ํ๋๊ทธ๋ฅผ ๋ณด๋ด ํจํท ๊ตํ์ด ์๋ฃ๋์์์ ์ ํฉ๋๋ค.
1. ํฌ๋กฌ ์ฃผ์ํ์์ฐฝ์ `www.naver.com`์ ์
๋ ฅํ๋ค.
2. ๋ธ๋ผ์ฐ์ ๊ฐ `protocol`, `host`, `port๋ฅผ` ํ์ฑํ๋ค.
3. `HSTS`๋ฅผ ํตํด `HTTPS`๋ก ์ด์ ์ ์ ์ํ ๋๋ฉ์ธ์ด์๋์ง ํ์ธํ๋ค.
4. `DNS`๊ฐ `Domain`์ `IP`๋ก ๋ณ๊ฒฝํ๋ค.
5. `Router`๋ฅผ ํตํด ์์ฒญ์ ์์ ํ ์๋ฒ๊ฐ ์๋ `Gateway`๋ก ์ด๋ํ๋ค.
6. `ARP`๋ฅผ ์ด์ฉํด `IP`์ฃผ์๋ฅผ ๋ฐํ์ผ๋ก `MAC`์ฃผ์๋ฅผ ์กฐ์ฌํ๋ค.
7. `TCP`๋ฅผ ์ด์ฉํด ์์ผํต์ ์ ์งํํ๋ค. ์ด๋, ์๋๋ฐฉ์๊ฒ ํ์คํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ํด `3-way-handshaking`๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค. (`HTTPS`์ผ ๋๋ `HTTP`์ `SSL`์ด ํต์ ํ๊ณ `SSL`์ด `TCP`์ ํต์ ํ๋ค.)
8. ์ ์์ ์ผ๋ก `TCP socket`์ ์ฐ๊ฒฐ๋๋ฉด, ์๋ฒ์ ํ์ด์ง๋ฅผ ๋ฌ๋ผ๊ณ ์์ฒญํ๋ค.
9. ์๋ฒ์์ ํด๋ผ์ด์ธํธ์๊ฒ `HTML, CSS, JS`๋ฅผ ๋ณด๋ด์ค๋ค.
์ด๋ ๊ฒํด์ ๋คํธ์ํฌ ํต์ ์ ์ ์ฒด์ ์ธ ํ๋ฆ์ ์ดํด๋ดค๋ค. ๊ตฌ๊ธ๋ง์ ํตํด ๋ฐฐ์ธ์๋ ์์ง๋ง, ์ด๋ฐ ๊ฐ๋
์ ์์ ์ผ๋ก ๋ณด๋๊ฒ ๋ ํธํ๋ค. (์ต๊ทผ ํธ๋ ๋๋ ๊ณต์๋ฌธ์๋ฅผ ๋ณด๋๊ฒ ์ข๋ค.) ์ฌ์ค, ํ๋ถ๊ณผ์ ์์๋ ์ด์ ๋น์ทํ ์ ๋ณดํต์ ๊ณตํ๊ฐ๋ก
๊ณผ๋ชฉ์ ์๊ฐํ์ ์ด ์์ผ๋ ํ๊ณ ์ง๋๊ฐ๋ฏ ๋ฐฐ์ฐ๊ณ ์ค๋๋์ด์ ์์ธํ ๊ธฐ์ต์ด ๋์ง ์์๋ค. Typescript
, React
๋ฑ์ ๊ณต์๋ฌธ์๋ฅผ ๋ณด๋๊ฒ๋ ์ข์ง๋ง, ๊ทผ๋ณธ์ ์ผ๋ก ๋คํธ์ํฌ ํต์ ์ด ์ฌ๋ฐ๋ฅด๊ฒ ํต์ ์ด ๋์ด์ผ ์๋ฏธ๊ฐ ์์ผ๋ฏ๋ก ๋คํธ์ํฌ์ ๊ด๋ จํ ์์ ์ ์์ฃผ ์ฝ์ด์ผ๊ฒ ๋ค๋ ์๊ฐ์ ํ๋ค.
Reference
์ต๊ทผ์ ์ฝ์๋ ๊ทธ๋ฆผ์ผ๋ก ๋ฐฐ์ฐ๋ Http & Network Basic(๋
ํ๊ฐ ๋ณด๋ฌ๊ฐ๊ธฐ)์ ์ฝ๊ณ ๋์ ๋คํธ์ํฌ์ ๋ํ ์ ์ฒด ํ๋ฆ์ ๋๋ต ํ์
ํ๋๋ฐ, HTTP
๋ TCP
ํ์ค์ ์์กดํ๋ค๋ MDN
๊ธ์ ๋ณด๊ณ ์ฐ๋ฆฌ๊ฐ ํํ ์๊ณ ์๋ ํ๋กํ ์ฝ์ ์งํฉ์ธ TCP/IP
๋ฅผ ์ค๋ช
ํด์ฃผ๋ ์์ ์ ์๋์ง ์ฐพ์๋ณด๋ค๊ฐ ์ด ์ฑ
์ ๋ฐ๊ฒฌํ๋ค.
์ฌ๋ด์ผ๋ก TCP/IP
๋ ํ๋์ ํ๋กํ ์ฝ์ ์ง์นญํ๋ ๋ง์ด ์๋๋ผ ์ธํฐ๋ท์์ ์ฌ์ฉ๋๋ ๊ฐ์ข
ํ์ค ํ๋กํ ์ฝ์ ํ๋ฐ ๋ชจ์ ์ผ์ปซ๋ ๋ง์ด๋ค. TCP/IP
๋ผ๊ณ ๋ถ๋ฅด๋ ์ด์ ๋ ํ๋กํ ์ฝ์ค ๊ฐ์ฅ ๋ํ์ ์ธ ํ๋กํ ์ฝ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ๊ฐ๋ณ ํ๋กํ ์ฝ์ ์ผ์ปซ์ง ์๊ณ , ์ธํฐ๋ท ํ๋กํ ์ฝ์ ์งํฉ์ ์๋ฏธ๋ก ๊ตณ์ด ๊ตฌ๋ถํ ๋๋ TCP/IP ํ๋กํ ์ฝ ์ค์ํธ
(TCP/IP Protocol Suite) ํน์ ์ธํฐ๋ท ํ๋กํ ์ฝ ์ค์ํธ(Internet Protocol Suite)๋ผ๊ณ ๋ถ๋ฅด๋ฉด ๋๋ค.
์ฑ
์ ์๋ผ๋์์ ๊ตฌ๋งคํ์ผ๋ฉฐ ๋
์๊ธฐ๊ฐ์ 22.4.18. ~ 22.4.21.
์ด๋ค. ์ฑ
ํ์ด์ง๋ ์ฝ 170ํ์ด์ง๋ก ๊ตฌ์ฑ๋์ด์์ผ๋ฉฐ, ๊ธ๋ง ์๋๊ฒ ์๋๋ผ ๊ทธ๋ฆผ์ผ๋ก ์ค๋ช
ํด์ฃผ๋ ํ์ด์ง๊ฐ ๋ง์ ์์ธ๋ก ๋นจ๋ฆฌ ์ฝ์๋ค. 1์ ๋ฐํ์ 2016๋
์ด๊ณ 3์ ๋ฐํ์ 2020๋
์ด๋ค. ๋น๊ต์ ์ต์ ์์ ์ด ์๋๊ธฐ ๋๋ฌธ์ ๊ธฐ์ ์ด ๋ฐ๋์์ผ๋ฉด ์ด์ฉ์ง?๋ผ๋ ์๊ฐ์ด ๋ค์์ผ๋, OSI 7๊ณ์ธต
์ ์์ง๋ ๋๋ฆฌ ์ฐ์ด๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ฑฑ์ ํ์ง ์์๋ ๋๋ค.
์ฑ
์ TCP/IP
๋ง ์ง์ํ๊ฒ ์ค๋ช
ํ๋ ๊ฒ์ด ์๋๋ผ OSI 7๊ณ์ธต
์ ํ ์ฑํฐ์ฉ ์๊ฐํด์ฃผ๊ณ ์๋ค. ์ปดํจํฐ ๋คํธ์ํฌ, ๋คํธ์ํฌ ์๋น์ค์ ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต, ํธ๋์คํฌํธ ๊ณ์ธต, ๋ผ์ฐํ
๊ณผ ์ธํฐ๋ท ๊ณ์ธต, ํ๋์จ์ด์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค ๊ณ์ธต, ๋ณด์ ์์ผ๋ก ์ฑํฐ๊ฐ ๋๋์ด์๋ค. ์ ๋ณดํต์ ๊ณตํ์ ์ ๊ณตํ ๋๋ก์๋ ์ฑ
์์ ์ค๋ช
ํด์ฃผ๋ ๋ด์ฉ์ด ํ๋ถ ์ ๊ณต์์ ๋ฐฐ์ด๋ด์ฉ๊ณผ ๋น์ทํ์ง๋ง, ์ ๊ณต์์ ์ด ์ด ์ ๋๋ก ์ฝ๊ณ ์น์ ํ๊ฒ ์ค๋ช
ํด์คฌ๋ค๋ฉด ์ผ๋ง๋ ์ข์๊น๋ผ๋ ์๊ฐ์ด ๋งค๋ฒ ๋ค์๋ค. ๐
๐
๋ง์ ๋ด์ฉ ์ค ์ด๋ฒ ๋
ํ๊ฐ์ ํธ๋์คํฌํธ๊ณ์ธต์ TCP
์ ์ธํฐ๋ท๊ณ์ธต์ IP
์ ๋ํด์ ๋ฐฐ์ด ๋ด์ฉ์ ๊ฐ๋จํ๊ฒ ์์ฑํ๋ ค๊ณ ํ๋ค.
์ปดํจํฐ์ ์ปดํจํฐ ์ฌ์ด์์ ๋ฐ์ดํฐ๊ฐ ์ค๊ณ ๊ฐ๋ ๋ชจ์ต์ ๋น๊ต์ ์ฝ๊ฒ ์์ํ ์ ์์ผ๋, ์ปดํจํฐ ์์ ํ๋ก๊ทธ๋จ๊น์ง ๋ฐ์ดํฐ๊ฐ ์ ๋ฌ๋๋ ๋ชจ์ต์ ์ฝ๊ฒ ์์ํ๊ธฐ ์ด๋ ค์ด๋ฐ, ์ปดํจํฐ ์๊น์ง ๋ค์ด์จ ๋ฐ์ดํฐ๋ฅผ ๊ฐ ํ๋ก๊ทธ๋จ๊น์ง ์ ๋ฌํ๋ ๊ฒ์ด ํธ๋์คํฌํธ ๊ณ์ธต์ด๋ค. ํธ๋์คํฌํธ๊ณ์ธต์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต๊ณผ ์ธํฐ๋ท ๊ณ์ธต ์ฌ์ด์ ์์นํ๋๋ฐ, ์ธํฐ๋ท ๊ณ์ธต์ ์ญํ ์ด ๋ฐ์ดํฐ๋ฅผ ์์ ์ง ์ปดํจํฐ๊น์ง ์ ๋ฌํ๋ ๊ฒ์ด๋ผ๋ฉด, ํธ๋์คํฌํธ ๊ณ์ธต์ ์ญํ ์ ์ปดํจํฐ๊ฐ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ๊น์ง ์ ๋ฌํ๋ ๊ฒ์ด๋ค.
ํธ๋์คํฌํธ๊ณ์ธต์ ๋ํ์ ์ธ ํ๋กํ ์ฝ์ TCP
์ UDP
๋ ๊ฐ์ง๋ก, TCP
๋ ์น์ด๋ ์ด๋ฉ์ผ๊ณผ ๊ฐ์ด ๋ฐ์ดํฐ๊ฐ ์ ํํ๊ฒ ์ ๋ฌ๋์ด์ผ ํ๋ ํต์ ์ ์ฌ์ฉ๋๋ค. ์ฆ, ์์ ์ง์ ๋ฐ์ดํฐ๊ฐ ์ ํํ๊ฒ ์ ๋ฌ๋๋๋ก ์ ์ก ์๋๋ฅผ ์กฐ์ ํ๊ฑฐ๋ ๋๋ฌํ์ง ์์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ ์กํ๋ค. UDP
๋ VoIP
๋ ๋์์ ์คํธ๋ฆฌ๋ฐ๊ณผ ๊ฐ์ด ์ ์ก ์๋๊ฐ ๋นจ๋ผ์ผ ํ๋ ๊ณณ์ ์ฌ์ฉํ๋ค. UDP
๋ ๋ณ๋ค๋ฅธ ์ฒ๋ฆฌ๋ฅด ํ์ง ์๋ ๋์ ์ ์ก์๋๊ฐ ๋น ๋ฅด๋ค.
๊ฐ๋ ๋ฐฐํฌ๋ฅผ ์งํํ๋ค๊ฐ HTTP
์๋ฒ๋ 80๋ฒ ํฌํธ๋ก ๊ณ ์ ๋์ด์๋๋ฐ, ํด๋ผ์ด์ธํธ์ ํฌํธ๋ ๋ฌด์์ผ๊น?๋ผ๋ ์๊ฐ์ด ๋ ์ ์ด ์๋๋ฐ, ํด๋ผ์ด์ธํธ์ธ ์น ๋ธ๋ผ์ฐ์ ๋ ๋ค์ด๋๋ฏน ํฌํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ํฌํธ ๋ฒํธ๊ฐ ์ ๋น์ด ์ ํด์ ธ์์ง ์๋ค. ๋ค์ด๋๋ฏน ํฌํธ๋ 49152 ~ 65535
๋ฒ์ผ๋ก ์๋ฒ์ ํต์ ์ ํ๋ค๊ฐ ํต์ ์ด ์ข
๋ฃ๋๋ฉด ํฌํธ๋ฅผ ๋ฐ๋ฉํ๋ค.
TCP
๋ ๋ฐ์ดํฐ ์ ์ก์ ์ ๋ขฐ์ฑ์ ๋ํ๊ธฐ์ํด ๋ฐ์ดํฐ๋ฅผ ์ธ๊ทธ๋จผํธ(segment)๋จ์๋ก ๋ถํ ํ๊ณ , ์ ์ก์๋๋ฅผ ์กฐ์ ํ๋ฉฐ, ๋ฐ์ดํฐ๊ฐ ์ ๋๋ก ์ ๋ฌ๋์ง ์์์๊ฒฝ์ฐ ์ฌ์ ์ก์ ํ๊ฒ ๋๋ค. TCP
ํต์ ์ ์ปค๋ฅ์
์ฐ๊ฒฐ์์๋ถํฐ ์์ํ๋๋ฐ, ์ปค๋ฅ์
์ ๋งบ๋ ๊ณผ์ ์ 3๋จ๊ณ๋ก ์งํ๋๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ 3-way-handshake
๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ปค๋ฅ์
์ด ๋งบ์ด์ง๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋ ์ํ๊ฐ ๋๊ณ , ๋ฐ์ดํฐ ์ ์ก์ด ๋๋๋ฉด ์ปค๋ฅ์
์ ๋๋๋ค. ์์์ ์ ์ก์๋๋ฅผ ์กฐ์ ํ๋ค๊ณ ํ๋๋ฐ, ๋คํธ์ํฌ ๊ฒฝ๋ก๊ฐ ํผ์กํ์ฌ ํต์ ์๋๋ฅผ ๋ฎ์ถฐ์ผ ํ๋ฉด, ์ธํฐ๋ท ๊ณ์ธต์ ํค๋ ์์ ํผ์ก ํ๋๊ทธ๊ฐ ON
์ผ๋ก ์ค์ ๋๊ณ , ์ก์์ ์ธก ์์ชฝ์ด ECE
ํ๋๊ทธ์ CWR
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํด์ ํต์ ์๋๋ฅผ ์กฐ์ ํ๋ค.
๋ค์์ผ๋ก ์ธํฐ๋ท ๊ณ์ธต์ IP
์ ๋ํด์ ์์๋ณด์. ์ธํฐ๋ท ๊ณ์ธต์ ๋ค๋ฅธ ์ปดํจํฐ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ์ญํ ์ ํ๋ค. ์ด๋ IP Address
๋ผ๊ณ ํ๋ ์๋ณ์ ์ ๋ณด๋ฅผ ์ค๋ง๋ฆฌ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ์ ์๋ ์ฒด๊ณ๋ฅผ ์ ๊ณตํ๋๋ก ์ญํ ์ด ๊ฐ๊ฐ ๊ตฌ๋ถ๋์ด ์๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ชฉ์ ์ง๊น์ง ์ ๋ฌํ๊ธฐ ์ํด์๋ ๋ผ์ฐํฐ(router)
๋ผ๊ณ ํ๋ ๋คํธ์ํฌ ์ฅ๋น๊ฐ ํ์ํ๋ค. ๋ผ์ฐํฐ๋ ๋คํธ์ํฌ์ ๋คํธ์ํฌ๋ฅผ ์ฐ๊ฒฐํ๋ ์ญํ ์ ํ๋๋ฐ, ํ๋์ ๋ผ์ฐํฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋ชฉ์ ์ง๊น์ง ์ ๋ฌํ๊ธฐ ์ํด ๋ค์ ๋คํธ์ํฌ์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๊ณ , ๊ทธ ๊ฒฝ๋ก์์ ์๋ ๋ผ์ฐํฐ์๊ฒ ๋ฐ์ดํฐ ์ ๋ฌ์ ์์ํ๊ฒ ๋๋ค. ์ต์ข
๋ชฉ์ ์ง๋ฅผ ์ฐพ๊ธฐ๊น์ง ์ฐ์์ ์ผ๋ก ๋ฐ๋ณต๋๋๋ฐ, ์ด๋ ๊ฒ ๋ผ์ฐํฐ๊ฐ ๋ชฉ์ ์ง์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ๋๊ฐ๋ ๊ณผ์ ์ ๋ผ์ฐํ
(routing)
์ด๋ผ๊ณ ํ๋ค. IP Address
์ ๊ด๋ จ๋ ๊ธฐ์ ๋ก๋ ์ซ์๋ก ๋ IP Address
๋ฅผ ์ฌ๋์ด ์์๋ณด๊ธฐ ์ฌ์ด ๋๋ฉ์ธ๋ช
๊ณผ ์ฐ๊ฒฐํด์ฃผ๋ DNS(Domain Name System)
๋ฑ์ด ์๋ค.
์์ ์๋ก ์ง์ ๋ ์ปดํจํฐ๊ฐ ์ค์ ๋ก ์กด์ฌํ์ง ์๊ฑฐ๋ ์๋ชป๋ ๊ฒฝ๋ก๋ก ์ธํด ํจํท์ด ์ ๋๋ก ์ ๋ฌ๋์ง ์๋ ๊ฒฝ์ฐ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด IPv4
ํค๋์์๋ ์์กด๊ธฐ๊ฐ(TTL, Time To Live)
(ํฐ์๋ผ & ์ด์ ์ฑ์ TTL(TIME TO LOVE) ์๋.) ๊ฐ์ ์ค์ ํ์ฌ ์์กด ๊ธฐ๊ฐ์ ์ด๊ณผํ ํจํท์ด ๋คํธ์ํฌ์์ ๋ฐ๊ฒฌ๋๋ฉด ํด๋น ํจํท์ ์๋ฉธ์ํค๋๋ก ๊ท์ ํ๊ณ ์๋ค.
์ด๋ ๊ฒํด์ TCP/IP
์ ๊ดํ ๋ด์ฉ์ ๊ฐ๋จํ๊ฒ ์ดํด๋ดค๋ค. FE
๊ธฐ์ ๋ฉด์ ์์ ์์ฃผ ๋ฌผ์ด๋ณด๋ ์ง๋ฌธ ์ค ํ๋๊ฐ ์ฃผ์ํ์์ฐฝ์ www.google.com
์ ์น๊ณ ๋์ ์ผ์ด๋๋ ์ผ๋ค๊ณผ ๋ธ๋ผ์ฐ์ ๋ก ๋ ๋๋งํ๋ ๊ณผ์ ์ ๊ตฌ์ฒด์ ์ผ๋ก ์๋ ค๋ฌ๋ผ๊ณ ํ๋ ์ง๋ฌธ์ด ๋ง์๋ฐ, ์ด ์ฑ
์ ๋น๋กฏํ์ฌ ๋คํธ์ํฌ ๊ด๋ จ ์์ ์ ํตํด ๋คํธ์ํฌ ์ ๋ฐ์ ์ธ ํ๋ฆ์ ์ฝ๊ณ ์ดํดํ๋ฉฐ ๋จธ๋ฆฌ์์ ๋ฃ๊ณ ์ง๋ฌธ์ด ๋ค์ด์์ ๋ ์ ๋๋ตํ์ผ๋ฉด ์ข๊ฒ ๋ค. ์ค์ ๋ก ์ต๊ทผ์ ๋ณธ ๊ธฐ์ ๋ฉด์ ์๋ ๋์ผํ ์ง๋ฌธ์ด ๋์์๋๋ฐ, ๋คํธ์ํฌ ๊ด๋ จ ์์ ์ 2๊ถ์ ๋ ๋ด์ ๊ทธ๋ฐ์ง ์์ ์๊ฒ ๋๋ตํ๊ณ ๋ฉด์ ๊ด๋๊ป์๋ ๊ตฌ์ฒด์ ์ผ๋ก ์ ์๋ค๊ณ ์นญ์ฐฌํด์ฃผ์
จ๋ค.
๋ง์ง๋ง์ผ๋ก ํ๋ถ์์ ์ด๋ ์ง๊ธ์ด๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋คํธ์ํฌ๋ฅผ ๋ฐฐ์ฐ๋ฉฐ ๋๋ ์๊ฐ์ ๋คํธ์ํฌ ๋ง์ ๊ตฌ์ถํ๊ธฐ ์ํด ์ ์ธ๊ณ ์ฌ๋๋ค์ด ๋จธ๋ฆฌ๋ฅผ ๋ง๋์ด ์ฒด๊ณ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ถํด์ฃผ์ ์ ๊ฐ์ฌํ๊ณ , ๊ทธ๋ถ๋ค ๋๋ถ์ ์ง์์ ์ ์ฝ๊ฒ ์ ์ธ๊ณ์ ์๋ฃ๋ฅผ ๋ณผ ์ ์๋ค๋ ์ ์ ๊ฐ์ฌํ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
Reference
- https://developer.mozilla.org/ko/docs/Web/HTTP/Overview#http%EC%99%80_%EC%97%B0%EA%B2%B0
- https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=91820548
- https://ko.wikipedia.org/wiki/OSI_%EB%AA%A8%ED%98%95
- https://ko.wikipedia.org/wiki/%EB%8F%84%EB%A9%94%EC%9D%B8_%EB%84%A4%EC%9E%84_%EC%8B%9C%EC%8A%A4%ED%85%9C