KR102173336B1 - 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템 - Google Patents

리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템 Download PDF

Info

Publication number
KR102173336B1
KR102173336B1 KR1020190049770A KR20190049770A KR102173336B1 KR 102173336 B1 KR102173336 B1 KR 102173336B1 KR 1020190049770 A KR1020190049770 A KR 1020190049770A KR 20190049770 A KR20190049770 A KR 20190049770A KR 102173336 B1 KR102173336 B1 KR 102173336B1
Authority
KR
South Korea
Prior art keywords
application
bundle
bundle file
real
file
Prior art date
Application number
KR1020190049770A
Other languages
English (en)
Inventor
전민우
Original Assignee
(주)메이드인헤븐
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)메이드인헤븐 filed Critical (주)메이드인헤븐
Priority to KR1020190049770A priority Critical patent/KR102173336B1/ko
Application granted granted Critical
Publication of KR102173336B1 publication Critical patent/KR102173336B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템이 제공되며, 리액트 네이티브(React Native) 환경에서 구축된 애플리케이션이 배포되도록 등록하고, 애플리케이션의 적어도 하나의 번들(Bundle) 파일을 업로드하는 등록단말, 배포된 애플리케이션을 다운로드하여 설치하고, 적어도 하나의 번들 파일이 체크되는 경우 체크된 적어도 하나의 번들 파일로 업데이트된 애플리케이션을 실행하는 사용자 단말, 및 등록단말로부터 애플리케이션의 적어도 하나의 번들 파일이 업로드되는 경우 번들 파일을 관리하는 관리부, 적어도 하나의 번들 파일 간의 차이점을 분석하여 패치 번들(Patch Bundle)을 생성하는 생성부, 기 설정된 방식의 압축 파일을 암호화하는 암호화부, 사용자 단말에서 애플리케이션을 실행하여 적어도 하나의 번들 파일을 체크하는 경우, 체크된 적어도 하나의 번들 파일 중 최신의 번들 파일을 사용자 단말로 전달하여 애플리케이션을 업데이트하도록 하는 업데이트부를 포함하는 실시간 애플리케이션 배포 서비스 제공 서버를 포함한다.

Description

