블로그 목록
Media15분 읽기

Agora 자체 코덱과 Web SDK의 정체 — WebRTC 표준, SD-RTN 전용망, FEC의 분업

"Agora는 자체 코덱을 써서 빠르다는데, 브라우저에서는 어떻게 동작하나요?" 도입 검토 자리에서 가장 자주 나오는 질문입니다. 답의 핵심은 코덱과 네트워크를 분리해서 보는 것. 네이티브에서는 자체 코덱과 SD-RTN 전용망을 모두 쓰지만, 웹은 WebRTC 제약 때문에 VP8/H.264 표준 코덱을 강제당하고 오직 경로 최적화로만 차별화합니다. 이 글은 그 분업 구조와 함께, 해저케이블을 깐 게 아니라 같은 ISP 회선 위에서 라우팅 제어권을 가져간다는 SD-RTN의 실체, 재전송 없이 손실을 복원하는 FEC의 원리까지 풀어냅니다.

AgoraWebRTCSD-RTNWeb SDK코덱FEC네트워크 최적화VP8H.264Real-time
목차(41개 항목)
  1. 0. 핵심 명제 — Agora의 무기는 두 레이어로 분리되어 있다
  2. 1. WebRTC 기본기 — 브라우저가 강제하는 표준
    1. 브라우저가 결정하는 것들
    2. 일반 WebRTC의 한계 3가지
  3. 2. 네이티브 SDK — Agora가 직접 코덱까지 잡는다
    1. 자체 코덱의 핵심 — 패킷 손실 대응
    2. FEC(Forward Error Correction)란?
    3. 트레이드오프
  4. 3. Web SDK — 절반은 표준, 절반은 Agora
    1. 정리하면 — 레이어별 분업
  5. 4. SD-RTN — Software Defined Real-Time Network
    1. ⚠️ 먼저 정정 — Agora는 해저케이블을 깔지 않았다
    2. 패킷이 인터넷을 이동하는 기본 메커니즘
    3. 🔴 일반 P2P WebRTC — 경로 선택 불가
    4. 🟢 Agora SD-RTN — 중간에 Agora 서버를 박는다
    5. 핵심 차이 — 딱 한 줄
    6. 🍕 비유로 한 번 더
    7. 기술적으로 어떻게 구현되는가
    8. Last Mile은 여전히 공용 인터넷
    9. 250+ Edge 노드의 의미
  6. 5. 코드 레벨에서 보는 "서버가 경로를 관리한다"의 의미
    1. 일반 라우터 — 테이블대로만 움직이는 기계
    2. Agora 서버 — 소프트웨어가 도는 컴퓨터
    3. 라우터 vs Agora 서버
  7. 6. 데이터센터 250개 = 전 세계에 박혀있는 컴퓨터
    1. "Agora 서버"의 정체
    2. 데이터센터란?
    3. 왜 많을수록 좋은가?
  8. 7. 데이터센터는 ISP와 어떻게 연결되나 — 멀티호밍
    1. 일반 유저 vs 데이터센터
    2. 멀티호밍이 만드는 차이
    3. 정리 — SD-RTN의 두 가지 제어 레이어
  9. 8. 그래서 Web에서 Agora를 쓰는 이유는?
    1. ✅ Pro
    2. ⚠️ Con
  10. 9. 실무 의사결정 — 언제 네이티브, 언제 Web?
    1. 시나리오별 권장
  11. 10. 한 장 요약 — 암기 카드
  12. 11. 한 줄 결론
  13. 관련 글
  14. 참고 자료

"Agora는 자체 코덱을 써서 빠르다고 들었는데, 그럼 브라우저에서는 어떻게 동작하나요?". Agora 도입을 검토하는 자리에서 가장 자주 받는 질문 중 하나입니다. 답은 단순한 "예/아니오"가 아니라 레이어 분리 관점에서 풀어야 합니다 — 코덱 레이어와 네트워크 레이어를 따로 보면 네이티브와 Web의 차이가 자연스럽게 정리됩니다.

