WebRTC: 웹 브라우저 기반 실시간 통신 기술
WebRTC의 정의와 개발 배경
WebRTC(Web Real-Time Communication)는 웹 애플리케이션과 사이트가 중간자 없이 브라우저 간에 오디오나 영상 미디어를 포착하고 스트림할 뿐 아니라, 임의의 데이터도 교환할 수 있도록 하는 기술이다.
WebRTC의 개발은 2010년 구글이 GIPS(Global IP Solutions)라는 스웨덴 회사를 인수하면서 시작되었다. GIPS의 개발자들인 Justin Uberti와 Peter Thatcher가 원래 개발자였으며, 구글은 2011년 이 기술을 WebRTC로 개명한 후 오픈소스로 공개했다.
표준화 과정에서는 IETF를 통한 프로토콜 표준화와 W3C를 통한 브라우저 API 정의가 동시에 진행되었다. 2011년 초기 릴리스 이후 현재는 데스크탑 및 모바일 브라우저에서 대부분 지원된다.
WebRTC의 핵심 목적과 특징
WebRTC를 구성하는 일련의 표준들은 플러그인이나 제3자 소프트웨어 설치 없이 종단간 데이터 공유와 화상회의를 가능하게 한다. 이를 위하여 WebRTC는 상호 연관된 API와 프로토콜로 구성되어 함께 작동한다.
기존의 웹 통신 방식과 달리 WebRTC는 서버를 거치지 않고 브라우저 간 직접 연결(P2P)을 지원한다. 이는 지연시간을 최소화하고 서버 부하를 줄이는 효과를 가져온다.
3대 핵심 JavaScript API
WebRTC는 대표적인 3개의 API를 포함한 JavaScript APIs로 이루어진다.
RTCPeerConnection
RTCPeerConnection은 피어 간 오디오와 비디오 통신을 가능하게 한다. 신호 처리, 코덱 처리, 피어 투 피어 통신, 보안, 대역폭 관리 등의 기능을 수행한다. 실제 미디어 스트림의 송수신과 네트워크 연결 관리의 핵심 역할을 담당한다.
getUserMedia
getUserMedia는 오디오와 비디오 미디어를 획득한다. 예를 들어 기기의 카메라와 마이크에 접근하여 로컬 미디어 스트림을 생성한다. 사용자의 명시적 권한 허용이 필요하며, 보안을 위해 HTTPS 환경에서만 동작한다.
RTCDataChannel
RTCDataChannel은 피어 간 임의의 데이터에 대한 양방향 통신을 허용한다. WebSockets와 동일한 API를 사용하며 매우 낮은 지연시간을 갖는다. 텍스트, 바이너리 데이터, 파일 등 다양한 형태의 데이터를 실시간으로 전송할 수 있다.
WebRTC의 작동 원리
연결 설정 과정
WebRTC 연결은 시그널링, ICE 후보 수집, 연결성 확인, 미디어 스트리밍의 4단계를 거친다. 시그널링 단계에서는 각 피어의 기술 사양과 네트워크 정보를 교환한다. ICE(Interactive Connectivity Establishment) 후보 수집 단계에서는 가능한 모든 연결 경로를 탐색한다.
NAT 통과 기술
대부분의 네트워크 환경이 NAT(Network Address Translation) 뒤에 있어 직접 연결이 어렵다. 이를 해결하기 위해 STUN(Session Traversal Utilities for NAT) 서버가 공개 IP 주소를 알려주고, TURN(Traversal Using Relays around NAT) 서버가 직접 연결이 불가능한 경우 중계 역할을 수행한다.
실시간 미디어 처리 기술
적응형 비트레이트
WebRTC는 네트워크 상황에 따라 비디오 품질을 자동으로 조절한다. 패킷 손실률, 지연시간, 대역폭 등을 실시간으로 모니터링하여 해상도, 프레임레이트, 비트레이트를 동적으로 변경한다.
오디오 처리
AEC(Acoustic Echo Cancellation)로 에코를 제거하고, NS(Noise Suppression)로 배경 소음을 억제하며, AGC(Automatic Gain Control)로 음량을 자동 조절한다. 이러한 처리는 모두 실시간으로 수행된다.
패킷 손실 복구
FEC(Forward Error Correction)로 오류 정정 코드를 전송하고, RTX(Retransmission)로 손실된 패킷을 재전송하며, NACK(Negative Acknowledgment)로 빠른 손실 감지를 수행한다.
보안 기술
종단간 암호화
WebRTC는 DTLS(Datagram Transport Layer Security)를 사용하여 모든 미디어와 데이터를 암호화한다. 각 패킷이 개별적으로 암호화되어 중간에 누구도 내용을 볼 수 없다. 키 교환도 안전한 방식으로 수행된다.
권한 관리
브라우저는 카메라, 마이크 접근에 대해 사용자의 명시적 권한을 요구한다. HTTPS에서만 동작하며, 탭을 닫으면 자동으로 미디어 접근이 중단된다.
실제 서비스 구현
시그널링 서버
WebRTC는 P2P 연결이지만 초기 연결 설정을 위해 시그널링 서버가 필요하다. WebSocket이나 Socket.IO를 사용하여 offer, answer, ICE candidate 등의 시그널링 메시지를 중계한다.
대규모 서비스 아키텍처
다자간 통화에서는 SFU(Selective Forwarding Unit) 방식을 주로 사용한다. 각 참가자가 중앙 서버와만 연결하고 서버가 다른 참가자들에게 중계하는 구조로, 클라이언트의 부담을 줄이면서 확장성을 확보한다.
성능 최적화
코덱 선택
H.264, VP8, VP9, AV1 등 다양한 비디오 코덱을 지원한다. 하드웨어 가속이 가능한 코덱을 우선 선택하여 CPU 사용률을 줄인다. 오디오는 Opus 코덱을 주로 사용한다.
모바일 최적화
모바일 기기에서는 배터리 소모와 발열을 고려하여 낮은 해상도와 프레임레이트를 사용한다. 화면 방향 변경, 백그라운드 전환 등의 상황에 대응하는 처리가 필요하다.
실무 고려사항
방화벽과 NAT 문제
기업 환경에서는 엄격한 방화벽 정책으로 인해 WebRTC 연결이 차단될 수 있다. TURN 서버 구축, 방화벽 예외 설정, 프록시 서버 활용 등의 해결책이 필요하다.
품질 모니터링
실시간으로 연결 통계를 수집하여 패킷 손실률, 지터, 비트레이트, CPU 사용률 등을 모니터링한다. 품질 저하 시 자동으로 대응하거나 사용자에게 알림을 제공한다.
호환성 관리
브라우저별로 WebRTC 구현에 차이가 있어 adapter.js 같은 라이브러리를 사용하여 호환성을 확보한다. 정기적인 테스트와 업데이트가 필요하다.
활용 분야와 미래 전망
현재 활용 사례
화상회의(Google Meet, Zoom 웹버전), 소셜 미디어(Facebook Messenger, Instagram), 고객 지원, 원격 교육, 온라인 게임, IoT 기기 제어 등 다양한 분야에서 활용된다.
기술 발전 방향
머신러닝을 활용한 배경 처리, 노이즈 제거, 화질 개선 기술이 발전하고 있다. 5G와 Edge Computing의 확산으로 더 낮은 지연시간과 높은 품질의 서비스가 가능해진다. VR/AR 환경에서의 실시간 통신도 주목받는 분야다.
WebRTC는 플러그인 없는 웹 기반 실시간 통신을 실현한 혁신적인 기술로, 지속적인 표준화와 성능 개선을 통해 더욱 다양한 분야에서 활용될 것으로 전망된다.
WebRTC의 NAT 통과 기술과 연결 구조
ICE(Interactive Connectivity Establishment) 프레임워크
ICE는 브라우저가 peer를 통한 연결이 가능하도록 하게 해주는 프레임워크다. Peer A에서 Peer B까지 단순하게 연결하는 것으로는 작동하지 않는 이유들이 존재한다.
P2P 연결의 주요 장애 요소
연결을 시도하는 방화벽을 통과해야 할 수 있고, 단말에 Public IP가 없다면 유일한 주소값을 할당해야 할 필요도 있다. 라우터가 peer간의 직접 연결을 허용하지 않을 때에는 데이터를 릴레이해야 할 경우도 있다.
ICE는 이러한 작업을 수행하기 위해 STUN 서버와 TURN 서버 둘 다 혹은 하나의 서버를 사용한다.
STUN(Session Traversal Utilities for NAT) 서버
STUN은 통신 요청자(본인)의 Public IP를 확인하거나 본인의 라우터가 peer간의 직접 통신에 제약을 두고 있는지를 확인하기 위한 프로토콜이다.
Client로부터 요청을 받은 인터넷상의 STUN 서버는, Client의 Public IP 주소와 함께, 해당 Client가 라우터의 NAT 뒤에 위치한 상황에서 통신을 위한 접근이 가능한지 여부를 알려준다.
NAT(Network Address Translation) 기술
NAT는 Private IP를 사용하는 Client에게 Public IP의 사용이 가능하도록 하는 기술로, 송수신되는 메시지의 Private IP와 Public IP 주소값을 실시간으로 매핑/번역한다.
어떠한 라우터들은 NAT를 통한 네트워크 연결에 제한을 갖고 있다. 예를 들어, symmetric NAT 방식을 지원하는 라우터는, 이전에 연결한 적이 있는 연결들(혹은 미리 설정된 연결들)에 대해서만 NAT를 지원한다.
즉, STUN 서버에 의해 공개 IP 주소를 발견한다고 해도 모두가 연결을 할 수 있다는 것은 아니다. 이를 위해 TURN이 필요하다.
TURN(Traversal Using Relays around NAT) 서버
TURN은 TURN 서버와 연결하고 모든 정보를 그 서버에 전달하는 것으로 Symmetric NAT 제한 등을 우회한다.
이를 위해 TURN 서버와 연결을 한 후 모든 peer들에게 저 서버에 모든 패킷을 보내고 다시 나에게 전달해달라고 해야 한다. 이것은 명백히 오버헤드가 발생하므로 이 방법은 다른 대안이 없을 경우만 사용하게 된다.
SDP(Session Description Protocol)
SDP는 해상도나 형식, 코덱, 암호화 등의 멀티미디어 컨텐츠의 연결을 설명하기 위한 표준이다. 이것은 기본적으로 미디어 컨텐츠 자체가 아닌 컨텐츠에 대한 메타데이터 설명이 된다.
기술적으로 보자면 SDP는 프로토콜이 아니다. 그러나 데이터 포멧은 디바이스간의 미디어를 공유하기 위한 연결을 설명하기 위해 사용된다.
WebRTC 연결 시나리오별 구성
동일 Private Zone 내 Peer간 통신
같은 네트워크 내에 있는 기기들 간의 직접 연결로, 가장 단순한 형태의 연결이다. NAT 통과가 필요하지 않아 직접적인 P2P 통신이 가능하다.
NAT 라우터에 연결된 Peer간 통신
서로 다른 네트워크에 있는 기기들 간의 연결로, STUN 서버를 통해 공개 IP를 확인하고 NAT 홀 펀칭을 통해 직접 연결을 시도한다.
TURN 서버를 통한 중계 연결
Symmetric NAT 등으로 인해 직접 연결이 불가능한 경우, TURN 서버가 모든 미디어 데이터를 중계하는 방식이다.
WebRTC의 기본 연결 구조
WebRTC의 기본 구조는 Peer간 Data를 직접 송수신하는 것이다. 시그널링 서버는 초기 연결 설정에만 사용되고, 실제 미디어 데이터는 피어 간 직접 전송된다.
주요 구성 요소
WebRTC 시스템은 여러 표준 기술들로 구성된다. JSEP(JavaScript Session Establishment Protocol)를 통한 세션 관리, DTLS(Datagram Transport Layer Security)를 통한 보안, SRTP(Secure Real-time Transport Protocol)를 통한 미디어 전송 보안 등이 포함된다.
미디어 처리 구조에서는 코덱 선택, 패킷화, 암호화, 네트워크 전송의 단계를 거쳐 상대방에게 전달되며, 수신 측에서는 역순으로 복호화, 디패킷화, 디코딩 과정을 거쳐 미디어가 재생된다.
이러한 복잡한 과정들이 자동화되어 있어 개발자는 간단한 API 호출만으로 실시간 통신 기능을 구현할 수 있다.
WebRTC의 핵심 장점들
놀라운 저지연성: 500ms 미만의 실시간 통신
WebRTC의 가장 큰 강점은 압도적인 속도다. 일반적인 라이브 스트리밍이 수십 초의 지연시간을 갖는 반면, WebRTC는 500ms 미만의 지연시간을 실현한다. 이는 P2P 직접 연결과 UDP 기반 통신, 그리고 하드웨어 가속을 통한 실시간 인코딩 덕분이다.
화상회의에서 자주 경험하는 "네, 네, 아니 제가..." 하며 말이 겹치는 상황을 생각해보자. WebRTC 기반 서비스에서는 이런 일이 거의 발생하지 않는다. 실제 대면 대화와 비슷한 수준의 자연스러운 소통이 가능하기 때문이다. 반면 전통적인 스트리밍 방식을 사용한다면 지연시간 때문에 원활한 대화가 거의 불가능하다.
진정한 크로스 플랫폼 호환성
WebRTC는 별도의 플러그인이나 소프트웨어 설치 없이 모든 주요 브라우저에서 동일하게 작동한다. Windows의 Chrome에서 iPhone의 Safari로, Android의 Chrome에서 Mac의 Safari로 자유롭게 통신할 수 있다. 과거 Flash나 ActiveX 같은 플러그인을 설치해야 했던 번거로움이 완전히 사라진 것이다.
개발자 관점에서는 한 번의 개발로 모든 플랫폼을 지원할 수 있어 개발 비용이 크게 절약된다. 사용자 관점에서는 링크만 클릭하면 바로 화상회의에 참여할 수 있는 편의성을 제공한다.
오픈소스의 힘과 표준화
WebRTC는 IETF와 W3C에 의해 표준화된 오픈소스 기술이다. 구글이 주도하지만 수천 명의 전 세계 개발자들이 참여하여 지속적으로 개선하고 있다. 이는 특정 벤더에 종속되지 않는 안정성을 제공하며, 빠른 기술 발전과 버그 수정을 가능하게 한다.
상용 솔루션의 경우 소수의 팀이 개발하여 업데이트가 느리고 라이선스 비용이 발생하지만, WebRTC는 커뮤니티 기반의 지속적인 발전이 보장된다.
스마트한 네트워크 적응성
WebRTC의 Simulcasting 기능은 특히 인상적이다. 송신자가 동시에 여러 화질의 스트림을 생성하면, 수신자는 자신의 네트워크 상황에 맞는 화질을 실시간으로 선택할 수 있다. 예를 들어 1080p, 720p, 360p 스트림을 동시에 전송하여 각 참가자가 최적의 화질로 시청할 수 있다.
기존의 적응형 비트레이트 스트리밍은 중간 서버에서 화질을 변환하느라 지연시간이 증가하지만, WebRTC는 송신자가 처음부터 여러 화질을 생성하므로 지연시간 증가 없이 화질 적응이 가능하다.
WebRTC의 한계와 단점들
확장성의 근본적 한계
WebRTC의 가장 큰 약점은 확장성이다. P2P 방식의 특성상 참가자가 늘어날수록 필요한 연결 수가 기하급수적으로 증가한다. 50명이 참여하는 화상회의의 경우 총 1,225개의 연결이 필요하며, 각 참가자는 49개의 연결을 동시에 유지해야 한다.
실제로 각 참가자가 2Mbps 화질로 송출한다면, 50명 회의에서 한 명당 98Mbps의 업로드 대역폭이 필요하다. 이는 일반 가정용 인터넷 환경에서는 물리적으로 불가능한 수준이다. 따라서 WebRTC 전문가들은 50명을 넘는 동시 연결은 권장하지 않는다.
이 문제를 해결하기 위해 실제 서비스들은 하이브리드 방식을 채택한다. Zoom은 소규모일 때는 P2P를 사용하다가 참가자가 늘어나면 SFU(Selective Forwarding Unit) 서버를 통해 중계하는 방식으로 전환한다. Google Meet 역시 5명 이하에서는 P2P를, 그 이상에서는 서버 중계 방식을 사용한다.
방송 품질의 타협점
WebRTC는 실시간성을 위해 화질을 어느 정도 희생한다. 일반적인 동영상 압축에서 사용하는 B-frame을 포기하고 I-frame과 P-frame만 사용한다. B-frame은 앞뒤 프레임을 모두 참조하여 압축률을 높이지만, 미래 프레임을 기다려야 하므로 지연시간이 발생한다.
같은 1Mbps 비트레이트로 1080p 영상을 전송할 때, Netflix 같은 VOD 서비스는 B-frame을 활용해 매우 선명한 화질을 제공한다. 반면 WebRTC는 B-frame 없이 실시간 인코딩해야 하므로 상대적으로 화질이 떨어진다. 하지만 이는 실시간 통신을 위한 불가피한 선택이다.
실무 적용 가이드
WebRTC가 최적인 경우
WebRTC는 실시간 양방향 소통이 중요한 서비스에 최적화되어 있다. 10명 이하의 화상회의, 1:1 온라인 게임, 원격 제어 시스템 등이 대표적이다. 특히 참가자들이 플러그인을 설치할 수 없는 환경이나, 100ms의 지연시간도 큰 차이를 만드는 상황에서는 WebRTC가 유일한 선택지일 수 있다.
WebRTC가 부적합한 경우
반면 1000명 이상이 참여하는 대규모 라이브 스트리밍, 4K 고화질 방송, 일방향 콘텐츠 전송에는 WebRTC가 적합하지 않다. 이런 경우에는 HLS/DASH와 CDN을 활용한 전통적인 스트리밍 방식이 더 효율적이다. 확장성과 안정성이 실시간성보다 중요한 상황에서는 약간의 지연시간을 감수하고라도 검증된 기술을 사용하는 것이 현명하다.
이러한 이유들 때문에 실제 서비스 개발에서는 WebRTC만 사용하거나 전통적인 방식만 사용하는 것이 아니라, 상황에 따라 최적의 기술을 선택하는 하이브리드 접근법이 필요하다. 참가자 수, 콘텐츠 종류, 네트워크 환경 등을 종합적으로 고려하여 적절한 스트리밍 방식을 동적으로 선택할 수 있어야 한다.
WebRTC 현황과 미래 전망
구글
구글은 WebRTC 기술의 탄생과 발전에 가장 핵심적인 역할을 해왔다. 2010년 Global IP Solutions(GIPS)를 인수하면서 실시간 통신 기술의 기반을 마련했고, 이를 바탕으로 2011년 WebRTC를 오픈소스로 공개했다. 구글의 기여는 단순히 기술 개발에 그치지 않고 생태계 전반의 활성화에 집중되었다.
특히 구글은 WebRTC 초기 생태계 형성을 위해 VP8 동영상 코덱을 무료로 제공했다. 이는 당시 H.264 코덱의 라이선스 비용 때문에 실시간 통신 서비스 개발이 제약받던 상황에서 게임 체인저 역할을 했다. 개발자들이 부담 없이 고품질 영상 통신 서비스를 구축할 수 있게 되면서, WebRTC 기반 서비스들이 폭발적으로 증가하는 계기가 되었다.
현재 구글의 주요 서비스들은 모두 WebRTC를 기본 프로토콜로 채택하고 있다. Google Meet은 전 세계 수억 명이 사용하는 화상회의 플랫폼이 되었고, Google Duo(현재 Meet과 통합)는 모바일 중심의 간편한 영상통화 서비스로 자리잡았다. 심지어 클라우드 게임 서비스인 Stadia도 WebRTC를 활용해 초저지연 게임 스트리밍을 구현했다. 이는 WebRTC가 단순한 화상회의를 넘어서 다양한 실시간 통신 영역으로 확장 가능함을 보여주는 사례다.
모질라
모질라는 2013년 파이어폭스에 WebRTC 지원을 추가하면서 오픈웹 생태계의 다양성을 보장하는 역할을 했다. 구글 크롬만이 WebRTC를 지원했다면 사실상의 독점 기술이 될 수 있었지만, 모질라의 참여로 진정한 웹 표준으로 자리잡을 수 있었다.
모질라는 단순한 호환성 지원을 넘어서 브라우저 성능 최적화에도 집중했다. 새로운 자바스크립트 엔진과 모듈 시스템을 통해 WebRTC 애플리케이션의 실행 속도를 대폭 향상시켰고, 구글 크롬과의 상호 호환성도 꾸준히 개선해왔다. 이는 개발자들이 브라우저별로 다른 코드를 작성할 필요 없이 일관된 WebRTC 경험을 제공할 수 있게 만들었다.
시스코
시스코는 기업용 통신 솔루션 분야에서 WebRTC의 가능성을 일찍이 인식하고 적극적으로 도입했다. Webex는 WebRTC 표준을 통해 플러그인 설치 없이도 고품질 웹 회의가 가능한 서비스로 진화했다. 이는 특히 기업 환경에서 보안 정책상 플러그인 설치가 제한적인 상황에서 큰 장점이 되었다.
시스코의 접근법은 단순히 기술 도입에 그치지 않고, WebRTC를 통해 전 세계적으로 더 포괄적이고 접근성 높은 커뮤니케이션 경험을 제공하는 것에 초점을 맞추고 있다. 이는 WebRTC가 기술적 혁신을 넘어서 사회적 연결성을 강화하는 도구로 발전할 수 있음을 시사한다.
WebRTC 개발 생태계의 다양화
WebRTC는 웹 기술로 시작되었지만, 현재는 다양한 프로그래밍 언어와 플랫폼에서 활용할 수 있는 범용 기술로 발전했다. 자바스크립트가 여전히 가장 일반적인 개발 환경이지만, 서버 사이드 개발이나 특수한 요구사항이 있는 프로젝트에서는 다른 언어들도 적극 활용되고 있다.
Python의 경우 aiortc 라이브러리를 통해 WebRTC 개발이 가능하다. 이는 특히 머신러닝이나 데이터 분석과 WebRTC를 결합하는 프로젝트에서 유용하다. 예를 들어 실시간 영상에서 얼굴 인식이나 객체 감지를 수행하면서 동시에 WebRTC로 스트리밍하는 시스템을 Python으로 구현할 수 있다.
Flutter/Dart 생태계에서도 flutter-webrtc 패키지를 통해 크로스 플랫폼 모바일 앱에서 WebRTC를 사용할 수 있다. 이는 iOS와 Android 앱을 동시에 개발하면서도 네이티브 수준의 WebRTC 성능을 확보할 수 있게 해준다. 특히 모바일 환경에서의 실시간 통신 앱 개발에 큰 도움이 되고 있다.
이러한 다양한 언어 지원은 WebRTC가 단순한 웹 기술에서 벗어나 범용적인 실시간 통신 표준으로 자리잡고 있음을 보여준다. 개발자들은 자신에게 가장 익숙한 언어와 도구를 사용하면서도 WebRTC의 강력한 기능을 활용할 수 있게 되었다.
SOLID 프로젝트
웹의 창시자 팀 버너스리(Tim Berners-Lee)가 주도하는 SOLID(Social Linked Data) 프로젝트는 현재 인터넷의 중앙집중화 문제를 해결하고자 하는 야심찬 시도다. 이 프로젝트는 개인 데이터의 소유권을 사용자에게 돌려주고, P2P 기반의 분산된 웹 생태계를 구축하는 것을 목표로 한다.
SOLID의 핵심 아이디어는 개인 데이터를 개별 사용자가 통제할 수 있는 "개인 데이터 저장소(Personal Data Store)"에 저장하고, 필요에 따라 다양한 애플리케이션에 권한을 부여하는 방식이다. 이는 현재 Facebook, Google 같은 대형 플랫폼이 사용자 데이터를 독점하는 구조와는 정반대의 접근법이다.
WebRTC와 SOLID의 시너지
WebRTC와 SOLID 프로젝트는 분산화와 사용자 중심이라는 공통된 철학을 공유한다. WebRTC의 P2P 통신 기술은 SOLID가 추구하는 분산형 인터넷 구조와 자연스럽게 결합될 수 있다. 중앙 서버에 의존하지 않고 직접 통신하는 WebRTC의 특성은 SOLID의 탈중앙화 비전과 완벽하게 일치한다.
예를 들어 SOLID 기반 소셜 네트워크에서는 사용자들이 자신의 데이터 저장소에서 직접 친구들과 WebRTC를 통해 화상통화하거나 파일을 공유할 수 있다. 이 과정에서 Facebook이나 Google 같은 중개 플랫폼이 전혀 개입하지 않으며, 사용자의 프라이버시가 완전히 보호된다.
도전 과제
SOLID 프로젝트는 기술적으로는 충분히 실현 가능하지만, 현실적인 도전 과제들이 많다. 가장 큰 문제는 기존 플랫폼들의 네트워크 효과다. 사용자들은 이미 WhatsApp, Instagram, TikTok 등에 익숙해져 있고, 새로운 시스템으로 이주할 강력한 동기가 부족하다.
또한 P2P 기반 시스템은 사용자 경험 측면에서 일부 제약이 있다. 중앙 서버가 없기 때문에 오프라인 사용자에게 메시지를 전달하거나, 대용량 파일을 효율적으로 배포하는 등의 기능을 구현하기 어렵다. WebRTC의 확장성 한계도 여전히 해결해야 할 과제다.
하지만 프라이버시에 대한 사회적 관심이 높아지고, 빅테크 기업들의 독점에 대한 우려가 커지면서 SOLID 같은 대안적 접근법에 대한 관심도 증가하고 있다. 유럽의 GDPR, 캘리포니아의 CCPA 같은 규제들도 개인 데이터 통제권 강화라는 SOLID의 방향성과 일치한다.
'학교공부 > 풀스택 서비스 네트워킹' 카테고리의 다른 글
[풀스택 서비스 네트워킹] gRPC (0) | 2025.06.09 |
---|---|
[풀스택 서비스 네트워킹] ZeroMQ (0) | 2025.04.01 |
[풀스택 서비스 네트워킹] Socket (1) | 2025.03.30 |
[풀스택 서비스 네트워킹] OSI Architecture L1,L2,L3 (1) | 2025.03.30 |
[풀스택 서비스 네트워킹] OSI Architecture Overall (0) | 2025.03.14 |