Technological Requirements - hyeonwoody/hyeonworld GitHub Wiki

Server-Sent Events

β“μ΄μŠˆ

  • μ‚¬νšŒμžμ˜ κ²Œμž„ 단계 변경에 따라 λ°”λ€ŒλŠ” μ°Έκ°€μžμ˜ 화면을 μ œμ–΄ν•˜κΈ° μœ„ν•΄ μ„œλ²„μ—μ„œ μ°Έκ°€μž λ””λ°”μ΄μŠ€λ‘œμ˜ 톡신이 이루어야 ν•©λ‹ˆλ‹€.

β—ν•΄κ²°λ°©μ•ˆ

μ‹€μ‹œκ°„ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발 μ‹œ μ‚¬μš©λ˜λŠ” 톡신 기법을 ν™œμš© ν•©λ‹ˆλ‹€. λŒ€ν‘œμ μœΌλ‘œ Polling, Long Polling, WebSocket, Server-sent events  4가지가 μžˆμŠ΅λ‹ˆλ‹€.

  1. Polling & Long Polling μ‹€μ‹œκ°„μ„±μ΄ 떨어지고 μƒνƒœλ³€κ²½μ— 따라 μ—°κ²° μš”μ²­μ΄ λŠ˜μ–΄λ‚˜λŠ” 단점이 μžˆμŠ΅λ‹ˆλ‹€.
  2. WebSocket
    • ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„μ˜ μ–‘λ°©ν–₯ 톡신 ꡬ쑰 μž…λ‹ˆλ‹€.
    • 졜초 μ—°κ²° μ‹œμ—λ§Œ Header 정보λ₯Ό 보내고 더 이상 보내지 μ•Šμ•„μ„œ Headerκ°€ λΆˆν•„μš”ν•˜κ²Œ μ»€μ§€λŠ” 문제λ₯Ό μ˜ˆλ°©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • HTTP μš”μ²­κ³Ό 달리 WebSocket ν¬νŠΈμ— 접속해 μžˆλŠ” λͺ¨λ“  ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ Event λ°©μ‹μœΌλ‘œ 응닡을 λ³΄λƒ…λ‹ˆλ‹€.
  3. Server-sent Events
    • μ„œλ²„μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈλ‘œ 단방ν–₯ 톡신 ꡬ쑰 μž…λ‹ˆλ‹€.
    • WebSocketκ³Ό 달리 λ³„λ„μ˜ ν”„λ‘œν† μ½œμ΄ μ•„λ‹Œ HTTP ν”„λ‘œν† μ½œλ§Œμ„ μ‚¬μš©ν•©λ‹ˆλ‹€.

βœ…κ²°μ •

μš”μ²­μ„ λ°›λŠ” μ°Έκ°€μž μž…μž₯μ—μ„œλŠ” λ³„λ„μ˜ μš”μ²­μ„ 보내지 μ•Šκ³  μ„œλ²„μ—μ„œ 응닡을 λ°›λŠ” 단방ν–₯ μ‹œμŠ€ν…œμ΄κΈ° 떄문에 SSEλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.