이 글은 그 분업 구조를 처음부터 끝까지 정리합니다. WebRTC 표준이 만든 제약, Agora가 그 위에서 살린 부분, SD-RTN 전용망의 실체, 그리고 FEC라는 진짜 무기까지.


0. 핵심 명제 — Agora의 무기는 두 레이어로 분리되어 있다

Agora의 실시간 성능은 "자체 코덱"과 "전용 네트워크(SD-RTN)" 두 레이어에서 나온다. 네이티브(iOS/Android/PC)에서는 두 레이어 모두 활용하지만, 웹 브라우저에서는 WebRTC API 제약 때문에 코덱 레이어는 표준(VP8/H.264)을 쓸 수밖에 없고, 네트워크 레이어(SD-RTN)에서만 차별화한다. 그래서 "Web에서 Agora를 쓰는 진짜 이유"는 코덱이 아니라 경로 최적화다.

흔한 오해와 정정:

오해정확한 이해
Agora는 모든 환경에서 자체 코덱을 쓴다❌ 네이티브 한정. 웹은 WebRTC 표준 코덱(VP8/H.264) 강제
Web SDK는 일반 WebRTC와 같다❌ 코덱은 같지만 네트워크 경로가 SD-RTN 경유
"전용 회선"이라 항상 빠르다⚠️ 전용 백본망이지만 마지막 마일(클라이언트~엣지)은 공용 인터넷
FEC는 코덱의 기능이다⚠️ 코덱과 별개 레이어. 재전송 없이 패킷 손실을 미리 대비하는 채널 코딩
WebRTC 자체로도 충분히 빠르다⚠️ P2P 좋은 네트워크에서는 그렇지만, 글로벌·NAT 통과·혼잡 시 SFU+전용망이 필요

1. WebRTC 기본기 — 브라우저가 강제하는 표준

브라우저(Chrome/Firefox/Safari)에는 WebRTC라는 표준이 내장되어 있습니다. 별도 플러그인 없이 getUserMedia() / RTCPeerConnection API로 카메라·마이크 캡처와 실시간 전송이 가능합니다.

[브라우저]
   ↓
WebRTC 내장 (표준 API)
   ↓
코덱: VP8, VP9, H.264, AV1 (브라우저가 결정)
   ↓
네트워크: 공용 인터넷 P2P (또는 SFU/TURN 경유)

브라우저가 결정하는 것들

항목누가 결정하나개발자가 바꿀 수 있나
코덱브라우저 런타임❌ 강제 — RTCRtpSender.getCapabilities()로 노출된 목록만 사용 가능
암호화DTLS-SRTP 강제❌ 표준 강제
NAT 트래버설ICE 프레임워크⚠️ STUN/TURN 서버는 지정 가능, 알고리즘은 표준
혼잡 제어GCC(Google Congestion Control)❌ 브라우저 내장
재전송/FECNACK + RTX, ULPFEC/FlexFEC⚠️ 켜고 끄는 정도만 가능

일반 WebRTC의 한계 3가지

🔴 1. 코덱 제약

  • 자체 최적화 코덱을 브라우저에 주입 불가
  • 브라우저 벤더가 지원하는 코덱만 사용 가능

🔴 2. 네트워크 경로

  • 공용 인터넷 P2P → ISP 비즈니스 계약에 따라 경로 결정
  • 혼잡 시 우회 불가 → 지연·손실 예측 불가

🔴 3. 패킷 손실 대응 속도

  • NACK 기반 재전송 → 1RTT 이상 대기
  • 100~300ms 추가 지연 발생

이 세 가지가 Agora 같은 RTC 서비스가 풀어야 할 문제입니다.


2. 네이티브 SDK — Agora가 직접 코덱까지 잡는다

