Home > 2024 > Network > 🌐[Network] μ›Ήμ†ŒμΌ“(WebSocket)

🌐[Network] μ›Ήμ†ŒμΌ“(WebSocket)
Network Server Back-end

🌐[Network] μ›Ήμ†ŒμΌ“(WebSocket)?

μ›Ήμ†ŒμΌ“(WebSocket)은 μ›Ή λΈŒλΌμš°μ €μ™€ μ„œλ²„ 간에 μ–‘λ°©ν–₯ 톡신을 κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” κ³ κΈ‰ κΈ°μˆ μž…λ‹ˆλ‹€.

μ΄λŠ” HTTP ν”„λ‘œν† μ½œμ— λΉ„ν•΄ 지속적이고 μ‹€μ‹œκ°„μ˜ 톡신을 κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.

🌐 μ›Ήμ†ŒμΌ“μ˜ μ£Όμš” νŠΉμ§•.

1. μ–‘λ°©ν–₯ 톡신 : μ›Ήμ†ŒμΌ“μ€ μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈ κ°„μ˜ μ–‘λ°©ν–₯ 톡신 채널을 μ œκ³΅ν•©λ‹ˆλ‹€.

μ΄λŠ” ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„κ°€ μ„œλ‘œμ—κ²Œ 데이터λ₯Ό λ™μ‹œμ— 보낼 수 μžˆμŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€.


2. μ‹€μ‹œκ°„ 톡신 : μ›Ήμ†ŒμΌ“μ€ μ‹€μ‹œκ°„ 톡신을 μœ„ν•΄ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μ΄λŠ” 온라인 κ²Œμž„, μ±„νŒ… μ• ν”Œλ¦¬μΌ€μ΄μ…˜, μ‹€μ‹œκ°„ 데이터 슀트리밍 등에 맀우 μœ μš©ν•©λ‹ˆλ‹€.


3. 지속적인 μ—°κ²° : μ›Ήμ†ŒμΌ“ 연결은 ν•œ 번 수립되면 μ§€μ†μ μœΌλ‘œ μœ μ§€λ©λ‹ˆλ‹€.

μ΄λŠ” λΈŒλΌμš°μ €κ°€ μ„œλ²„μ— 연결을 맺은 ν›„ ν•΄λ‹Ή 연결을 μ§€μ†μ μœΌλ‘œ μœ μ§€ν•˜λ©° 데이터λ₯Ό κ΅ν™˜ν•œλ‹€λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€.


4. 효율적인 데이터 전솑 : μ›Ήμ†ŒμΌ“μ€ HTTP의 μ˜€λ²„ν—€λ“œλ₯Ό 쀄여 효율적인 데이터 전솑을 κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.

데이터 νŒ¨ν‚·μ΄ μž‘κ³ , μ—°κ²° 수립 ν›„μ—λŠ” 좔가적인 헀더 없이 데이터λ₯Ό 전솑할 수 μžˆμŠ΅λ‹ˆλ‹€.


🌐 μž‘λ™ 원리.

1. ν•Έλ“œμ…°μ΄ν¬ : μ›Ήμ†ŒμΌ“ 연결은 HTTP μš”μ²­μ„ 톡해 μ‹œμž‘λ©λ‹ˆλ‹€.

이 μš”μ²­μ€ μ„œλ²„μ— μ›Ήμ†ŒμΌ“ 연결을 μš”μ²­ν•˜λŠ” β€œμ—…κ·Έλ ˆμ΄λ“œ μš”μ²­(Upgrade Request)”을 ν¬ν•¨ν•©λ‹ˆλ‹€.

μ„œλ²„κ°€ 이λ₯Ό μˆ˜λ½ν•˜λ©΄, HTTP 연결은 μ›Ήμ†ŒμΌ“ μ—°κ²°λ‘œ β€œμ—…κ·Έλ ˆμ΄λ“œβ€λ©λ‹ˆλ‹€.


2. μ—°κ²° 수립 : ν•Έλ“œμ…°μ΄ν¬ 과정이 μ„±κ³΅μ μœΌλ‘œ μ™„λ£Œλ˜λ©΄, μ›Ήμ†ŒμΌ“ 연결이 μˆ˜λ¦½λ©λ‹ˆλ‹€.

이 μ‹œμ λΆ€ν„° ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ 간에 μ–‘λ°©ν–₯ 데이터 전솑이 κ°€λŠ₯ν•΄μ§‘λ‹ˆλ‹€.


3. 데이터 ν”„λ ˆμž„ κ΅ν™˜ : λ°μ΄ν„°λŠ” ν”„λ ˆμž„ λ‹¨μœ„λ‘œ κ΅ν™˜λ©λ‹ˆλ‹€.

각 ν”„λ ˆμž„μ€ ν…μŠ€νŠΈ λ˜λŠ” λ°”μ΄λ„ˆλ¦¬ 데이터λ₯Ό 포함할 수 있으며, μ›Ήμ†ŒμΌ“ ν”„λ‘œν† μ½œμ€ 이λ₯Ό μ‹ μ†ν•˜κ²Œ μ „μ†‘ν•©λ‹ˆλ‹€.


4. μ—°κ²° μ’…λ£Œ : ν΄λΌμ΄μ–ΈνŠΈ λ˜λŠ” μ„œλ²„ μ–΄λŠ ν•œ μͺ½μ΄ 연결을 μ’…λ£Œν•˜κΈ°λ₯Ό μš”μ²­ν•  수 있으며, 연결이 μ’…λ£Œλ˜λ©΄ 더 이상 데이터λ₯Ό κ΅ν™˜ν•  수 μ—†μŠ΅λ‹ˆλ‹€.


🌐 μ‚¬μš© 사둀.

* μ±„νŒ… μ• ν”Œλ¦¬μΌ€μ΄μ…˜ : μ‹€μ‹œκ°„μœΌλ‘œ λ©”μ‹œμ§€λ₯Ό μ£Όκ³ λ°›λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€.


* 온라인 κ²Œμž„ : μ‹€μ‹œκ°„ μƒν˜Έμž‘μš©κ³Ό κ²Œμž„ μƒνƒœμ˜ λΉ λ₯Έ μ—…λ°μ΄νŠΈλ₯Ό μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€.


* 금육 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ : 주식 μ‹œμž‘μ˜ μ‹€μ‹œκ°„ 가격 μ—…λ°μ΄νŠΈ 등에 μ‚¬μš©λ©λ‹ˆλ‹€.


* 라이브 슀트리밍 : μ‹€μ‹œκ°„ λΉ„λ””μ˜€ λ˜λŠ” μ˜€λ””μ˜€ μŠ€νŠΈλ¦¬λ°μ— μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.


μ›Ήμ†ŒμΌ“μ€ μ›Ήμ˜ μ‹€μ‹œκ°„, λŒ€ν™”ν˜• μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μœ„ν•œ κ°•λ ₯ν•œ λ„κ΅¬λ‘œ, 기쑴의 HTTP 기반 톡신보닀 더 λ‹€μ΄λ‚˜λ―Ήν•˜κ³  효율적인 방식을 μ œκ³΅ν•©λ‹ˆλ‹€.