자유 게시판

2024.11.08 20:12

(내용추가) iOS 웹 푸시 개발 방향성에 대해서 알려드려요.

https://rebuilder.co.kr/free/593


위 글에서 작성했듯이, iOS(아이폰, 아이패드) 사용자에게 푸시알림을 제공할 수 있도록 웹푸시 플러그인을 제작하고 있습니다.

iOS 정책상 웹푸시는 사용자가 "홈화면에 추가" 작업을 통해 웹앱으로 사용할 경우에만 푸시를 받도록 되어있습니다.

(푸시 권한 요청 자체가 웹 앱에서만 작동 됩니다.)


그런데 웹푸시 특성상 VAPID KEY(공개키, 비밀키)를 통해 작동되는 로직 특성상 가장 간단하게 구현할 수 있는 방법이

Node.js로 서버를 가동하는것이라고 판단 하였습니다.

그런데 일반 사용자들이 단지 푸시 작동을 위해서 Node.js 서버를 구매하는것이 너무 비효율적이다고 판단하여

중계서버를 만들어 가동해야겠다 생각했습니다.


최소한의 사양으로 운용할 수 있는 환경을 세팅하다보니 월 22,000원이더라구요.

물론, 해당 플러그인을 사용하는데 있어서 비용적인 부담은 절대 드리지 않을 방향으로 생각하고 있습니다.

(제가 알기로는) 그누보드에서의 웹푸시 환경이 생각보다 많지는 않은것으로 알고 있어요.

리빌더에서 사용할 수 있는 플러그인 형태로 제작하여, 리빌더 사용자가 많아져 더 좋은 자료들이 공유되는 그런 환경이 되었으면 하는 마음입니다.


서론은 여기서 끝내고, 어떻게 운영 그리고 작동될것인지에 대한 방향을 말씀 드리겠습니다.

(물론 초안이고 달라질수도 있기는 합니다.)



1. 플러그인을 설치한 사용자는 관리자 페이지에서 발급받은 VAPID KEY를 중계서버로 전송하고 중계서버에서 해당 키를 저장합니다.

(추후 관리자 페이지에서 키 발급 절차를 간소화 할 예정입니다. 또 리빌더측에서 허용한다면 웹푸시 관리 페이지는 관리자페이지-빌더설정 내에 제공하고자 합니다.)


2. 모바일 기기에서 접속시 홈화면에 추가를 유도할 장치를 제공할 예정입니다. 웹앱으로 접속하여 로그인한 대상을 통해 푸시 권한 승인을 유도할 페이지를 만들 예정입니다.

(iOS 정책상 사용자의 클릭 이벤트가 있어야, 푸시권한을 요청할 수 있습니다. 혹은 제가 잘못알고 있을수도 있습니다.)


3. 홈페이지가 운영되는 개인의 호스팅에 사용자의 푸시 수신을 위한 토큰정보를 저장합니다.

(중계서버에서 토큰정보를 저장하지 않습니다.)


4. 푸시를 발송하기 위해 PHP 함수로 코드를 제공할 예정입니다. 홈페이지를 운영하는 관리자께서 필요한 부분에 해당 함수를 활용하여 푸시가 발송되도록 처리합니다.

(혹은 리빌더 알림 부분과 연동하여 작동되도록 할 예정입니다. 리빌더 코어 수정을 최소화 할 수 있다는 가정하에)



아마 APK 혹은 플레이스토어 배포가 어려운 사용자를 배려하여 iOS에 국한되지 않은 웹푸시를 지원하는 환경이라면 모두 작동하게 제작할 예정입니다.

홈페이지 이용자는 여러 기기의 토큰을 호스팅에 등록할 수 있도록 할 예정입니다.



초안이기 때문에 내용이 달라질수는 있습니다. 또 개발기간이 얼마나 걸릴지 모르겠습니다.

하지만 저도 필요한 기능이기 때문에 개발은 이루어질 겁니다.


얕은 마음으로나마 기대해주신다면 그 힘으로 개발해보겠습니다.


감사합니다.





작업 현황 (실시간 수정)

1. 그누보드 관리자 페이지에서 버튼 하나로 중계서버로부터 키발급 및 호스팅 서버 키 추가 완료)

2. 보안을 위해 해시값을 통해 임의로 중계서버 접근시 접속 차단 작업 완료

  • 공유링크 복사
    미니홈 쪽지 구독하기
    구독하고 알림받기
구매 신청
  • 신용카드 결제는 별도상담을 통해 가능합니다.
    구매문의 : cs@false9.co.kr / 010-6466-3355
    신청 이후 담당자가 개별연락 드리고 있습니다.
    입금자명과 실제 입금자가 동일한 경우 자동처리 됩니다.
  • 결제예정 금액 : 0 (VAT별도)
    하나은행(KOEXKRSE) : 258-910104-00407 / 김은정(인덱스)

  •  
  • 신청 및 FCM 가이드
      안드로이드 웹앱 및 푸시알림을 사용하기위한 A-Z!
      잘 따라오시면 어렵지 않습니다.

      1. FCM (Firebase Cloud Messaging) 세팅하기

      1-1. 시작하기
      https://console.firebase.google.com?hl=ko 으로 접속하여 [시작하기] 를 클릭합니다. FCM은 구글계정이 있으면 무료로 사용 가능 합니다.




      1-2. 프로젝트 생성하기
      [프로젝트 시작하기] 를 클릭합니다.




      프로젝트의 이름을 설정합니다.
      앱이름(사이트명, 상호명)을 영문으로 입력하는것이 가장 좋습니다.
      입력하셨다면 [계속] 을 클릭해주세요.




      애널리틱스 사용설정을 활성화 해주시고(선택사항)
      [계속] 을 클릭해주세요.




      애널리틱스 위치를 [대한민국] 또는 거주국가를 선택하시고 약관 동의 후 [프로젝트 만들기] 를 클릭해주세요.




      프로젝트 생성이 완료 되었습니다. [계속] 을 클릭하시면 FCM메인페이지로 이동 합니다.




      1-3. 앱 생성하기
      이전 단계에서 프로젝트를 생성했습니다.
      이제 프로젝트안에 안드로이드 앱을 생성해보겠습니다.

      FCM 메인 중앙에 주황색 동그란 버튼이 3개 있습니다.
      가운데에 있는 (안드로이드 로고) 버튼을 클릭해주세요.




      버튼을 클릭하셨다면 앱등록 창이 오픈 됩니다.
      안드로이드 패키지 이름 및 앱 닉네임을 입력하세요.

      패키지 이름은 반드시 com.webview.앱영문명 으로 입력하셔야 합니다.
      com.webview. 를 반드시 넣어주셔야 합니다.
      입력 예) com.webview.rebuilder

      앱 닉네임은 사이트명이나 상호명, 앱이름 등을 입력해주시면 됩니다.
      디버그 서명은 입력하지 않아도 됩니다.

      입력을 마치셨다면 [앱등록] 을 클릭해주세요.
      다음페이지로 넘어간다면, 입력하신 패키지명 (com.webview.앱영문명) 을 메모장에 메모해주세요.





      [google-services.json 다운로드] 버튼을 클릭하셔서 파일을 다운받아 주세요.
      다운을 받으셨다면 [다음] 을 클릭해주세요.




      Groovy(build.gradle) 선택하신 후 [다음] 을 클릭해주세요.




      앱 생성이 완료 되었습니다.
      [콘솔로 이동] 을 클릭하시면 메인으로 이동 됩니다.




      1-4. 비공개 키파일 생성하기
      거의 다왔습니다. 조금만 더 힘내세요.
      저도 이거 작성하느라 무쟈게 힘들었습니다. 리빌더화이팅.

      화면 상단에 아까 입력하신 이름으로 앱이 생성된게 보이신다면,
      좌측 상단에 [프로젝트 개요] 메뉴 옆에 톱니바퀴 아이콘을 클릭하여
      [프로젝트 설정] 으로 이동해주세요.




      프로젝트 설정으로 오셨다면 상단 탭메뉴에서 [서비스 계정] 을 클릭하세요.





      화면 아래쪽에 있는 [새 비공개 키 생성] 을 클릭하세요.

      키파일은 버튼 클릭시 자동으로 다운로드 됩니다.
      중요한 파일이므로 파일을 타인에게 공개하거나 해서는 안됩니다.





      친절하게 중요한 파일임을 알려줍니다.
      [키 생성] 을 클릭하면 json 파일이 다운로드 됩니다.




      다운로드된 파일은 rebuilder-demo-a4cc0-firebase-adminsdk-au83h-41e4b5df03.json 과 같은식으로 저장됩니다.
      이름이 너무 긴 관계로 임의파일명으로 변경해주세요.
      가이드에서는 key.json 으로 설명하겠습니다.

      이제 준비는 모두 끝났습니다!
      바탕화면에 1-3에서 다운로드 했던 google-services.json 파일과,
      방금 이름을 변경했던 key.json 파일이 있다면 잘 하셨습니다. (파일아이콘은 무시해주세요. 다를 수 있습니다.)




      2. 리빌더 앱관리 설정하기

      2-1. 파일 업로드하기
      위 단계에서 이름을 변경했던 key.json 파일을 사용하시는 웹서버(웹호스팅)에 FTP 프로그램으로 접속하여 업로드 해주세요.
      업로드 위치는 /data/push/key.json 입니다.

      2-2. 앱관리 설정하기
      관리자모드 > 빌더설정 > 앱관리 메뉴로 이동해주세요.
      [앱관리] 메뉴가 없다면 리빌더 공식홈페이지 > 유료기능 다운로드 에서 [안드로이드 하이브리드 웹앱 + Push 알림] 기능을 다운로드 후 설치해주세요.
      바로가기 > https://rebuilder.co.kr/membership/30

      설치가 되셨다면 관리자모드 > 빌더설정 > 앱관리 메뉴로 이동해주세요.

      스크롤을 내리시면 [FCM 설정] 섹션이 있습니다.
      FCM 패키지명, FCM 프로젝트 ID, FCM 비공개키파일 항목을 모두 입력 하시고
      [확인] 을 클릭해주시면 설정은 마무리 됩니다.




      [FCM 패키지명]
      1-3 에서 설정했던 com.webview.앱영문명 을 입력하시면 됩니다.

      [FCM 프로젝트 ID]
      1-4 에서 이동했던 [프로젝트 설정] 페이지로 이동하시면 내 프로젝트 섹션에서 확인하실 수 있습니다. (스샷참조)

      [FCM 비공개키파일]
      위에서 임의파일명으로 변경했던 파일명 key.json 을 입력하시면 됩니다.




      고생하셨습니다. 모든 설정이 완료 되었습니다.
      1-3 에서 다운로드 했던 google-services.json 파일은
      신청서에 첨부해주셔야 합니다.


      창을 닫아주시고, 신청을 계속해주세요!