네이티브 환경(iOS/Android/PC)에서는 Agora SDK를 앱에 직접 링크합니다. 브라우저 런타임이 끼지 않으므로 자체 코덱·자체 네트워크 스택을 모두 사용할 수 있습니다.

[카메라/마이크]
      ↓
 Agora SDK (앱에 내장된 네이티브 라이브러리)
      ↓
 ✅ 자체 코덱으로 인코딩 (FEC 내장)
      ↓
 ✅ Agora SD-RTN (전용 글로벌 백본망)
      ↓
 상대방 디코딩 → 화면 출력

자체 코덱의 핵심 — 패킷 손실 대응

일반 WebRTC와 Agora 네이티브 코덱의 차이는 손실 발생 시점의 동작에 가장 명확히 드러납니다.

🔴 일반 WebRTC (NACK 기반)
패킷 손실 발생
  → 수신자가 NACK 전송
  → 송신자가 재전송 (RTX)
  → 도착까지 1RTT 대기 (100~300ms)
  → 그 사이 화면 멈춤 또는 freeze

🟢 Agora 자체 코덱 (FEC + 즉시 보간)
패킷 손실 발생
  → 미리 전송된 FEC 패리티 데이터로 즉시 복원
  → 또는 앞뒤 프레임으로 보간 (0ms 추가)
  → 재전송 대기 없이 흐름 유지

FEC(Forward Error Correction)란?

데이터를 보낼 때 복구용 여분 데이터(parity)를 미리 함께 보내는 채널 코딩 기술. 일부 패킷이 손실돼도 여분 데이터로 재전송 없이 즉시 복원 가능.

비유로 설명하면:

📦 택배 비유

책 10권을 보낼 때, 원본 10권 + 복구용 2권을 같이 보냄. 운송 중 2권 분실되어도 나머지 12권 중 10권으로 원본 재구성 가능 → 재배송 요청 불필요.

일반 전송:
[1][2][3][4][5][6][7][8][9][10] 전송
[1][2][_][4][5][6][7][8][9][10] 도착 (3번 손실)
→ 재전송 요청 → 대기 → 도착

FEC 전송:
[1][2][3][4][5][6][7][8][9][10][P1][P2] 전송 (P=parity)
[1][2][_][4][5][6][7][8][9][10][P1][_] 도착 (3번, P2 손실)
→ [1][2][4]...[10] + P1로 [3] 즉시 복원
→ 0ms 추가 지연

트레이드오프

FEC가 공짜는 아닙니다:

장점단점
재전송 대기 0ms대역폭 증가 (1030%)
양방향 통신 불필요 (방송에 유리)손실률이 FEC 임계치 초과 시 무용
지연 예측 가능CPU 추가 사용

Agora 네이티브 SDK는 네트워크 손실률·대역폭 추정에 따라 패리티 비율을 조절하는 송신측 적응형 채널 코딩으로 FEC 비율을 동적으로 조정합니다.


3. Web SDK — 절반은 표준, 절반은 Agora

여기가 핵심 문제 지점입니다.

브라우저는 WebRTC 표준만 노출 → 자체 코덱을 직접 주입할 수 없음.

그래서 Agora Web SDK는 이렇게 설계되어 있습니다:

[브라우저]
    ↓
WebRTC API 사용 (어쩔 수 없이)
   - getUserMedia()
   - RTCPeerConnection
   - 코덱: VP8 / H.264 / VP9
    ↓
SDP/ICE → Agora Edge 서버에 연결 (P2P가 아닌 SFU 구조)
    ↓
✅ Agora Edge → SD-RTN 백본망 경유
    ↓
✅ 글로벌 최적 경로로 라우팅
    ↓
상대방 Edge → 상대방 브라우저

정리하면 — 레이어별 분업

