๊ณํ
โป ~ 9/19 ์ผ๊น์ง ์ํํด์ผํ ๋ด์ฉ
1. node.js ์๋ฒ ๊ตฌ์ถ
2. node.js ๋์์ ์คํธ๋ฆฌ๋ฐ ์๋ฒ ๊ตฌ์ถ
3. ๋์์(1080p, 720p, 480p)์ค๋น → https://blog.naver.com/yms099/220683890931
4. ๋์์ ์๋ฌด๊ฑฐ๋ h1, h2, h3 ๋ชจ๋ ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ์์ ์ํ๋ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๊ฒ๋
โฒ ํ์ด์ง ๋ก๋์๊ฐ
โฒ TTFB
โฒ Queing & Stalled
5. ์๋ก ๋ฐ ์ด๋ก ์ ๋ฐฐ๊ฒฝ
Node.js ๊ณต๋ถํ๊ธฐ ๋ฐ ์คํ ํ๊ฒฝ ์ฌ์ ์ค๋น ํ๊ธฐ
node.js ๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋น๋๊ธฐ ๋ฐฉ์์ ServerFramework → ์ฆ node.js์ ํต์ฌ์ "Event"๋ผ ํ ์ ์๋ค.
https://javafa.gitbooks.io/nodejs_server_basic/content/chapter7.html
1. node.js ์๋ฒ ๊ตฌ์ถ ํ๊ธฐ ํํ ๋ฆฌ์ผ
https://javafa.gitbooks.io/nodejs_server_basic/content/
2. Streaming Service ํํ ๋ฆฌ์ผ
https://javafa.gitbooks.io/nodejs_server_basic/content/chapter11.html
โ๏ธ
node.js ์ ๊ฐ์ ์ด๋ ์ ์๋ ๋์ฉ๋ streaming ์ฒ๋ฆฌ.
node.js ๋ ์ด๋ฒคํธ Loop ๊ธฐ๋ฐ์ ๋น๋ ์ฒ๋ฆฌ๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์,
๋์ฉ๋ ํ์ผ์ ๊ตฌ๊ฐ๋ณ๋ก ์๊ฒ ๋๋์ด์ ์ฒ๋ฆฌ ํ๋ ์์ ์ ๊ฐ์ ์ ๊ฐ์ง๊ณ ์๋ค.
โ fs.readFile( ) ์ ์ด์ฉํด์ ๋์์ ์๋น์ค๋ฅผ ์คํธ๋ฆฌ๋ฐ ํ ๋, ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ์
: ์๋ฒ์์ ํ์ผ์ ๋ค ์ฝ์ ํ์ ํ์ผ์ฝ๊ธฐ๊ฐ ์๋ฃ๊ฐ ๋๋ฉด ํด๋ผ์ด์ธํธ๋ก ํ๋ฒ์ ์ ์กํ๋๋ฐ, ์ด๋ก ์ธํด ํด๋ผ์ด์ธํธ์ ๋๊ธฐ๊ฐ ๊ธธ์ด์ง๋ค.์ฉ๋์ด ์ปค์ง์๋ก ํด๋ผ์ด์ธํธ์ ๋๊ธฐ์๊ฐ๋ ๊ธธ์ด์ง ๋ฟ๋๋ฌ ์์ฒญ์ด ๋ง์์ง์๋ก ์๋ฒ์ ํจ์จ์ด ๋จ์ด์ง๋ ๋ฌธ์ ์ ์ด ๋ฐ์.
์ด๋ฐ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ ์ฒด๋ฅผ ๋ค ์ฝ๊ฑฐ๋ ์ฐ์ง ์์๋ ์ค๊ฐ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ํด์ฃผ๋ ๊ฒ์ด stream ์
๋๋ค. ํ์ฌ ์ธํฐ๋ท์์ ์๋น์ค ๋๊ณ ์๊ฑฐ๋ ์คํ์์ค๋ก ์ง์ํ๋ streaming ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ง์ด ์์ง๋ง node.js ๋ ์์ฃผ ์ ์๋์ ์ฝ๋ฉ๋ง์ผ๋ก ์ด๋ฐ streaming ์๋น์ค๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ค.
3. ํด์๋๋ณ ๋์์ ์ค๋น ํ๋ ๋ฐฉ๋ฒ
360p, 1080p ๊ฐ์ ์์์ผ๋ก ํด์๋๋ง ๋ค๋ฅด๊ฒ ์ค๋น
https://www.resize-video.com/ko/
์ ์ฌ์ดํธ์์ ๋ฌด๋ฃ๋ก ๊ฐ์ ์์์ ํด์๋๋ฅผ ๋ค๋ฅด๊ฒ ์ค๋นํ ์ ์์๋ค.
480p[853โ×โ480] → 14.7MB
720p [1280โ×โ720] → 24.6MB
1080p[1920โ×โ1080] → 48.3MB
4. ์ธก์ ํด์ผ ํ๋ ๋ถ๋ถ ์ค๋น ๋ฐ ํ ์คํธ [ 1. ํ์ด์ง ๋ก๋์๊ฐ 2. TTFB 3. Queing&Installed ]
4-1. HTTP1.1 (720p ์์ test)
- ํ์ด์ง ๋ก๋์๊ฐ / ๋ฐ์ดํฐ ์ ์ก๋ / TTFB/ Queing & Stalled ์ธ๊ฐ์ง๋ฅผ ์๋ ์ฒ๋ผ ํ์ธ ํ ์ ์๋ค.
4-2. HTTP2
http2 ๊ตฌ์ถ : npm(Node Package Manager)์ ํตํด 'spdy' ๋ชจ๋์ ํตํด HTTP/2 ์๋ฒ๋ฅผ ๊ตฌ๋ํ๋ค.
https://github.com/spdy-http2/node-spdy
: Node Package Manager์ ์ฝ์๋ก, Node.js๋ก ๋ง๋ค์ด์ง pakage(module)์ ๊ด๋ฆฌํด์ฃผ๋ ํด์ด์, Node.js๋ก ๋ง๋ค์ด ์ง ๋ชจ๋์ ์น์์ ๋ฐ์์ ์ค์นํ๊ณ ๊ด๋ฆฌํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ด๋ค. ์์ ์๋ npm์ ๋ฐ๋ก ์ค์นํด์ผ ํ์ง๋ง ์ง๊ธ์ node.js ๋ฅผ ์ค์นํ๋ฉด ๋นํธ์ธ๋์ด ์๋ค๊ณ ํ๋ค.
2. ssl (Secure Sockets Layer)
: http1.1 ์์๋ ssl ์ด ์ ํ ์ฌํญ์ด์ง๋ง, http2 ๋ https ์ฒ๋ผ ssl์ด ํ์์ ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก ssl ์ ์ํด ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ ๋ฐ ์์ผ ํ๋ค. ์๋ ์ฒจ๋ถ ์ฌ์ง์ ์ฐธ๊ณ ํ๋ค. (Mac ํ๊ฒฝ์ด๋ค.)
์ด์ , http2_server.js ํ์ผ๊ณผhttp2_index.html ํ์ผ์ ์์ฑํ๋ค.
์๋ ์๋ฒ ํ์ผ์ ์คํํ๊ณ ๋ธ๋ผ์ฐ์ ๋ก ํ์ธํ๋ฉด ์๋ ์ฌ์ง๊ณผ ๊ฐ๋ค.
HTTP2๋ฅผ ์น ๋ธ๋ผ์ฐ์ ์์ ํ์ธํ๊ธฐ ์ํด์ url scheme๋ฅผ https๋ก ํ๋ฉด ๋๋ค.
๋ํ, NET::ERR_CERT_INVALID ์๋ฌ๊ฐ ๋์ ๋ธ๋ผ์ฐ์ ํ์ธ์ ์ฒ์์ ๋ชป ํ ์ ์๋๋ฐ,
ํด๋น ๋นํ๋ฉด์ ๋๊ณ "thisisunsafe"๋ฅผ ์ ๋ ฅํ๋ฉด ์ฐํ์ ์์ด ๊ฐ๋ฅํ๋ค.
spdy๋ชจ๋์ด h2 ํ๋กํ ์ฝ ์ญํ ์ ์ ํ๋ ๊ฒ์ ํ์ธ ํ์ผ๋,
์ด์ , ๋์์ ์คํธ๋ฆฌ๋ฐ ์๋ฒ๋ก js ํ์ผ์ ๋ฐ๊พธ๊ณ ๋ง์ง๋ง์ผ๋ก ํ ์คํธ๋ฅผ ํด๋ณด๋ฉด h2 ํ๋กํ ์ฝ๊ด๋ จ ์ฌ์ ์ค๋น๋ ๋์ด๋๋ค.
https://localhost:9007/html/http2_index.html
↓ ํ์ํ ๋ถ์ด ์์ ์ ์์ผ๋ ์์ฑํ Js ์ฝ๋ ์ฒจ๋ถ .
๐ HTTP3
- 3๋ชจ๋, ์ฌ์ฉ, 3 ์๋ฒ ๊ตฌ์ถ
- ๊ตฌ๊ธ์์ ์ ๊ณตํ๋ ์คํ์์ค ์๋ฒ ์ํํธ์จ์ด์ธ proto-quic์ ๋น๋ํ์๋ค. ์ด์ ์ฌ์ฉ๋ QUIC ํ๋กํ ์ฝ์ QUIC-Version-39
http://slides.com/trivikram/nodejs-quic-http3-seattlejs#/17/0/1
https://www.yld.io/blog/quic-k-http-3/
https://www.nearform.com/blog/a-quic-update-for-node-js/
https://musclebear.tistory.com/51
https://github.com/google/proto-quic
์ฐธ๊ณ
๋ง์ ์ฌ์ฉ์๋ค์ด ๋น๋์ค๋ฅผ ์์ฒญํ๋ ํ๊ฒฝ์ธ ๋ชจ๋ฐ์ผ์์ ์ฝํ ์ธ ๋ก๋๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํ์ฌ LTE ๋คํธ์ํฌ ํ๊ท ์๋์ ๊ฐ๊น์ด 3,200Kbps๋ก ๋์ญํญ์ ์ ํํ์ฌ ์คํํ๋ค.
HTTP/3: Node.js can do QUIC | Trivikram Kamat | CascadiaJS 2019
https://www.youtube.com/watch?v=Kqgv4Xs8yDI
์ฐธ๊ณ
node.js express๋ฅผ ์ด์ฉํ http2 ํ ์คํธํด๋ณด๊ธฐ - ํฐ๋
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jhc9639&logNo=221210720356
[JavaScript] npm์ด๋? -Aldev
https://m.blog.naver.com/magnking/220961896609
๋ณด์ ์๋ฒ SSL ์ด๋?
https://www.comodossl.co.kr/certificate/What-is-SSL.aspx
Apache : CSR ์์ฑ ๋ฐ SSL ์ธ์ฆ์ ์ ์ฉ
https://www.comodossl.co.kr/certificate/ssl-installation-guides/Apache-csr-crt.aspx
NET::ERR_CERT_INVALID ์ฐํ ์ ์ํ๊ธฐ
https://velog.io/@jereint20/bypass-sslerrorpage
๊ตญ๊ฐ ์ฝ๋ ์ฐธ๊ณ
https://www.iban.com/country-codes
[Openssl] ์ธ์ฆ์ ํค ์์ฑ - ํ๋ฌด๋ ๋๋
'HTTP 1.1 VS HTTP2.0 > ์กธ์ ๋ ผ๋ฌธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
KCSE 2022, ๋ ผ๋ฌธ ๋ฐํ์ ์ฐธ์ ํ๊ธฐ (0) | 2022.03.11 |
---|---|
[์กธ์ ๋ ผ๋ฌธ] #3. ์คํ ํ๊ฒฝ ์์ / ์ฌ์คํ (0) | 2021.11.03 |
[์กธ์ ๋ ผ๋ฌธ] #2. HTTP1.1/2.0 ์คํ ์ํ (0) | 2021.09.28 |
๋๊ธ