리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템{SYSTEM FOR PROVIDING REALTIME APPLICATION DISTRIBUTING SERVICE BASED ON REACT NATIVE ENVIROMENT}
본 발명은 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템에 관한 것으로, 리액트 네이티브 환경에서 개발된 애플리케이션의 실시간 업데이트 및 복구를 위한 번들 패치를 실시간으로 배포할 수 있는 플랫폼을 제공한다.
전 세계적으로 스마트폰의 관심과 판매 증가로 각 스마트폰 제조 및 공급 회사마다 플랫폼을 선점하기 위해서 플랫폼 전쟁이 시작되었다. 플랫폼의 종속적인 특징 때문에 특정 플랫폼 기반의 소프트웨어는 다른 플랫폼으로 재사용하지 못하는데, 문제의 해결을 위해 브라우저 기반의 하이브리드 앱 개발 방법이 등장하였지만, 하이브리드 방법은 간단한 앱에도 브라우저를 실행해야 해서 오버헤드가 크고 플랫폼 별로 구현된 기능들이 제한적이다. 또한 네이티브 앱의 UI와 같게 만들기 위해 초기에 많은 비용이 소모되는 문제 등이 발생한다.
이때, 크로스 플랫폼을 위한 하이브리드 애플리케이션에서 네이티브 이벤트를 처리하는 방법이 연구 및 개발되었는데, 이와 관련하여, 선행기술인 한국등록특허 제10-1684454호(2016년12월08일 공고)에는, 네이티브 이벤트의 종류에 따른 플러그인들의 정보를 파싱하고, 파싱된 플러그인 정보들을 메모리에 로드하는 단계; 및 사용자 단말기 상에서 발생하는 네이티브 이벤트의 종류를 감지하고 그에 따른 플러그인을 결정하여 호출하는 구성이 개시되어 있다.
다만, 상술한 바와 같이 국내외 크로스 플랫폼 개발 도구는 스마트폰의 발전에 따라 점점 더 다양해지고 있고, 크로스 플랫폼 지원을 위한 하이브리드 방식도 개발되고 있으나, 이는 웹(Web)을 앱(App)처럼 사용할 뿐, 네이티브 앱과는 많은 차이가 있다. 이러한 웹 기반 앱들은 중간에서 통신 담당을 수행해주는 미들웨어에 많은 의존을 하게 되고 웹의 기능의 한계를 가지고 있으며 자바스크립트를 통해서 모든 처리를 해야 한다. 또한 하이브리드 기반 개발은 HTML을 앱처럼 보이게 하기위해서 UI 작업에 상당한 노력이 소모되고 간단한 앱도 브라우저를 실행해야 하기 때문에 높은 사양의 디바이스가 요구된다.
본 발명의 일 실시예는, 리액트 네이티브 환경에서 개발된 리액트 네이티브 애플리케이션의 번들 파일을 배포할 때 기존의 애플리케이션 배포 플랫폼을 이용하지 않고 번들 서버를 이용함으로써 실시간으로 배포되지 않았던 단점이나 펜딩(Pending)되는 불편함을 제로화하고, 자주 업데이트가 되어야 하는 애플리케이션의 경우 수정으로 인한 업데이트 지연 및 펜딩을 없앨 수 있으며, 빈번하게 애플리케이션의 기능 수정이 필요한 개발자에게 유용하게 이용될 수 있고, 기존의 플랫폼을 통하지 않은 상태로 애플리케이션의 기능을 실시간 업데이트하거나 신속하게 애플리케이션의 품질을 유지보수할 수 있도록 하는, 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 방법을 제공할 수 있다. 다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예는, 리액트 네이티브(React Native) 환경에서 구축된 애플리케이션이 배포되도록 등록하고, 애플리케이션의 적어도 하나의 번들(Bundle) 파일을 업로드하는 등록단말, 배포된 애플리케이션을 다운로드하여 설치하고, 적어도 하나의 번들 파일이 체크되는 경우 체크된 적어도 하나의 번들 파일로 업데이트된 애플리케이션을 실행하는 사용자 단말, 및 등록단말로부터 애플리케이션의 적어도 하나의 번들 파일이 업로드되는 경우 번들 파일을 관리하는 관리부, 적어도 하나의 번들 파일 간의 차이점을 분석하여 패치 번들(Patch Bundle)을 생성하는 생성부, 기 설정된 방식의 압축 파일을 암호화하는 암호화부, 사용자 단말에서 애플리케이션을 실행하여 적어도 하나의 번들 파일을 체크하는 경우, 체크된 적어도 하나의 번들 파일 중 최신의 번들 파일을 사용자 단말로 전달하여 애플리케이션을 업데이트하도록 하는 업데이트부를 포함하는 실시간 애플리케이션 배포 서비스 제공 서버를 포함한다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 리액트 네이티브 환경에서 개발된 리액트 네이티브 애플리케이션의 번들 파일을 배포할 때 기존의 애플리케이션 배포 플랫폼을 이용하지 않고 번들 서버를 이용함으로써 실시간으로 배포되지 않았던 단점이나 펜딩(Pending)되는 불편함을 제로화하고, 자주 업데이트가 되어야 하는 애플리케이션의 경우 수정으로 인한 업데이트 지연 및 펜딩을 없앨 수 있으며, 빈번하게 애플리케이션의 기능 수정이 필요한 개발자에게 유용하게 이용될 수 있고, 기존의 플랫폼을 통하지 않은 상태로 애플리케이션의 기능을 실시간 업데이트하거나 신속하게 애플리케이션의 품질을 유지보수할 수 있도록 함으로써, 개발자 및 사용자 모두의 감성품질을 높일 수 있다.
도 1은 본 발명의 일 실시예에 따른 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템을 설명하기 위한 도면이다.
도 2는 도 1의 시스템에 포함된 실시간 애플리케이션 배포 서비스 제공 서버를 설명하기 위한 블록 구성도이다.
도 3은 본 발명의 일 실시예에 따른 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스의 리액트 네이티브 환경을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스가 구현되는 일 실시예를 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 번들 파일의 구성요소 및 구조를 설명하기 위한 도면이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
명세서 전체에서 사용되는 정도의 용어 "약", "실질적으로" 등은 언급된 의미에 고유한 제조 및 물질 허용오차가 제시될 때 그 수치에서 또는 그 수치에 근접한 의미로 사용되고, 본 발명의 이해를 돕기 위해 정확하거나 절대적인 수치가 언급된 개시 내용을 비양심적인 침해자가 부당하게 이용하는 것을 방지하기 위해 사용된다. 본 발명의 명세서 전체에서 사용되는 정도의 용어 "~(하는) 단계" 또는 "~의 단계"는 "~ 를 위한 단계"를 의미하지 않는다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1개의 유닛이 2개 이상의 하드웨어를 이용하여 실현되어도 되고, 2개 이상의 유닛이 1개의 하드웨어에 의해 실현되어도 된다.
본 명세서에 있어서 단말, 장치 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말, 장치 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말, 장치 또는 디바이스에서 수행될 수도 있다.
본 명세서에서 있어서, 단말과 매핑(Mapping) 또는 매칭(Matching)으로 기술된 동작이나 기능 중 일부는, 단말의 식별 정보(Identifying Data)인 단말기의 고유번호나 개인의 식별정보를 매핑 또는 매칭한다는 의미로 해석될 수 있다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템을 설명하기 위한 도면이다. 도 1을 참조하면, 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템(1)은, 적어도 하나의 사용자 단말(100), 실시간 애플리케이션 배포 서비스 제공 서버(300), 적어도 하나의 등록단말(400), 및 적어도 하나의 최초 배포 서버(500)를 포함할 수 있다. 다만, 이러한 도 1의 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템(1)은, 본 발명의 일 실시예에 불과하므로, 도 1을 통하여 본 발명이 한정 해석되는 것은 아니다.
이때, 도 1의 각 구성요소들은 일반적으로 네트워크(network, 200)를 통해 연결된다. 예를 들어, 도 1에 도시된 바와 같이, 적어도 하나의 사용자 단말(100)은 네트워크(200)를 통하여 실시간 애플리케이션 배포 서비스 제공 서버(300)와 연결될 수 있다. 그리고, 실시간 애플리케이션 배포 서비스 제공 서버(300)는, 네트워크(200)를 통하여 적어도 하나의 사용자 단말(100), 적어도 하나의 등록단말(400), 적어도 하나의 최초 배포 서버(500)와 연결될 수 있다. 또한, 적어도 하나의 등록단말(400)은, 네트워크(200)를 통하여 실시간 애플리케이션 배포 서비스 제공 서버(300)와 연결될 수 있다. 그리고, 적어도 하나의 최초 배포 서버(500)는, 네트워크(200)를 통하여 적어도 하나의 사용자 단말(100), 실시간 애플리케이션 배포 서비스 제공 서버(300) 및 적어도 하나의 등록단말(400)과 연결될 수 있다.
여기서, 네트워크는, 복수의 단말 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예에는 RF, 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, 5GPP(5th Generation Partnership Project) 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 블루투스(Bluetooth) 네트워크, NFC 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다.
하기에서, 적어도 하나의 라는 용어는 단수 및 복수를 포함하는 용어로 정의되고, 적어도 하나의 라는 용어가 존재하지 않더라도 각 구성요소가 단수 또는 복수로 존재할 수 있고, 단수 또는 복수를 의미할 수 있음은 자명하다 할 것이다. 또한, 각 구성요소가 단수 또는 복수로 구비되는 것은, 실시예에 따라 변경가능하다 할 것이다.
적어도 하나의 사용자 단말(100)은, 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 관련 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 이용하여 애플리케이션의 적어도 하나의 번들 파일을 체크하고, 체크된 적어도 하나의 번들 파일이 존재하는 경우, 체크된 적어도 하나의 번들 파일을 다운로드하여 업데이트된 애플리케이션을 이용하는 단말일 수 있다. 이때, 적어도 하나의 사용자 단말(100)은, 최초 배포 서버(500)를 통하여 애플리케이션을 최초로 다운로드 받아 설치하는 단말일 수 있다. 그리고, 적어도 하나의 사용자 단말(100)의 운영체제는 iOS 또는 안드로이드일 수 있다.
여기서, 적어도 하나의 사용자 단말(100)은, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다. 이때, 적어도 하나의 사용자 단말(100)은, 네트워크를 통해 원격지의 서버나 단말에 접속할 수 있는 단말로 구현될 수 있다. 적어도 하나의 사용자 단말(100)은, 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 네비게이션, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 스마트 패드(smartpad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
실시간 애플리케이션 배포 서비스 제공 서버(300)는, 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 제공하는 서버일 수 있다. 그리고, 실시간 애플리케이션 배포 서비스 제공 서버(300)는, 등록단말(400)로부터 적어도 하나의 번들 파일을 업로드받고, 업로드된 적어도 하나의 번들 파일을 관리하는 서버일 수 있다. 또한, 실시간 애플리케이션 배포 서비스 제공 서버(300)는, 등록단말(400)에서 업로드한 번들 파일 간의 차이점을 분석하여 패치 번들을 생성하는 서버일 수 있다. 그리고, 실시간 애플리케이션 배포 서비스 제공 서버(300)는. AES 512 방식으로 적어도 하나의 번들 파일을 압축 암호화하는 서버일 수 있다. 또한, 실시간 애플리케이션 배포 서비스 제공 서버(300)는, Hmac Auth 인증 방식의 인가된 접근(Access)만을 허용하는 서버일 수 있다. 그리고, 실시간 애플리케이션 배포 서비스 제공 서버(300)는, 설치형 단독 서버 구성으로 안정성을 확보하는 서버일 수 있다. 그리고, 실시간 애플리케이션 배포 서비스 제공 서버(300)는, 업로드된 적어도 하나의 번들 파일 빌드 및 암호화 압축을 실시하는 서버일 수 있고, Global CLI를 이용하여 쉬운 사용법을 제공하는 서버일 수 있으며, iOS 및 안드로이드 네이티브 모듈로 패키징된 라이브러리를 제공하는 서버일 수 있다.
여기서, 실시간 애플리케이션 배포 서비스 제공 서버(300)는, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다.
적어도 하나의 등록단말(400)은, 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 관련 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 이용하는 개발자 또는 관리자의 단말일 수 있다. 이때, 적어도 하나의 등록단말(400)은, 최초 배포된 애플리케이션의 업데이트가 존재할 때 적어도 하나의 번들 파일을 실시간 애플리케이션 배포 서비스 제공 서버(300)로 업로드하는 서버일 수 있다.
여기서, 적어도 하나의 등록단말(400)은, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다. 이때, 적어도 하나의 등록단말(400)은, 네트워크를 통해 원격지의 서버나 단말에 접속할 수 있는 단말로 구현될 수 있다. 적어도 하나의 등록단말(400)은, 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 네비게이션, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 스마트 패드(smartpad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
적어도 하나의 최초 배포 서버(500)는, 등록단말(400)에서 등록한 리액트 네이티브 환경에서 구축된 애플리케이션이 사용자 단말(100)에서 최초로 다운로드되어 설치되도록 하는 애플리케이션을 게재하는 서버일 수 있다. 이때, 적어도 하나의 최초 배포 서버(500)는 구글플레이 또는 앱스토어의 플랫폼을 가지는 서버일 수 있다. 여기서, 적어도 하나의 최초 배포 서버(500)는, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다.
도 2는 도 1의 시스템에 포함된 실시간 애플리케이션 배포 서비스 제공 서버를 설명하기 위한 블록 구성도이고, 도 3은 본 발명의 일 실시예에 따른 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스의 리액트 네이티브 환경을 설명하기 위한 도면이고, 도 4는 본 발명의 일 실시예에 따른 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스가 구현되는 일 실시예를 도시한 도면이고, 도 5는 본 발명의 일 실시예에 따른 번들 파일의 구성요소 및 구조를 설명하기 위한 도면이다.
도 2를 참조하면, 실시간 애플리케이션 배포 서비스 제공 서버(300)는, 관리부(310), 생성부(320), 암호화부(330), 업데이트부(340), 번들 다운로더(350), 및 번들 빌더 CLI 툴(360)을 포함하는 서버일 수 있다.
본 발명의 일 실시예에 따른 실시간 애플리케이션 배포 서비스 제공 서버(300)나 연동되어 동작하는 다른 서버(미도시)가 적어도 하나의 사용자 단말(100), 및 적어도 하나의 등록단말(400)로 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 애플리케이션, 프로그램, 앱 페이지, 웹 페이지 등을 전송하는 경우, 적어도 하나의 사용자 단말(100), 및 적어도 하나의 등록단말(400)은, 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 애플리케이션, 프로그램, 앱 페이지, 웹 페이지 등을 설치하거나 열 수 있다. 또한, 웹 브라우저에서 실행되는 스크립트를 이용하여 서비스 프로그램이 적어도 하나의 사용자 단말(100), 및 적어도 하나의 등록단말(400)에서 구동될 수도 있다. 여기서, 웹 브라우저는 웹(WWW: world wide web) 서비스를 이용할 수 있게 하는 프로그램으로 HTML(hyper text mark-up language)로 서술된 하이퍼 텍스트를 받아서 보여주는 프로그램을 의미하며, 예를 들어 넷스케이프(Netscape), 익스플로러(Explorer), 크롬(chrome) 등을 포함한다. 또한, 애플리케이션은 단말 상의 응용 프로그램(application)을 의미하며, 예를 들어, 모바일 단말(스마트폰)에서 실행되는 앱(app)을 포함한다.
도 2를 참조하면, 관리부(310)는, 등록단말(400)로부터 애플리케이션의 적어도 하나의 번들 파일이 업로드되는 경우 번들 파일을 관리할 수 있다. 이때, 등록단말(400)은, 리액트 네이티브(React Native) 환경에서 구축된 애플리케이션이 배포되도록 최초 배포 서버(500)에 등록하고, 애플리케이션의 적어도 하나의 번들(Bundle) 파일을 관리부(310)로 업로드할 수 있다. 이때, 리액트 네이티브(React Native)는 도 3를 참조하면, 자바스크립트를 이용하여 크로스 모바일 플랫폼 앱 개발을 할 수 있는 프레임워크이다. 리액트 네이티브 환경에서 구축된 애플리케이션은, 하이브리드 앱과 비교하여 월등한 앱 성능을 가지며, 하나의 소스 개발로 안드로이드와 iOS에서 모두 동작할 수 있도록 구성된다. 그리고, 높은 생산성 및 유지보수의 편의성을 제공하고, JSX - Html과 유사한 Virtual Dom 방식으로 웹 개발자 접근성 및 화면 코드 관리가 뛰어나다. 그리고, 리액트 네이티브는, 리액트의 접근 방법을 모바일로 확장한 페이스북의 오픈소스 프로젝트로, 기존 모바일 자바스크립트 툴이 웹뷰(Web View)를 통하여 인터페이스를 구축하는 하이브리드 방식이었다면, 리액트 네이티브는, 자바스크립트로 작업하지만, 인터페이스는 네이티브 위젯으로 표시하는 방법이고, 네이티브 사용자 인터페이스를 통하여 이질감 없고 쾌적한 사용자 경험을 제공할 수 있다. 그 외의 상세한 설명은 공지된 기술과 동일하므로 생략하기로 한다.
다시 도 2로 돌아와서, 생성부(320)는, 적어도 하나의 번들 파일 간의 차이점을 분석하여 패치 번들(Patch Bundle)을 생성할 수 있다. 이때, 패치란, 소프트웨어에 문제가 생겼을 때, 그 문제를 해결해 주는 프로그램 혹은 데이터를 의미하며, 업데이트와 패치는 자주 혼용되어 쓰이나, 사실 개념적으로 본다면 패치는 업데이트의 하위 개념으로 볼 수 있다. 즉, 패치는 소프트웨어의 결함수정을 가르키며, 업데이트는 소프트웨어의 결함수정 및 기능보완까지 포함하는 개념이다. 모든 프로그램은 결점 없이 완벽히 제작될 수는 없으며, 그렇기 때문에 제작되고 배포된 후에, 사용자들이 사용하는 과정에서 끊임없이 문제점이 발견되고 수정되는데 대부분의 작은 오류들은 개발자가 기억을 해 두었다가 버전 업데이트나 정기 업데이트 과정에서 보완을 하게 된다. 하지만 간혹 사용자들의 사용에 피해를 주는 기능상의 오류나 심각한 문제를 야기할 수 있는 보안상의 문제점들은 빠르게 수정이 되어야 하며, 제작사 또는 제작자가 이러한 문제점에 대한 해결책을 임시로 내놓거나 빠른 해결방법을 내놓는 것을 패치(Patch)라고 한다. 만약, A의 번들 파일 이후에 A'의 번들 파일이 업로드되었다면, A와 A' 간의 차이를 분석하여 생성부(320)는, 패치 번들을 생성할 수 있다.
암호화부(330)는, 기 설정된 방식의 압축 파일을 암호화할 수 있다. 이때, 기 설정된 방식의 압축 파일은, AES 512 방식의 ZIP 파일일 수 있다. 여기서, 고급 암호화 표준(Advanced Encryption Standard, AES)은 2001년 미국 표준 기술 연구소(NIST)에 의해 제정된 암호화 방식으로, DES를 대체한 AES는, 암호화와 복호화 과정에서 동일한 키를 사용하는 대칭 키 알고리즘이다. 물론 상술한 대칭 암호화 알고리즘인 DES(Data Encryption Standard), 3DES, AES 이외에도, 비대칭 암호화 알고리즘이 이용될 수 있고, 예를 들어 RSA가 이용될 수 있으며, 상술한 암호화 방법 이외에도 실시예에 따라 다양한 암호화 방식이 이용될 수 있음은 자명하다 할 것이다.
업데이트부(340)는, 사용자 단말(100)에서 애플리케이션을 실행하여 적어도 하나의 번들 파일을 체크하는 경우, 체크된 적어도 하나의 번들 파일 중 최신의 번들 파일을 사용자 단말(100)로 전달하여 애플리케이션을 업데이트하도록 할 수 있다. 이때, 번들 파일은, 도 5를 참조하면, 네이티브 JS 코어, 리액트 네이티브 브리지(Bridge), 및 정적 콘텐츠 리소스(Static Content Resource)를 포함하고, 리액트 네이티브 브리지는, 네이티브 모듈 API, 및 플랫폼 API를 포함하고, 정적 콘텐츠 리소스는, 이미지 리소스, JSON 콘텐츠, 및 로컬라이제이션(Localization)을 포함할 수 있다. 이에 따라, 사용자 단말(100)은, 배포된 애플리케이션을 다운로드하여 설치하고, 적어도 하나의 번들 파일이 체크되는 경우 체크된 적어도 하나의 번들 파일로 업데이트된 애플리케이션을 실행할 수 있다.
다시 도 2로 돌아와서, 번들 다운로더(350)는, iOS 또는 안드로이드 네이티브 모듈로 패키징된 라이브러리를 포함하여 사용자 단말(100)에서 적어도 하나의 번들 파일을 다운로드하도록 제어할 수 있다.
번들 빌더(Bundle Builder) CLI(Command Line Interface) 툴(360)은, 번들 파일 빌드 및 암호화 압축을 실시하고, 등록단말(400)에서 실시간 애플리케이션 배포 서비스 제공 서버(300)로 적어도 하나의 번들 파일을 업로드하도록 한다. 이때, 등록단말(400)에서 번들 파일을 업로드할 때 HMAC 인증 방식으로 인가된 접근만 허용하도록 할 수 있는데, HMAC(Hash-based Message Authentication)는 해싱 기법을 적용하여 메시지의 위변조를 방지하는 기법이다. 해싱은 원문(Plain Text)을 일정 길이의 바이트로 변환하는데 그 결과가 유일하여 긴 문장의 빠른 검색을 위한 키 값으로 많이 쓰인다. 그리고, 해시된 결과를 사용해서 거꾸로 원문을 복구할 수 없다는 것이 해시를 사용하는 고유한 가치라고 할 수 있다. 이러한 해시의 특성을 사용하여 데이터의 위변조 여부를 알아낼 수 있다. 예를 들어, 사전에 송신자와 수신자는 별도 채널로 해시에 사용할 키 공유키를 공유한다. 그리고, 양쪽에서 사용할 해시 알고리즘을 정하며, 송신자는 공유키를 이용하여 사용자 ID를 해시하고, 송신자가 등록단말(400)이라고 가정하면, 등록단말(400)은 원본 번들 파일과 해시결과(HMAC)를 쿼리스트링 값으로 수신자에게 전달한다. 그리고, 수신자인 실시간 애플리케이션 배포 서비스 제공 서버(300)는, 받은 번들 파일을 공유키를 사용하여 같은 알고리즘으로 해시한 결과(수신자의 HMAC)를 만든다. 이때, 실시간 애플리케이션 배포 서비스 제공 서버(300)가 만든 HMAC와 쿼리스트링으로 받은 HMAC가 같다면 번들 파일은 변경되지 않았다고 신뢰할 수 있다. 만약, 번들 파일 + 공유키 = HMAC와 같은 공식에서 번들 파일을 변경하였다면 그 결과인 HMAC도 변경되므로, 위조한 번들 파일이 수신자 측인 실시간 애플리케이션 배포 서비스 제공 서버(300)에서 인정받으려면 동일한 해싱 과정을 거쳐 HMAC도 제공해야 하는데, 공유키와 해시 알고리즘을 알지 못하면 가능하지 않다. 이때, 해시는 키를 사용하는 방법(keyed hash)과 사용하지 않는 방법이 이용될 수 있다.
이하, 상술한 도 2의 실시간 애플리케이션 배포 서비스 제공 서버의 구성에 따른 동작 과정을 도 4 및 도 5를 예로 들어 상세히 설명하기로 한다. 다만, 실시예는 본 발명의 다양한 실시예 중 어느 하나일 뿐, 이에 한정되지 않음은 자명하다 할 것이다.
도 4를 참조하면, (a) 기존의 네이티브 배포 방식의 경우(Traditional), 개발자가 개발을 완료하여 품질인증된 애플리케이션을 앱 스토어 또는 구글 플레이 스토어에 업로드하는데, 앱 스토어의 경우 거절가능성을 제외하더라도 최대 2일이 소요되고, 거절이 되는 경우에는 무기한 연장되어 번들 패치의 업데이트는 거의 불가능해지게 된다. 또한, 구글 플레이 스토어라도 신규 버전을 업로드한 후 최소 5시간 후에 사용자에게 제공되므로 실시간으로 오류가 복구되어야 하거나 신속하게 앱 퀄리티를 유지해야 하는 경우에는 앱 퀄리티를 유지하기가 어렵다. 이에 반하여, (b) 본 발명의 일 실시예에 따른 실시간 애플리케이션 배포 서비스 제공 서버(300)를 이용하는 경우, 개발자가 등록단말(400)을 이용하여 실시간 애플리케이션 배포 서비스 제공 서버(300)로 업로드하는 경우, 실시간으로 사용자 단말(100)에서 최신 번들을 체크하여 업데이트된 애플리케이션으로 즉시 실행을 할 수 있으므로, 오류의 실시간 수정 및 복구가 가능해진다. 물론, 최초 배포는 최초 배포 서버(500)를 통하여 배포되어 사용자 단말(100)에 다운로드 및 설치된다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 번들의 구조가 도시되는데, 상술한 번들 파일을 위해 네이티브 언어인 Swift & Objective-c로 구성되는 .ipa 파일과, Java & C/C++로 구성되는 .apk 파일이 기본으로 포함될 수 있다.
이와 같은 도 2 내지 도 5의 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 방법에 대해서 설명되지 아니한 사항은 앞서 도 1을 통해 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다.
도 1 내지 5를 통해 설명된 일 실시예에 따른 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템은, 컴퓨터에 의해 실행되는 애플리케이션이나 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 발명의 일 실시예에 따른 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템은, 단말기에 기본적으로 설치된 애플리케이션(이는 단말기에 기본적으로 탑재된 플랫폼이나 운영체제 등에 포함된 프로그램을 포함할 수 있음)에 의해 실행될 수 있고, 사용자가 애플리케이션 스토어 서버, 애플리케이션 또는 해당 서비스와 관련된 웹 서버 등의 애플리케이션 제공 서버를 통해 마스터 단말기에 직접 설치한 애플리케이션(즉, 프로그램)에 의해 실행될 수도 있다. 이러한 의미에서, 전술한 본 발명의 일 실시예에 따른 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 방법은 단말기에 기본적으로 설치되거나 사용자에 의해 직접 설치된 애플리케이션(즉, 프로그램)으로 구현되고 단말기에 등의 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (7)

  1. 리액트 네이티브(React Native) 환경에서 구축된 애플리케이션이 배포되도록 등록하고, 상기 애플리케이션의 적어도 하나의 번들(Bundle) 파일을 업로드하는 등록단말;
    상기 배포된 애플리케이션을 다운로드하여 설치하고, 상기 적어도 하나의 번들 파일이 체크되는 경우 상기 체크된 적어도 하나의 번들 파일로 업데이트된 애플리케이션을 실행하는 사용자 단말; 및
    상기 등록단말로부터 애플리케이션의 적어도 하나의 번들 파일이 업로드되는 경우 상기 번들 파일을 관리하는 관리부, 상기 적어도 하나의 번들 파일 간의 차이점을 분석하여 패치 번들(Patch Bundle)을 생성하는 생성부, 기 설정된 방식의 압축 파일을 암호화하는 암호화부, 상기 사용자 단말에서 상기 애플리케이션을 실행하여 상기 적어도 하나의 번들 파일을 체크하는 경우, 상기 체크된 적어도 하나의 번들 파일 중 최신의 번들 파일을 상기 사용자 단말로 전달하여 상기 애플리케이션을 업데이트하도록 하는 업데이트부를 포함하는 실시간 애플리케이션 배포 서비스 제공 서버;를 포함하고,
    상기 기 설정된 방식의 압축 파일은, AES 512 방식의 ZIP 파일이며,
    상기 번들 파일은, 네이티브 JS 코어, 리액트 네이티브 브리지(Bridge), 및정적 콘텐츠 리소스(Static Content Resource)를 포함하고, 상기 리액트 네이티브 브리지는, 네이티브 모듈 API, 및 플랫폼 API를 포함하며, 상기 정적 콘텐츠 리소스는, 이미지 리소스, JSON 콘텐츠, 및 로컬라이제이션(Localization)을 포함하는 것을 특징으로 하는 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템은,
    상기 애플리케이션을 최초 배포하여 상기 사용자 단말에서 상기 애플리케이션을 다운로드 및 설치하도록 하는 최초 배포 서버;
    를 더 포함하는 것을 특징으로 하는 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템.
  5. 제 1 항에 있어서,
    상기 실시간 애플리케이션 배포 서비스 제공 서버는,
    iOS 또는 안드로이드 네이티브 모듈로 패키징된 라이브러리를 포함하여 상기 사용자 단말에서 상기 적어도 하나의 번들 파일을 다운로드하도록 제어하는 번들 다운로더;
    를 더 포함하는 것을 특징으로 하는 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템.
  6. 제 1 항에 있어서,
    상기 실시간 애플리케이션 배포 서비스 제공 서버는,
    번들 파일 빌드 및 암호화 압축을 실시하고, 상기 등록단말에서 상기 실시간 애플리케이션 배포 서비스 제공 서버로 상기 적어도 하나의 번들 파일을 업로드하도록 하는 번들 빌더(Bundle Builder) CLI(Command Line Interface) 툴;
    을 더 포함하는 것을 특징으로 하는 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템.
  7. 제 1 항에 있어서,
    상기 리액트 네이티브 환경은,
    자바스크립트를 이용하여 크로스 플랫폼 모바일 애플리케이션을 개발하는 환경이고,
    상기 리액트 네이티브 환경에서 개발된 애플리케이션은 iOS 및 안드로이드에서 모두 동작하는 애플리케이션인 것을 특징으로 하는 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템.
KR1020190049770A 2019-04-29 2019-04-29 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템 KR102173336B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190049770A KR102173336B1 (ko) 2019-04-29 2019-04-29 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190049770A KR102173336B1 (ko) 2019-04-29 2019-04-29 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템

Publications (1)

Publication Number Publication Date
KR102173336B1 true KR102173336B1 (ko) 2020-11-03

Family

ID=73197795

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190049770A KR102173336B1 (ko) 2019-04-29 2019-04-29 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템

Country Status (1)

Country Link
KR (1) KR102173336B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040062268A (ko) * 2003-01-02 2004-07-07 삼성전자주식회사 애플리케이션 관리 시스템 및 방법
KR20140001172A (ko) * 2012-06-27 2014-01-06 구글 인코포레이티드 애플리케이션을 업데이트하는 방법
KR20150080310A (ko) * 2013-12-31 2015-07-09 주식회사 케이티 어플리케이션 업데이트 서버 및 방법
KR20190005152A (ko) * 2016-03-15 2019-01-15 알리바바 그룹 홀딩 리미티드 이동 단말 애플리케이션 업데이트 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040062268A (ko) * 2003-01-02 2004-07-07 삼성전자주식회사 애플리케이션 관리 시스템 및 방법
KR20140001172A (ko) * 2012-06-27 2014-01-06 구글 인코포레이티드 애플리케이션을 업데이트하는 방법
KR20150080310A (ko) * 2013-12-31 2015-07-09 주식회사 케이티 어플리케이션 업데이트 서버 및 방법
KR20190005152A (ko) * 2016-03-15 2019-01-15 알리바바 그룹 홀딩 리미티드 이동 단말 애플리케이션 업데이트 방법 및 장치

Similar Documents

Publication Publication Date Title
US11599350B2 (en) Blockchain computer data distribution
US10693883B2 (en) Technologies for integrating and sandboxing web resources
AU2016359508B2 (en) Page jumping method and apparatus
US9037642B2 (en) Platform for deployment and distribution of modules to endpoints
US10838706B2 (en) Updating software utilizing domain name system (DNS)
JP6600156B2 (ja) 動的な提示およびデータの構成を使用するセキュリティ保護されたモバイル共同アプリケーションを構築するためのプラットフォーム
WO2016192197A1 (zh) 一种终端的软件升级方法、装置、系统和计算机存储介质
US20150026827A1 (en) Method for application management, corresponding system, and user device
WO2022237123A1 (zh) 一种获取区块链数据的方法、装置、电子设备及存储介质
KR20160122254A (ko) 소프트웨어 애플리케이션의 세트의 구축 방법
EP3491808B1 (en) Interchangeable retrieval of content
CN108809960A (zh) 一种文件上传及下载方法、装置、设备、系统及存储介质
US20200266971A1 (en) Re-encrypting data on a hash chain
US9367699B2 (en) Automating the creation and maintenance of policy compliant environments
US10291598B1 (en) Transmitting and storing different types of encrypted information using TCP urgent mechanism
CN107239299B (zh) 插件升级方法及装置
CN112241298A (zh) 页面显示方法及装置、存储介质、电子装置
US10148726B1 (en) Initiating operating system commands based on browser cookies
US10678621B2 (en) System error codes for edge encryption
US11709801B2 (en) File-based sharing using content distributions network
KR102173336B1 (ko) 리액트 네이티브 환경 기반 실시간 애플리케이션 배포 서비스 제공 시스템
CN112416395A (zh) 一种热修复更新方法和装置
US20220103599A1 (en) Method, system and apparatus for unified security configuration management
US11323445B2 (en) Methods and systems for accessing a network
US9621630B2 (en) Distribution method, distribution apparatus, and terminal apparatus

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant