맨위로가기

푸시 기법

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

푸시 기법은 사용자의 요청 없이 서버가 정보를 제공하는 기술로, 풀(Pull) 기법과 대비된다. 초창기 메일링 리스트에서 시작하여, 동시 회의, 인스턴트 메시징, 이메일, 포인트캐스트 네트워크 등으로 발전해왔다. 푸시 기술은 HTTP 서버 푸시, 푸시렛, 롱 폴링 등 다양한 구현 방법을 통해 소프트웨어 업데이트 배포, 실시간 정보 제공, 웹 페이지 로딩 속도 향상 등 다양한 분야에 활용된다. 하지만 정보 과잉, 개인 정보 침해, 광고성 정보 전송 등의 문제점도 존재한다.

더 읽어볼만한 페이지

  • Ajax - 구글 문서도구
    구글 문서도구는 구글에서 제공하는 웹 기반 워드 프로세서로, 문서 작성, 편집, 공유 기능을 제공하며, 다양한 문서 형식 지원, 실시간 공동 작업, 머신러닝 기반 기능을 제공하고, 구글 드라이브를 통해 문서 및 파일을 함께 이용할 수 있다.
  • Ajax - AngularJS
    AngularJS는 동적 웹 애플리케이션 개발을 용이하게 하기 위해 설계된 오픈 소스 자바스크립트 프레임워크로, MVC 패턴 적용, 의존성 주입, HTML 확장 디렉티브 제공, 양방향 데이터 바인딩 등의 특징을 가지며, 장기 지원은 종료되었지만 웹 개발에 중요한 영향을 미쳤다.
  • 웹 개발 - Ajax
    Ajax는 웹 페이지 전체를 새로고침하지 않고 비동기적으로 서버와 통신하여 웹 애플리케이션의 일부를 업데이트하는 웹 개발 기술로, XMLHttpRequest 객체의 등장으로 가능해졌으며 HTML, CSS, DOM, JavaScript, JSON 등의 기술을 통합하여 동적인 사용자 인터페이스를 구현한다.
  • 웹 개발 - WebXR
    WebXR은 웹 브라우저에서 가상 현실 및 증강 현실 콘텐츠를 구현하기 위한 API로, 다양한 장치 및 플랫폼에서 몰입형 웹 경험을 제공하며, 구글, 메타, 모질라 등 여러 기업과 단체가 개발에 참여하여 지속적인 업데이트를 통해 기능 향상을 목표로 한다.
  • 모바일 기술 - 중계기
    중계기는 전기 통신 및 컴퓨터 네트워킹에서 신호를 증폭하거나 재생성하여 통신 거리를 연장하는 장치로, 아날로그 및 디지털 신호를 처리하며 다양한 유형이 존재한다.
  • 모바일 기술 - 멀티미디어 방송 다중송출 서비스
    멀티미디어 방송 다중송출 서비스(MBMS)는 이동통신망을 통해 멀티미디어 콘텐츠를 다수의 사용자에게 동시에 전송하는 기술이며, 3GPP 표준에 의해 기술 규격이 정의되고 5G 네트워크에서도 기술 발전을 지속하고 있다.
푸시 기법
개요
유형통신 방식
특징서버에서 클라이언트로의 단방향 통신
관련 기술Comet
WebSocket
HTTP 스트리밍
서버 푸시
기술적 측면
통신 방향서버에서 클라이언트로
요청 시작서버
데이터 전송서버가 클라이언트에 데이터를 "푸시"
연결 유지지속적인 연결 필요 (일반적으로)
활용 분야
실시간 정보주식 시세, 뉴스 업데이트, 스포츠 경기 결과 등
알림이메일, 소셜 미디어 업데이트, 메시지 등
채팅실시간 채팅 애플리케이션
협업 도구문서 공동 작업, 프로젝트 관리 도구
IoT (사물 인터넷)센서 데이터 전송, 장치 제어
장점 및 단점
장점실시간 업데이트 가능
낮은 지연 시간
서버 자원 효율성 향상 (폴링 방식에 비해)
단점서버 부하 증가 가능성
보안 문제 발생 가능성
구현 복잡성 증가
구현 방법
일반적인 기술WebSocket
서버 센트 이벤트(Server-Sent Events, SSE)
HTTP 스트리밍
Comet여러 가지 기술을 사용하여 푸시 효과를 내는 방법 (롱 폴링, HTML 파일 스트리밍 등)
보안 고려 사항
보안 프로토콜HTTPS 사용 권장
데이터 유효성 검사서버와 클라이언트 모두에서 데이터 유효성 검사 필요
접근 제어권한 없는 접근 방지
기타
참고풀 기술 (Pull Technology) 과의 비교

2. 정의

푸시 기법은 사용자가 원하든 원치 않든 방송처럼 뉴스를 제공하는 기술이다. 사용자가 원하는 정보를 직접 찾는 풀 기법과는 상반되는 개념이다. 그런데 푸시 방식으로 정보를 제공하던 기존의 TV나 라디오와 다른 점은 사용자가 미리 원하는 범위를 지정할 수 있다는 점이다.

동시 회의와 인스턴트 메시징은 푸시 서비스의 예시이다. 채팅 메시지와 때로는 파일이 메시징 서비스에서 수신되는 즉시 사용자에게 푸시된다. 분산된 피어 투 피어 프로그램(예: WASTE)과 중앙 집중식 프로그램(예: IRC 또는 XMPP) 모두 파일을 푸시할 수 있는데, 이는 수신자가 아닌 발신자가 데이터 전송을 시작한다는 의미이다.

이메일도 푸시 시스템일 수 있다. SMTP는 푸시 프로토콜이다(푸시 이메일 참조). 그러나 마지막 단계인 메일 서버에서 데스크톱 컴퓨터로의 전송은 일반적으로 POP3 또는 IMAP와 같은 풀 프로토콜을 사용한다. 최신 이메일 클라이언트는 메일 서버를 반복적으로 폴링하여 새 메일을 자주 확인하여 이 단계를 즉시 수행하는 것처럼 보이게 한다. IMAP 프로토콜에는 서버가 새 메시지 도착 시 클라이언트에게 알릴 수 있는 IDLE 명령이 포함되어 있다. 초창기 블랙베리는 무선 환경에서 푸시 이메일의 첫 번째 대중적인 사례였다.

또 다른 예시는 1990년대에 널리 다루어졌던 PointCast Network이다. 이 네트워크는 화면 보호기로 뉴스 및 주식 시장 데이터를 제공했다. 넷스케이프마이크로소프트는 모두 채널 정의 형식 (CDF)을 통해 푸시 기술을 브라우저 전쟁의 절정기에 자사 소프트웨어에 통합했지만 인기를 얻지 못했다. CDF는 사라졌고 당시 브라우저에서 제거되었으며, 2000년대에는 RSS (풀 시스템)로 대체되었다.

푸시가 활성화된 웹 애플리케이션의 다른 용도로는 소프트웨어 업데이트 배포("푸시 업데이트"), 시장 데이터 배포 (주식 시세), 온라인 채팅/메시징 시스템 (웹챗), 경매, 온라인 베팅 및 게임, 스포츠 결과, 모니터링 콘솔 및 센서 네트워크 모니터링 등이 있다.

3. 풀(Pull) 기술과의 비교

풀(Pull) 기술은 사용자가 주도적으로 정보를 요청하고 받는 방식이다. 반면, 푸시 기술은 서버가 정보를 주도적으로 제공한다. 정보 흐름의 제어 주체는 풀 기술의 경우 사용자, 푸시 기술의 경우 서버(또는 정보 제공자)이다.

웹 브라우저는 풀 기술을 사용하는 대표적인 예시이다. 사용자가 정보를 요청하면 서버가 해당 정보를 제공한다. 반면 푸시 기술은 사용자가 요청하지 않아도 서버가 자동으로 뉴스나 증권 정보 등을 제공한다.

푸시 기술은 맞춤형 정보 제공이 가능하다는 장점이 있다. 사용자가 원하는 정보를 미리 설정해두면, 서버가 해당 정보를 자동으로 제공한다.

동시 회의와 인스턴트 메시징은 푸시 서비스의 예시이다. 채팅 메시지와 파일은 메시징 서비스에서 수신되는 즉시 사용자에게 푸시된다. 분산된 피어 투 피어 프로그램(예: WASTE)과 중앙 집중식 프로그램(예: IRC 또는 XMPP) 모두 파일을 푸시할 수 있는데, 이는 수신자가 아닌 발신자가 데이터 전송을 시작한다는 것을 의미한다.

이메일도 푸시 시스템일 수 있다. SMTP는 푸시 프로토콜(푸시 이메일 참조)이지만, 메일 서버에서 데스크톱 컴퓨터로 전송하는 마지막 단계는 POP3 또는 IMAP와 같은 풀 프로토콜을 사용하는 것이 일반적이다. 최신 이메일 클라이언트는 메일 서버를 반복적으로 폴링하여 새 메일을 자주 확인하여 이 단계를 즉시 수행하는 것처럼 보이게 한다. IMAP 프로토콜에는 서버가 새 메시지 도착 시 클라이언트에게 알릴 수 있는 IDLE 명령이 포함되어 있다.

1990년대에 널리 다루어졌던 PointCast Network는 화면 보호기로 뉴스 및 주식 시장 데이터를 제공하는 푸시 기술의 또 다른 예시이다. 넷스케이프마이크로소프트는 채널 정의 형식 (CDF)을 통해 푸시 기술을 브라우저 전쟁의 절정기에 자사 소프트웨어에 통합했지만 인기를 얻지 못하고 사라졌다. 이후 2000년대에는 RSS (풀 시스템)로 대체되었다.

푸시 기술은 소프트웨어 업데이트 배포("푸시 업데이트"), 시장 데이터 배포 (주식 시세), 온라인 채팅/메시징 시스템 (웹챗), 경매, 온라인 베팅 및 게임, 스포츠 결과, 모니터링 콘솔 및 센서 네트워크 모니터링 등 웹 애플리케이션에 활용된다.

4. 역사

푸시 기법은 메일링 리스트를 통해 사용자가 서비스를 신청하면 해당 정보를 제공받는 형태로 시작되었다. 초기에는 전자메일 형태로 제공되었으나, 점차 넷캐스트, 뉴스 서비스, 멀티미디어 콘텐츠 등으로 확대되었다. 넷캐스트는 인터넷을 통해 오디오 및 영상 방송을 제공하며, 뉴스 서비스는 사용자 맞춤형 정보를 제공하는 형태로 발전했다.

소비자에게 효과적인 광고 메시지를 전달하고자 하는 광고주들의 요구에 따라 푸시 기법은 광고 형태로 발전했다. 인터스티셜(Interstitial)은 사용자의 선택과 관계없이 노출되는 푸시 광고의 한 형태로, 사용자가 제어할 수 없다는 문제점이 있다.

1990년대에는 포인트캐스트 네트워크(PointCast Network)가 뉴스, 주식 정보 등을 화면 보호기 형태로 제공하여 인기를 얻었다. 브라우저 전쟁 시기에는 넷스케이프와 마이크로소프트가 채널 정의 형식(CDF)을 통해 푸시 기술을 도입했지만 널리 확산되지는 않았다. 2000년대에는 RSS(Really Simple Syndication)와 같은 풀 기술이 등장하면서 푸시 기술은 상대적으로 쇠퇴했다. 최근에는 모바일 기기의 발달과 함께 푸시 알림 기능이 다시 주목받고 있다.

5. 구현 방법

5. 1. HTTP 서버 푸시 (HTTP Streaming)

HTTP 서버 푸시(HTTP 스트리밍이라고도 함)는 웹 서버에서 웹 브라우저로 예기치 않은(비동기) 데이터를 전송하는 메커니즘이다.[6] HTTP 서버 푸시는 여러 메커니즘을 통해 수행할 수 있다.

일반적으로 웹 서버는 응답 데이터가 클라이언트에 제공된 후 연결을 종료하지 않는다. 웹 서버는 연결을 열어 두어 이벤트가 발생하면(예: 하나 이상의 클라이언트에 보고해야 하는 내부 데이터 변경) 즉시 전송할 수 있도록 한다. 그렇지 않으면 클라이언트의 다음 요청을 받을 때까지 이벤트를 대기열에 넣어야 한다. 대부분의 웹 서버는 CGI(예: 아파치 HTTP 서버의 Non-Parsed Headers 스크립트)를 통해 이 기능을 제공한다. 이 접근 방식의 기본 메커니즘은 청크 전송 인코딩이다.

또 다른 메커니즘은 1995년 넷스케이프에서 도입한 multipart/x-mixed-replace라는 특수 MIME 유형과 관련이 있다. 웹 브라우저는 서버가 새 버전을 클라이언트에 푸시할 때마다 변경되는 문서로 해석한다.[6] 현재 파이어폭스, 오페라, 사파리에서 지원되지만, 인터넷 익스플로러에서는 무시되며[7] 크롬에서는 부분적으로만 지원된다.[8] HTML 문서에 적용할 수 있으며, 웹캠 애플리케이션에서 이미지를 스트리밍하는 데에도 사용할 수 있다.

HTML5의 일부로 웹 소켓 API는 웹 서버와 클라이언트가 전이중 통신 TCP 연결을 통해 통신할 수 있도록 한다.

WHATWG 웹 애플리케이션 1.0 제안[9]에는 콘텐츠를 클라이언트에 푸시하는 메커니즘이 포함되어 있다. 2006년 9월 1일, 오페라 웹 브라우저는 "서버 전송 이벤트"라는 기능으로 이 새로운 실험적 시스템을 구현했다.[10][11] 현재 HTML5 표준의 일부이다.[12]

5. 2. 푸시렛(Pushlet)

지속적 HTTP 연결을 활용하여 서버가 응답을 영구적으로 열어둔 상태로 유지하는 방식이다.[13][14] 서버는 초기 페이지 로드 완료 후에도 브라우저를 "로딩" 상태로 유지하고, 주기적으로 JavaScript 조각을 보내 페이지의 내용을 업데이트하여 푸시 기능을 구현한다. 클라이언트는 Java 애플릿 또는 다른 플러그인 없이도 서버에서 푸시된 새로운 이벤트에 대한 알림을 자동으로 받을 수 있다.[36][37] 그러나 이 방법은 서버가 브라우저의 타임아웃을 제어할 수 없다는 단점이 있다. 브라우저 타임아웃 발생 시 페이지를 새로 고쳐야 한다. 푸시 기법은 원래 자바 플랫폼 웹 애플리케이션을 위해 개발되었지만, 다른 웹 프레임워크에도 적용 가능하다.

5. 3. 롱 폴링(Long Polling)

롱 폴링은 그 자체로는 진정한 푸시가 아니다. 롱 폴링은 전통적인 폴링 기술의 변형이지만, 실제 푸시가 불가능한 상황, 예를 들어 들어오는 HTTP 요청을 거부해야 하는 보안 정책이 있는 사이트에서 푸시 메커니즘을 에뮬레이션할 수 있다.[15]

롱 폴링을 사용하면 클라이언트는 일반적인 폴링과 마찬가지로 서버에서 더 많은 정보를 요청하지만, 서버가 즉시 응답하지 않을 수 있다는 점을 예상한다. 폴링을 받았을 때 서버에 클라이언트에 대한 새로운 정보가 없으면, 빈 응답을 보내는 대신 서버는 요청을 열어두고 응답 정보가 사용 가능해질 때까지 기다린다. 새로운 정보가 있으면 서버는 즉시 HTTP 응답을 클라이언트에 보내고 열린 HTTP 요청을 완료한다. 서버 응답을 받으면 클라이언트는 종종 즉시 다른 서버 요청을 발행한다. 이러한 방식으로 폴링 클라이언트와 관련된 일반적인 응답 지연 시간(정보가 처음 사용 가능하게 된 시점과 다음 클라이언트 요청 사이의 시간)이 제거된다.[15][38]

예를 들어, BOSH는 직접적인 연결을 사용하기 어렵거나 불가능한 경우(예: 웹 브라우저에서) 지속적인 TCP 연결에 대한 롱 폴링의 대안으로 사용되는 인기 있는 장기간 HTTP 기술이다.[16][39] 또한 애플이 iCloud 푸시 지원에 사용하는 XMPP의 기본 기술이기도 하다.

5. 4. Flash XMLSocket 릴레이

이 기술은 채팅 애플리케이션에서 사용되며, 단일 픽셀 어도비 플래시 무비의 XML 소켓 객체를 활용한다. 자바스크립트의 제어 하에, 클라이언트는 서버의 단방향 네트워크 릴레이에 TCP 연결을 설정한다. 릴레이 서버는 이 네트워크 소켓으로부터 아무것도 읽지 않는다. 대신, 즉시 클라이언트에게 고유 식별자를 보낸다. 다음으로, 클라이언트는 이 식별자를 포함하여 웹 서버에 HTTP 요청을 보낸다. 그러면 웹 애플리케이션은 클라이언트에게 전달될 메시지를 릴레이 서버의 로컬 인터페이스로 푸시할 수 있으며, 이 인터페이스는 플래시 소켓을 통해 메시지를 중계한다. 이 방식의 장점은 채팅을 포함한 많은 웹 애플리케이션에서 흔히 나타나는 자연스러운 읽기-쓰기 비대칭성을 잘 활용하며, 결과적으로 높은 효율성을 제공한다는 점이다. 릴레이 서버는 발신 소켓에서 데이터를 받지 않으므로 발신 TCP 연결을 전혀 폴링할 필요가 없으며, 수만 개의 동시 연결을 열어둘 수 있다. 이 모델에서 확장성의 한계는 기본 서버 운영 체제의 TCP 스택이다.

5. 5. 기타 방법

코멧Ajax 웹 애플리케이션에 사용되는 푸시 기술을 포괄하는 용어이다.[2] ''HTTP 서버 푸시''나 ''롱 폴링'' 등의 기술을 포함한다. XMPP는 PubSub 확장을 통해 푸시 애플리케이션에 자주 사용된다.[2]

이 외에도 최근에는 WebSocket이나 SPDY 등 푸시 기술을 지원하는 새로운 프로토콜도 다수 제안되고 있다.[2]

인터넷 기술 특별 위원회(IETF)가 제안한 웹 푸시 프로토콜은 HTTP 버전 2를 사용하여 실시간 이벤트(전화나 메시지 수신 등)를 즉시 배달(푸시)하기 위한 단순한 프로토콜이다.[2] 이 프로토콜은 모든 실시간 이벤트를 하나의 세션으로 정리하고 통합함으로써 네트워크 및 무선 자원을 보다 효율적으로 사용할 수 있도록 보장한다. 하나의 서비스가 모든 이벤트를 수집하여 각종 앱에 배포한다. 이를 위해 세션이 하나만 있으면 되므로 오버헤드 비용이 중복되는 것을 방지할 수 있다.[2] 또한, 이에 대응하는 [https://www.w3.org/TR/push-api/ 푸시 API]를 W3C가 개발하고 있다.[2] 웹 알림은 W3C 표준의 일부이며 최종 사용자 알림을 위한 API를 정의한다.[3] 알림을 통해 웹 페이지의 컨텍스트 외부에서 이메일 전달과 같은 이벤트를 사용자에게 알릴 수 있다.[3] 이 표준의 일부로, 푸시 API는 크롬, 파이어폭스엣지에서 완전히 구현되었으며, 사파리에서는 부분적으로 구현되었다.[4][5]

6. 활용 분야

푸시 기법은 다양한 분야에서 활용되고 있다.

== 알림(Notification) ==

푸시 기법은 동기 통신이나 인스턴트 메시지에서 메시지 도착 알림 등에 사용된다.[25] 모바일 앱에서 푸시 알림 기능을 통해 사용자에게 다양한 정보를 제공하며,[19] 소셜 네트워크 서비스(SNS)에서 새로운 소식, 댓글, 친구 요청 등을 알리는 데 사용된다.

푸시 알림은 주로 로컬 알림과 원격 알림의 두 가지 방식으로 나뉜다.[23] 로컬 알림은 애플리케이션이 로컬 장치의 OS를 사용하여 알림을 예약하는 방식이다. 원격 알림은 원격 서버에서 처리되며, 클라이언트 애플리케이션은 고유 키를 사용하여 서버에 등록하고, 서버는 해당 키를 통해 메시지를 전송한다. 푸시 알림이 도착하면 짧은 알림과 함께 메시지가 전송되고, 애플리케이션 아이콘에 배지가 표시되거나, 알림 LED를 깜빡이거나 지속적으로 켜거나, 알림 소리를 재생하여 사용자 주의를 끈다.[24]

애플은 2009년에 아이폰용 푸시 알림을 도입했으며,[20] 2010년 구글은 "구글 클라우드 투 디바이스 메시징"을 출시했다(이후 Firebase Cloud Messaging으로 대체됨).[21] 2015년 11월, 마이크로소프트는 윈도우 알림 서비스를 확장하여 윈도우 10, 윈도우 10 모바일, Xbox 등에서 푸시 데이터를 보낼 수 있다고 발표했다.[22]

실시간 푸시 알림은 소셜 네트워크 가상 ID를 스마트폰 소유자의 실제 ID와 연결하여 개인 정보 보호 문제를 야기할 수 있다.[26] 또한, 불필요한 푸시 알림 사용은 주의력 도용의 한 예로 비판받는다.[27]

전자 메일은 SMTP 프로토콜을 사용하는 푸시형 시스템으로 볼 수 있다. 그러나 메일 서버에서 사용자 컴퓨터로의 전송은 POP3나 IMAP와 같은 풀형 프로토콜을 사용하는 것이 일반적이다. 현대의 전자 메일 클라이언트는 자주 메일 서버를 폴링하여 새로운 메일을 확인하지만, IMAP 프로토콜의 IDLE 명령을 통해 서버가 클라이언트에게 알림을 보낼 수 있다.

== 실시간 정보 제공 ==

푸시 서비스는 전자우편에서 벗어나 다른 부분으로 계속 확대되고 있다. 현재까지 등장한 푸시 서비스는 넷캐스트, 뉴스 서비스, 그리고 멀티미디어 콘텐츠 등이 있다. 넷캐스트는 인터넷을 통한 방송을 의미하는데, 다양한 소프트웨어를 통해서 오디오는 물론 영상까지 생생하게 제공하고 있다. 따라서 넷캐스트는 정부의 제약이나 규제없는 라디오, 텔레비전 방송으로 이해될 수 있다. 뉴스와 정보 서비스는 사용자를 위해 뉴스내용을 수집하고 만들어내는 기능까지 함으로써 단순하게 전달만 하는 넷캐스트보다는 한차원 높은 서비스를 제공하고 있다.

주식 시세, 스포츠 경기 결과, 날씨 정보 등 실시간으로 변동하는 정보를 제공하는 데 푸시 기술이 사용된다. 온라인 게임, 경매 등에서 실시간 업데이트가 필요한 경우에도 활용된다.

== 웹 페이지 로딩 속도 향상 ==

HTTP/2의 서버 푸시 기능을 통해 웹 페이지 로딩에 필요한 리소스를 미리 전송하여 속도를 향상시킬 수 있다. 기존 웹사이트는 HTTP 요청을 통해 html 파일을 읽어들인 후, html에 쓰여진 내용을 바탕으로 CSS 파일 요청, 더 나아가 CSS 파일을 기반으로 이미지 파일 요청 등, 사이트가 표시되기 전에 몇 번 서버-클라이언트 간을 왕복할 필요가 있었다.[28]

하지만 푸시 기술을 사용하면 상대방의 요청을 기다리지 않고 필요한 파일을 보내 왕복 횟수(왕복 횟수)를 줄일 수 있어, 사이트 로딩 속도가 빨라진다.[28]

하지만 캐시가 있는 경우 이미 가지고 있는 파일을 보내게 되어 불필요하게 대역폭을 사용하고 통신량이 늘어나는 결과가 발생할 수도 있다. 어떤 리소스를 푸시해야 할지 판단하는 것은 매우 어렵다.[29]

6. 1. 알림(Notification)

푸시 기법은 동기 통신이나 인스턴트 메시지에서 메시지 도착 알림 등에 사용된다.[25] 모바일 앱에서 푸시 알림 기능을 통해 사용자에게 다양한 정보를 제공하며,[19] 소셜 네트워크 서비스(SNS)에서 새로운 소식, 댓글, 친구 요청 등을 알리는 데 사용된다.

푸시 알림은 주로 로컬 알림과 원격 알림의 두 가지 방식으로 나뉜다.[23] 로컬 알림은 애플리케이션이 로컬 장치의 OS를 사용하여 알림을 예약하는 방식이다. 원격 알림은 원격 서버에서 처리되며, 클라이언트 애플리케이션은 고유 키를 사용하여 서버에 등록하고, 서버는 해당 키를 통해 메시지를 전송한다. 푸시 알림이 도착하면 짧은 알림과 함께 메시지가 전송되고, 애플리케이션 아이콘에 배지가 표시되거나, 알림 LED를 깜빡이거나 지속적으로 켜거나, 알림 소리를 재생하여 사용자 주의를 끈다.[24]

애플은 2009년에 아이폰용 푸시 알림을 도입했으며,[20] 2010년 구글은 "구글 클라우드 투 디바이스 메시징"을 출시했다(이후 Firebase Cloud Messaging으로 대체됨).[21] 2015년 11월, 마이크로소프트는 윈도우 알림 서비스를 확장하여 윈도우 10, 윈도우 10 모바일, Xbox 등에서 푸시 데이터를 보낼 수 있다고 발표했다.[22]

실시간 푸시 알림은 소셜 네트워크 가상 ID를 스마트폰 소유자의 실제 ID와 연결하여 개인 정보 보호 문제를 야기할 수 있다.[26] 또한, 불필요한 푸시 알림 사용은 주의력 도용의 한 예로 비판받는다.[27]

전자 메일은 SMTP 프로토콜을 사용하는 푸시형 시스템으로 볼 수 있다. 그러나 메일 서버에서 사용자 컴퓨터로의 전송은 POP3나 IMAP와 같은 풀형 프로토콜을 사용하는 것이 일반적이다. 현대의 전자 메일 클라이언트는 자주 메일 서버를 폴링하여 새로운 메일을 확인하지만, IMAP 프로토콜의 IDLE 명령을 통해 서버가 클라이언트에게 알림을 보낼 수 있다.

6. 2. 실시간 정보 제공

푸시 서비스는 전자우편에서 벗어나 다른 부분으로 계속 확대되고 있다. 현재까지 등장한 푸시 서비스는 넷캐스트, 뉴스 서비스, 그리고 멀티미디어 콘텐츠 등이 있다. 넷캐스트는 인터넷을 통한 방송을 의미하는데, 다양한 소프트웨어를 통해서 오디오는 물론 영상까지 생생하게 제공하고 있다. 따라서 넷캐스트는 정부의 제약이나 규제없는 라디오, 텔레비전 방송으로 이해될 수 있다. 뉴스와 정보 서비스는 사용자를 위해 뉴스내용을 수집하고 만들어내는 기능까지 함으로써 단순하게 전달만 하는 넷캐스트보다는 한차원 높은 서비스를 제공하고 있다.

주식 시세, 스포츠 경기 결과, 날씨 정보 등 실시간으로 변동하는 정보를 제공하는 데 푸시 기술이 사용된다. 온라인 게임, 경매 등에서 실시간 업데이트가 필요한 경우에도 활용된다.

6. 3. 웹 페이지 로딩 속도 향상

HTTP/2의 서버 푸시 기능을 통해 웹 페이지 로딩에 필요한 리소스를 미리 전송하여 속도를 향상시킬 수 있다. 기존 웹사이트는 HTTP 요청을 통해 html 파일을 읽어들인 후, html에 쓰여진 내용을 바탕으로 CSS 파일 요청, 더 나아가 CSS 파일을 기반으로 이미지 파일 요청 등, 사이트가 표시되기 전에 몇 번 서버-클라이언트 간을 왕복할 필요가 있었다.[28]

하지만 푸시 기술을 사용하면 상대방의 요청을 기다리지 않고 필요한 파일을 보내 왕복 횟수(왕복 횟수)를 줄일 수 있어, 사이트 로딩 속도가 빨라진다.[28]

하지만 캐시가 있는 경우 이미 가지고 있는 파일을 보내게 되어 불필요하게 대역폭을 사용하고 통신량이 늘어나는 결과가 발생할 수도 있다. 어떤 리소스를 푸시해야 할지 판단하는 것은 매우 어렵다.[29]

7. 문제점 및 고려 사항

7. 1. 정보 과잉

7. 2. 개인 정보 침해

7. 3. 광고성 정보 전송

8. 대한민국의 현황 및 정책

8. 1. 정보통신망법 규제

8. 2. 개인 정보 보호 논의

8. 3. 플랫폼 사업자의 책임 강화

참조

[1] 웹사이트 Push Technology https://www.techoped[...] 2023-07-23
[2] 웹사이트 Generic Event Delivery Using HTTP Push https://tools.ietf.o[...] Internet Engineering Task Force 2016-10-28
[3] 웹사이트 Notifications API Standard https://notification[...] 2024-04-30
[4] 웹사이트 Push API https://www.w3.org/T[...] 2024-04-30
[5] 웹사이트 Push API - Web APIs {{!}} MDN https://developer.mo[...] 2023-05-16
[6] 문서 CGI Programming on the World Wide Web http://www.oreilly.c[...]
[7] 문서 Server-Push Documents (HTML & XHTML: The Definitive Guide) http://victor.transf[...]
[8] 문서 Remove support for multipart/x-mixed-replace main resources https://bugs.chromiu[...]
[9] 웹사이트 Web Applications 1.0 specification http://www.whatwg.or[...]
[10] 웹사이트 Event Streaming to Web Browsers http://my.opera.com/[...] 2007-03-23
[11] 웹사이트 Opera takes the lead with AJAX support among browsers: More efficient streaming http://operawatch.co[...] 2007-03-23
[12] 웹사이트 HTML Standard – Server-sent events https://html.spec.wh[...] 2022-04-01
[13] 웹사이트 Pushlets introduction http://www.pushlets.[...] 2008-06-05
[14] 웹사이트 Pushlets: Send events from servlets to DHTML client browsers https://www.infoworl[...] 2020-07-13
[15] 웹사이트 RFC6202 - Known Issues and Best Practices for the Use of Long Polling and Streaming in Bidirectional HTTP https://tools.ietf.o[...] 2016-05-14
[16] 웹사이트 XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH) http://xmpp.org/exte[...] 2012-06-26
[17] 간행물 Datacast: A Scalable and Efficient Reliable Group Data Delivery Service For Data Centers https://www.microsof[...] ACM 2017-06-06
[18] 간행물 DCCast: Efficient Point to Multipoint Transfers Across Datacenters https://www.research[...] USENIX 2017-06-06
[19] 논문 Consumer Acceptance of App Push Notifications: Systematic Review on the Influence of Frequency 2020
[20] 웹사이트 iPhone push notification service for devs announced https://www.engadget[...] 2016-10-18
[21] 웹사이트 Google Cloud Messaging for Android (GCM) Unveiled, to Replace C2DM Framework https://www.infoq.co[...] 2016-10-18
[22] 웹사이트 Windows Push Notification Services (WNS) overview https://docs.microso[...] 2017-10-20
[23] 웹사이트 Local and Remote Notifications in Depth https://developer.ap[...] 2016-10-18
[24] 웹사이트 Android and iOS Push Notifications – Blog – JatApp http://jatapp.com/bl[...] 2017-10-20
[25] 웹사이트 How do I adjust my mobile push notifications from Facebook? {{!}} Facebook Help Center {{!}} Facebook https://www.facebook[...] 2016-10-18
[26] 논문 Push Attack: Binding Virtual and Real Identities Using Mobile Push Notifications 2018
[27] 뉴스 Stop, Attention Thief! https://spectrum.iee[...] "[[Institute of Electrical and Electronics Engineers]]" 2021-08-09
[28] 웹사이트 HTTP/2 Server Pushとは?(CDN サーバープッシュでWeb高速化) https://blog.redbox.[...] 2021-10-29
[29] 웹사이트 Server push - HTTP/3 explained https://http3-explai[...] 2021-10-29
[30] 문서 CGI Programming on the World Wide Web http://www.oreilly.c[...]
[31] 문서 Server-Push Documents (HTML & XHTML: The Definitive Guide) http://victor.transf[...]
[32] 웹사이트 Web Applications 1.0 specification http://www.whatwg.or[...] 2007-02-24
[33] 웹사이트 Event Streaming to Web Browsers http://my.opera.com/[...] 2007-03-23
[34] 웹사이트 Opera takes the lead with AJAX support among browsers: More efficient streaming http://operawatch.co[...] 2007-03-23
[35] 문서 Server-Sent Events http://dev.w3.org/ht[...]
[36] 웹사이트 Pushlets introduction http://www.pushlets.[...]
[37] 웹사이트 pushletsに関するJavaWorldの記事 http://www.javaworld[...]
[38] 웹사이트 RFC6202 - Known Issues and Best Practices for the Use of Long Polling and Streaming in Bidirectional HTTP https://datatracker.[...] 2016-05-14
[39] 웹사이트 XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH) http://xmpp.org/exte[...] 2012-06-26



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com