레이어네이티브 SDKWeb SDK
캡처자체 ADM/VDMgetUserMedia (브라우저)
코덱✅ Agora 자체 코덱❌ WebRTC 표준 (VP8/H.264)
암호화자체 + DTLS-SRTPDTLS-SRTP (브라우저)
전송 스택자체 RTP/UDPWebRTC RTP/UDP (브라우저)
네트워크 경로✅ SD-RTN✅ SD-RTN
FEC 정책✅ Agora 자체 적응형⚠️ WebRTC ULPFEC + Agora 서버단 보강

Web에서 Agora의 유일하면서 결정적인 차별점 = 네트워크 레이어(SD-RTN)

코덱 효율은 어차피 브라우저 한계이므로, Agora는 그 외 모든 부분 — 경로·서버 보강·전송 품질 모니터링 — 으로 차이를 만듭니다.


4. SD-RTN — Software Defined Real-Time Network

이게 "전용 회선"의 실체입니다. 이름 그대로 소프트웨어 정의 실시간 네트워크. 그런데 여기서 가장 중요한 사실 하나를 먼저 박아둬야 합니다.

⚠️ 먼저 정정 — Agora는 해저케이블을 깔지 않았다

"Agora가 바닷속에 전용 해저케이블을 깔았나?" → NO. 물리적 회선은 똑같은 인터넷 인프라(ISP들)를 씁니다. 차이는 "누가 경로를 결정하느냐"의 제어권에 있습니다.

마케팅 자료에서 "전용 네트워크"라는 표현 때문에 오해하기 쉽지만, Agora 서버끼리의 연결도 결국 ISP 회선을 사용합니다. 본질은 물리 인프라의 차이가 아니라 라우팅 제어 주체의 차이.

패킷이 인터넷을 이동하는 기본 메커니즘

서울 PC → 라우터 A → 라우터 B → 라우터 C → 뉴욕 PC

각 라우터는 패킷을 받으면 라우팅 테이블을 보고 "다음 어디로 보낼지" 결정합니다. 이 테이블은 BGP(Border Gateway Protocol) 로 ISP들끼리 합의해 만듭니다.

BGP의 본질: "어느 ISP랑 어떤 계약을 맺었느냐"에 따라 경로 결정. 즉 비즈니스 관계가 라우팅 결정 기준 — 속도나 품질이 아님.

🔴 일반 P2P WebRTC — 경로 선택 불가

서울유저 ─→ [ISP A] ─→ [ISP B] ─→ [ISP C] ─→ [ISP D] ─→ [ISP E] ─→ 뉴욕유저
              ↑각 ISP가 독립적으로 라우팅 결정
              ↑서울유저는 이 경로에 개입 불가
              ↑중간 ISP C가 혼잡해도 모름 + 못 바꿈
              ↑서울↔뉴욕 사이 ISP 5~10개 경유
  • 경로 결정 주체: 각 라우터의 BGP 테이블 (분산 결정)
  • 경로 변경: 불가 (내 권한 밖)
  • 혼잡 감지: 불가 (ISP들이 상태 공유 안 함)

🟢 Agora SD-RTN — 중간에 Agora 서버를 박는다

서울유저 → [Agora 서울] → [Agora 도쿄] → [Agora LA] → 뉴욕유저
              ↑여기도 ISP 씀  ↑여기도 ISP 씀  ↑여기도 ISP 씀
              
BUT: 각 구간이 짧아진다!
서울→Agora서울:    ISP 1~2개 (가까우니까)
Agora서울→도쿄:    ISP 1~2개 (Agora가 어디로 보낼지 선택)
Agora도쿄→LA:      ISP 1~2개
Agora LA→뉴욕유저: ISP 1~2개

핵심은 두 가지:

① 구간을 짧게 쪼개서 ISP 홉 수 감소 서울↔뉴욕 사이에 Agora 서버를 촘촘히 배치 → 각 구간이 짧아 ISP 1~2개만 경유.

② 각 구간의 다음 목적지를 Agora가 직접 선택

Agora 서울 서버:
  "도쿄 경유: 28ms, 싱가포르 경유: 45ms"
  → 28ms 경로(도쿄)로 보냄
  
100ms 후 도쿄 노드 혼잡 감지:
  → 다음 패킷부터 싱가포르 경유로 전환

라우터의 BGP 테이블이 결정하는 게 아니라, Agora 소프트웨어가 실시간 측정값으로 결정.

핵심 차이 — 딱 한 줄

항목P2P WebRTCAgora SD-RTN
경로 결정 주체라우터 (BGP)Agora 소프트웨어
경로 결정 기준ISP 비즈니스 계약실시간 RTT/Loss 측정
경로 변경불가가능 (수백ms 안에 전환)
혼잡 감지불가 (ISP끼리 비공유)가능 (내 서버끼리 상태 공유)
서울↔뉴욕 ISP 홉5~10개구간별 1~2개씩
물리적 회선공용 인터넷공용 인터넷 (같음)

🍕 비유로 한 번 더

🚗 공용 인터넷 = 네비 없이 외운 길로 운전

서울 → 강남 → 판교 → 수원 → 부산
강남이 막혀도? → 네비가 없으니 그냥 강남 경유
왜? 그게 내가 아는 유일한 경로니까

🛰️ Agora SD-RTN = 실시간 네비 + 거점별 직원

서울 → 부산
Agora: "지금 경부고속도로 막힘 → 중부내륙으로 우회"
       "10분 후 경부 뚫림 → 다시 경부로"
→ 항상 실시간으로 가장 빠른 경로 선택
→ Agora 서버들이 고속도로 IC처럼 전국에 깔려 있어 환승 가능

📮 택배 비유

일반 P2PAgora SD-RTN
일반 우체국에 맡김내 직원을 중간중간 배치
"규정상 대전 경유"대전직원이 "여기 막힘" 보고
대전 파업해도 나는 모름본사가 "광주로 바꿔" 즉시 지시
경로 변경 불가실시간 우회

기술적으로 어떻게 구현되는가

1. Agora 서버들이 서로 지속적으로 측정
   서울 ↔ 도쿄:      32ms
   서울 ↔ 싱가포르:  45ms
   도쿄 ↔ LA:        89ms
   싱가포르 ↔ 뉴욕:  178ms
   ...
   → 글로벌 latency 매트릭스 실시간 갱신

2. 클라이언트 패킷이 Agora 서울 서버에 도착
   → 측정 테이블 조회
   → 목적지(뉴욕)까지 최저 지연 경로 선택
   → 다음 노드로 forward

3. 경로 중간에 혼잡/장애 발생
   → 수백ms 안에 다른 경로로 전환
   → 클라이언트는 단절 인지 못함

Last Mile은 여전히 공용 인터넷

⚠️ 마지막 마일 주의: SD-RTN의 제어권은 "사용자 단말 ↔ 가장 가까운 Agora Edge" 구간에는 미치지 않습니다. 그 구간은 여전히 ISP가 BGP로 결정. 그래서 사무실 Wi-Fi나 모바일 셀이 나쁘면 SD-RTN도 결국 그 영향을 받습니다.

[사용자] ─┬─ 공용 인터넷 (제어 불가) ─┬─ [Agora Edge]
          │                            │
          │     last mile              │
          └────────────────────────────┘

[Agora Edge] ─┬─ SD-RTN 백본 (Agora 제어) ─┬─ [Agora Edge]
              │                              │
              │   여기는 Agora가 라우팅 결정  │
              └──────────────────────────────┘

250+ Edge 노드의 의미

Agora는 전 세계 250+ 데이터센터에 Edge 노드를 운영합니다. 클라이언트가 채널에 join하면:

  1. SDK가 가장 가까운 Edge를 자동 선택 (RTT 측정 기반) → last mile 최소화
  2. 패킷은 Edge → SD-RTN 백본(Agora 라우팅) → 상대 Edge → 상대 단말로 흐름
  3. 백본 경로 중 한 노드가 느려지면 다음 패킷부터 다른 노드로 우회

결국 한 줄: 같은 ISP 회선 위에서 돌지만, 중간에 Agora 서버를 박아서 (a) 각 구간을 짧게 만들고 (b) 다음 목적지를 BGP 대신 Agora 소프트웨어가 실시간으로 선택 — 이게 SD-RTN의 전부입니다.


5. 코드 레벨에서 보는 "서버가 경로를 관리한다"의 의미

추상적으로 "Agora가 경로를 제어한다"라고 말하면 와닿지 않습니다. 라우터와 Agora 서버의 차이를 코드 레벨에서 보면 직관이 잡힙니다.

일반 라우터 — 테이블대로만 움직이는 기계

패킷 도착
→ 목적지 IP 확인
→ 라우팅 테이블 조회 (BGP로 사전 합의된 값)
→ 테이블에 적힌 대로 다음 홉으로 전달
끝. 다른 선택지 없음.

라우터는 "테이블 보고 전달"만 하는 ASIC 기반 패킷 처리기입니다. 측정도 안 하고, 선택도 안 하고, 그냥 표대로 움직입니다. 테이블 자체는 BGP가 결정하므로 내가 바꿀 수 없습니다.

Agora 서버 — 소프트웨어가 도는 컴퓨터

# Agora 서버에서 도는 로직 (개념 코드)

while True:
    # 1. 모든 이웃 서버에 계속 핑 날려 측정
    latency_tokyo     = ping("agora-tokyo")     # 32ms
    latency_singapore = ping("agora-singapore") # 28ms
    latency_hongkong  = ping("agora-hongkong")  # 41ms

    # 2. 패킷 오면 지금 가장 빠른 경로로 보냄
    best_route = min(
        ("tokyo", latency_tokyo),
        ("singapore", latency_singapore),
        ("hongkong", latency_hongkong),
        key=lambda x: x[1]
    )
    forward_packet(best_route[0])

    sleep(100ms)  # 측정 주기

이건 그냥 일반 컴퓨터에서 도는 소프트웨어입니다. Agora 엔지니어가 작성한 코드로 실시간 라우팅 결정.

라우터 vs Agora 서버

항목일반 라우터Agora 서버
본질패킷 전달 전용 기계 (ASIC)소프트웨어가 도는 컴퓨터 (x86)
경로 결정BGP 테이블 고정값코드로 동적 결정
측정불가직접 핑 날려 측정
전환불가조건에 따라 즉시
운영자 개입ISP 합의 필요Agora 단독 결정

한 줄: 라우터는 "테이블대로만 움직이는 기계", Agora 서버는 "직접 측정하고 판단하는 컴퓨터". 그래서 Agora 서버가 중간에 있으면 BGP 테이블이 아니라 실시간 측정값으로 경로를 결정할 수 있습니다.


6. 데이터센터 250개 = 전 세계에 박혀있는 컴퓨터

"Agora 서버"의 정체

Agora 서울 서버 = 그냥 컴퓨터 한 대
                  → IP 주소를 가짐 (예: 123.45.67.89)
                  → Linux + Agora 소프트웨어 실행 중

유저가 Agora 앱을 켜면:

유저 PC → ISP → ... → 123.45.67.89 (Agora 서울 서버)

이건 유튜브 서버에 접속하는 것과 똑같은 원리입니다. 특별한 마법은 없습니다.

유저 → ISP → 유튜브 서버    (일반 인터넷 통신)
유저 → ISP → Agora 서버     ← 같음

데이터센터란?

서버 컴퓨터들을 모아둔 건물입니다.

┌─────────────────────────────┐
│       데이터센터 건물        │
│                             │
│  [서버][서버][서버][서버]    │
│  [서버][서버][서버][서버]    │
│  [서버][서버][서버][서버]    │
│                             │
│  전기, 냉각, 네트워크 연결   │
└─────────────────────────────┘

Agora의 "250개 데이터센터"는:

서울 건물 1개      → 서버 수백 대
도쿄 건물 1개      → 서버 수백 대
싱가포르 건물 1개  → 서버 수백 대
...
전 세계 250군데

왜 많을수록 좋은가?

서버가 촘촘할수록 각 구간이 짧아집니다 → ISP 홉이 줄고, Agora 제어 구간이 늘어남.

🔴 Agora 서버가 3개만 있을 때:
서울유저 → Agora서울 → (ISP 엄청 많이 경유) → Agora뉴욕 → 뉴욕유저
                     ↑이 구간은 공용 인터넷 — 제어 불가

🟢 Agora 서버가 250개 있을 때:
서울유저 → Agora서울 → Agora도쿄 → AgoraLA → Agora달라스 → Agora뉴욕 → 뉴욕유저
           (짧은구간)  (짧은구간)  (짧은구간)  (짧은구간)
                     ↑이 구간들 모두 Agora가 라우팅 결정

📦 택배 비유

직원이 3명: 서울 → (일반 우체국 무한 경유) → 뉴욕
            → 중간 상태 모름, 제어 불가

직원이 250명: 서울 → 도쿄 → 괌 → 하와이 → LA → 뉴욕
              → 내 직원이 중간중간 다 있음
              → 어디서 막히는지 다 알고 즉시 우회

숫자가 클수록 → 커버리지 넓고 → 경로 제어 구간이 길어지고 → 더 안정적.


7. 데이터센터는 ISP와 어떻게 연결되나 — 멀티호밍

여기 또 한 가지 SD-RTN을 빠르게 만드는 비밀이 있습니다 — 데이터센터의 ISP 연결 방식.

일반 유저 vs 데이터센터

🔴 일반 유저 = 단일 ISP 의존

유저(KT 가입) → KT → ... → KT → 목적지
                 ↑KT가 혼잡하면 답 없음
                 ↑다른 ISP로 못 바꿈

가정/사무실은 보통 한 ISP에만 가입. 그 ISP가 느려지면 그대로 영향받습니다.

🟢 데이터센터 = 멀티호밍 (여러 ISP 동시 계약)

Agora 서울 데이터센터
   ├─ KT 전용선 계약    (초고속, 전용 대역폭)
   ├─ SKT 전용선 계약
   ├─ LG U+ 전용선 계약
   └─ 글로벌 Tier-1 (NTT/Telia/등) 전용선

데이터센터는 운영상 여러 ISP와 동시 계약합니다. 이걸 멀티호밍(multi-homing) 이라 부릅니다.

멀티호밍이 만드는 차이

일반 유저:
유저 → KT → ... → KT → 목적지
(KT가 혼잡하면 그냥 느려짐. 끝.)

Agora 데이터센터:
데이터센터 → KT 전용선   ← 평소 사용
           → SKT 전용선  ← KT 혼잡 시 즉시 전환
           → LGU+ 전용선 ← 양쪽 다 막히면 여기로
(어느 한 ISP가 혼잡해도 다른 ISP로 패킷 우회)

정리 — SD-RTN의 두 가지 제어 레이어

레이어무엇을 제어효과
L1. 서버 간 경로 선택Agora 서버끼리 어느 노드로 forward할지글로벌 백본 우회
L2. 데이터센터의 ISP 선택한 데이터센터에서 어느 ISP 회선으로 나갈지같은 도시 안에서도 회선 우회

이 두 레이어가 결합되면, 같은 ISP 인프라 위에서도 일반 유저와는 완전히 다른 네트워크 동작이 나옵니다.


8. 그래서 Web에서 Agora를 쓰는 이유는?

코덱은 어차피 브라우저 표준입니다. 그럼에도 Web SDK를 도입할 만한 이유는 명확합니다:

✅ Pro

이유메커니즘
글로벌 안정성SD-RTN 백본으로 ISP 영향 최소화
NAT 트래버설 부담 제거SFU 구조라 P2P NAT 협상 불필요
대규모 채널 지원SFU + 백본으로 수천 명 동시 전송 가능
품질 모니터링Agora Analytics로 RTT/Loss/Jitter 실시간 가시화
방화벽 우회Cloud Proxy로 기업 방화벽 통과 (#9 참고)
CDN과 동시 운용Media Push로 SD-RTN ↔ RTMP/HLS 변환 (#37 참고)

⚠️ Con

한계영향
코덱은 브라우저 한계자체 코덱 효율 차이는 네이티브 한정
마지막 마일은 공용 인터넷사용자 Wi-Fi 나쁘면 SD-RTN 무용
WebRTC API 제약인코더 파라미터 세부 조정 제한적

9. 실무 의사결정 — 언제 네이티브, 언제 Web?

같은 Agora SDK라도 환경마다 최적 구성이 다릅니다.

┌─────────────────────────────────────────────────────┐
│ Q1. 최저 지연 + 최고 화질이 비즈니스 KPI인가?       │
│   YES → 네이티브 앱 (자체 코덱 + SD-RTN 둘 다 활용) │
│   NO  → Q2                                          │
├─────────────────────────────────────────────────────┤
│ Q2. 사용자에게 앱 설치를 요구할 수 있는가?         │
│   NO  → Web SDK (SD-RTN만으로도 충분)              │
│   YES → 네이티브 검토                              │
├─────────────────────────────────────────────────────┤
│ Q3. 글로벌 사용자 대상인가?                        │
│   YES → 어떤 플랫폼이든 Agora 검토 가치 있음       │
│   NO  → 단일 리전 SFU(자체 또는 LiveKit 등) 대안   │
└─────────────────────────────────────────────────────┘

시나리오별 권장

시나리오권장이유
화상통화 앱 (모바일 우선)네이티브 + Web 병행모바일은 자체 코덱 이득 큼
웹 기반 화상회의Web SDK설치 마찰 제거가 우선
라이브 커머스 (방송)Web SDK + Media PushCDN 분기 필요
AI 음성 에이전트환경에 맞는 SDK네트워크 경로가 핵심
게임 보이스챗네이티브초저지연이 KPI

10. 한 장 요약 — 암기 카드

개념한 줄 요약
WebRTC 표준브라우저 내장, 코덱·암호화·NAT 처리 강제
Agora 자체 코덱네이티브 한정. FEC 내장, 패킷 손실 즉시 복원
Agora Web SDK코덱은 WebRTC 표준, 네트워크는 SD-RTN
SD-RTN250+ Edge 노드 + 실시간 최적 경로, 평균 76ms
FEC패리티 데이터 미리 보내 재전송 없이 복원
마지막 마일SD-RTN도 사용자 Wi-Fi는 보장 못함
Web의 진짜 무기코덱 ❌ / 네트워크 경로 ✅
네이티브 SDK = 자체 코덱 + SD-RTN  (코덱 레이어 + 네트워크 레이어)
Web SDK     = WebRTC 코덱 + SD-RTN (네트워크 레이어만)
일반 WebRTC  = WebRTC 코덱 + 공용 인터넷 P2P

11. 한 줄 결론

Agora의 실시간 성능은 두 레이어로 분리된다 — 자체 코덱(FEC 내장)과 SD-RTN 전용 백본. 네이티브에서는 둘 다 활용하지만, Web 브라우저는 WebRTC API 제약 때문에 코덱 레이어가 막힌다. 그래서 Web SDK의 핵심 가치는 "코덱 최적화"가 아니라 "경로 최적화" — ISP 비즈니스 계약 대신 250+ Edge가 실시간으로 그리는 최단 경로다. 단, 마지막 마일(사용자~Edge)은 여전히 공용 인터넷이므로 SD-RTN이 만능은 아니다.


관련 글

참고 자료

© 2026 Frank Kim. All rights reserved.