KR-20260061685-A - 클라우드 백엔드 서비스기반 시스템의 비용 절감을 위한 클라이언트측 캐싱시스템 및 이를 이용한 클라이언트 캐싱방법
Abstract
백엔드 서비스 사용량의 증가로 인해 클라우드 기반 서비스는 급격한 부하 증가와 비용 상승이 발생하고 있다. 이는 클라이언트의 속도 저하와 더불어 백엔드 서비스 이용자의 요금 부담을 가중시키고 있다. 이러한 문제를 해결하기 위해, 프로필 정보, 사용자 설정, 최근 활동 등의 사용자 데이터를 클라이언트 측에서 캐싱하는 시스템을 본 출원 발명에서 제공하고 있다. 본 출원 발명의 시스템은 클라이언트 측 캐싱을 통해 서버 요청 빈도를 줄임으로써, 서버 부하를 경감시키고 클라이언트 운영비용을 절감할 수 있고, 캐싱된 데이터는 암호화를 통해 보안성을 높이며, 데이터 무결성을 유지하기 위한 데이터 처리 과정을 설계했다. 상기와 같은 발명의 구성에 의하여 클라우드 서버에서 클라이언트 컴퓨팅에 필요한 데이터를 가능한 적은 횟수로 요청함으로써 상기 클라우스 서버에의 데이터 요청회수를 줄임으로써 상기 클라우드 서버와의 통신부하는 줄임으로써 전체 시스템의 속도를 향상시키고, 상기 클라우스 서버의 이용비용을 줄이는 효과가 있는 기술을 제공한다.
Inventors
- 원구환
- 서지웅
Assignees
- 한남대학교 산학협력단
Dates
- Publication Date
- 20260506
- Application Date
- 20241028
Claims (4)
- 클라우드 서버; 및 상기 클라우드 서버에 네트워크로 연결하여 클라우드 데이터베이스를 사용하는 클라이언트; 및 상기 클라이언트에는 사용하는 데이터를 캐싱하기 위한 캐싱모듈; 및 상기 캐싱모듈에 캐싱된 데이터를 암호와 하는 암호화모듈; 및 상기 캐싱모듈에 캐싱된 데이터가 클라우드 서버에서 변경되는 경우 상기 캐싱모듈에 변경된 데이터를 업데이트하기 위한 리스너모듈; 및 상기 클라우드 데이터베이스와 상기 캐싱모듈에서 캐싱된 데이터를 주고받기 위하여 데이터형식을 맞춰주기 위한 Json모듈을 구비한 것을 특징으로 하는 클라우드 백엔드 서비스기반 시스템의 비용 절감을 위한 클라이언트측 캐싱시스템.
- 제1항의 상기 클라우드 백엔드 서비스기반 시스템의 비용 절감을 위한 클라이언트측 캐싱 시스템을 이용한 클라이언트 캐싱 방법에 있어서, 상기 클라이언트가 데이터를 요청하는 경우 캐싱모듈에서 데이터를 검색하는 캐싱데이터 검색단계(S1); 및 상기 캐싱데이터 검색단계에서 요청된 데이터가 검색되는 경우 클라우드 서버로의 데이터 요청 없이 데이터를 사용(S-2-1)하고, 만약 상기 캐싱데이터 검색단계에서 요청된 데이터가 검색되지 않는 경우 클라우드 서버에 상기 클라이언트가 요청한 데이터를 클라우드 백엔드 서비스를 이용하여 요청(S-2-2)하는 것을 특징으로 하는 클라우드 백엔드 서비스기반 시스템의 비용 절감을 위한 클라이언트측 캐싱 시스템을 이용한 클라이언트 캐싱 방법.
- 제2항에 있어서, 상기 S-1 단계에서 캐싱된 데이터가 최신 상태인지 확인하는 데이터 유효성 검사단계가 추가될 수 있는 것을 특징으로 하는 클라우드 백엔드 서비스기반 시스템의 비용 절감을 위한 클라이언트측 캐싱 시스템을 이용한 클라이언트 캐싱 방법.
- 제3항에 있어서, 상기 클라우드 서버에서 상기 클라이언트가 요청한 적이 있는 데이터의 변경이 발생한 경우 상기 클라이언트에 데이터의 변경사항을 알리고, 변경된 데이터를 상기 캐싱모듈에 상기 리스너모듈을 통하여 업데이트하는 것을 특징으로 하는 클라우드 백엔드 서비스기반 시스템의 비용 절감을 위한 클라이언트측 캐싱 시스템을 이용한 클라이언트 캐싱 방법.
Description
클라우드 백엔드 서비스기반 시스템의 비용 절감을 위한 클라이언트측 캐싱시스템 및 이를 이용한 클라이언트 캐싱방법{.} 본 출원 발명은 클라이언트 측 데이터 캐싱 및 암호화 기법을 통해 클라우드 서비스의 효율성과 경제성을 향상시키늘 기술에 관한 것이다. 더욱 자세하게는 클라우드 서버 요청 빈도를 줄여 클라우드 사용을 효율적으로 제어하는 기술에 관한 것이다. 본 발명의 출원 이전의 선행기술로 웹 애플리케이션을 위한 경량 프레임워크가 개시되어 있다. 이 기술은 스크립팅 언어 기반 프레임워크를 사용하여 웹 애플리케이션을 개발하는 기술로 call은 스크립팅 언어 기반 프레임워크의 인터페이스를 통해 수신될 수 있으며, 상기 call은 스크립팅 언어 기반 프레임워크에 포함된 컨트롤을 관리할 수 있고, 상기 call은 스크립팅 언어 기반 프레임워크를 참조하는 애플리케이션에 이용하는 기술이 개시되어 있다. 또 다른 선행기술로 프로그램의 간편 제작방법이 개시되어 있다. 이 기술은 프로그래밍을 할 때 직관적이면서 부하를 줄이는 기술을 제공한다. 사용자환경 디자인만으로 제품의 화면과 로직(Logic)을 짜고 프로그램을 개발함으로써 개발기간을 단축시킬 수 있고 기존보다 개발속도를 향상시킬 수 있도록 한 프로그램의 간편 제작방법에 관한 구성이 개시되어 있다. 도 1은 본 발명의 클라이언트 시스템 아키텍처를 도시하고 있다. 도 2는 본 발명의 클아이언트 시스템의 데이터 일반화 예제를 도시하고 있다. 도 3은 본 발명의 클라이언트의 데이터 요청에 따른 처리 과정을 도시하고 있다. 도 4는 본 발명의 클라이언트에서 데이터를 수정하거나 새로운 데이트를 추가하는 로직을 도시하고 있다. 도 5는 본 출원 발명에서 캐싱한 데이터를 서버에서 불러오지 않고, 다시 사용되는 비율을 설명하는 설명 그래프이다. 본 출원 발명의 작용효과를 도면을 활용하여 설명하면 다음과 같다. 클라우드 컴퓨팅은 그 다양한 장점으로 인해 각종 백엔드 활용 시스템 개발에서 널리 사용되고 있다. 이러한 클라우드 시스템의 사용 증가는 시스템 부하의 급격한 증가와 비용 상승을 초래하게 된다. 클라우드 데이터베이스 컴퓨팅 요금제는 보통 요청, 데이터 저장, 데이터 전송 등의 활동에 따라 요금을 매긴다. 이로 인해 잦은 서버 요청은 네트워크 접속 속도 저하와 함께 비용 증가를 초래할 수 있다. 특히, 구조적으로 잘못 설계된 시스템이나 각종 실수로 인해 비정상적으로 많은 서버 요청이 발생할 수 있으며, 이는 불필요한 비용 과다 청구로 이어질 가능성이 높다. 이를 피하기 위해 기존의 최적화 방법으로는 매 코드마다 필요한 데이터를 1회만 서버에서 가져와 클라이언트 측 변수에 저장하고 해당 값을 사용하는 방법을 사용한다. 그러나 이러한 방법은 코드 작성의 난이도를 증가시키고, 개발자들의 작업 효율성을 저하시키며, 결과적으로 인건비 증가로 이어질 수 있다. 또한, 임시 값을 메모리 내의 암호화되지 않은 변수에 저장하는 것은 보안에 취약할 수 있다. 또한, 대부분의 모바일 게임과 같은 특정 애플리케이션의 경우, 대규모 다중 사용자 온라인 롤플레잉 게임(MMORPG)가 아닌 이상, 실시간 데이터 처리보다는 단순한 데이터 저장용 DB 서버를 요구하는 경우가 많다. 이러한 애플리케이션에서 클라이언트는 실시간으로 게임 데이터를 서버와 주고받지 않더라도, 게임 진행 상황이나 사용자 설정, 각종 재화 및 로그 등을 저장하기 위해 데이터 저장 및 읽기 요청을 빈번하게 하게 된다. 이 역시도 클라우드 서버의 부하를 증가시키고, 결과적으로 운영 비용을 높이는 원인이 된다. 예로써 "모여라 친구들"은 이러한 특징을 갖춘 모바일 기반 전략 디펜스 게임이다. 이 게임에서는 플레이어가 다양한 캐릭터를 수집하고 조합하여 적의 공격을 막아내는 것이 주요 목표이다. 게임 내에서 사용자는 자신의 캐릭터 상태, 인벤토리, 게임 설정 등을 클라우드 서버에 저장하고 필요할 때마다 불러와야 한다. 이러한 과정에서 발생하는 빈번한 서버 요청은 서버의 부하를 증가시키며, 운영비용을 높이는 요인이 되어왔다. 본 출원 발명에서는 도 1에 도시된 클라이언트 시스템 아키텍처를 도입하여 클라이언트 측 데이터 캐싱 및 암호화 기법을 통해 클라우드 서비스의 효율성과 경제성을 향상시키는 시스템을 제안하고 실험 및 상용화 이후 데이터를 확인 및 검증하였다. 제안된 시스템은 서버 요청 빈도를 줄이고 클라우드 운영 비용을 절감하며 사용자 경험을 개선할 수 있다. 또한 해당 시스템을 통하여, 개발자들이 신경 써야할 부분을 최소화하며, 이를 통해 클라우드 컴퓨팅 환경에서 데이터 관리 및 보안 문제를 해결하였다. 도 1은 본 발명의 클라이언트 시스템 아키텍처를 도시하고 있다. 본 출원 발명에서는 "모여라 친구들" 게임을 위해 클라이언트 측 데이터 캐싱 시스템을 설계하고 구현하였다. "모여라 친구들"은 모바일 기반의 전략 디펜스 게임으로, 플레이어가 다양한 캐릭터를 수집하고 배치하여 적의 공격을 방어하는 것을 주요 목표로 한다. 이 게임은 Google Firestore를 기반으로 서버, 랭킹, 데이터 저장, 분석, 로깅 기능을 관리한다. 구체적으로, Firestore는 플레이어의 게임 진행 상황, 랭킹 정보, 사용자 설정, 게임 내 재화 및 각종 로그를 저장하고 관리한다. 이러한 데이터는 게임 플레이 중 자주 요청되며, 클라우드 서버와의 빈번한 통신이 필요하다. 본 출원 발명에서는 도1과 같이 구현된 클라이언트 측 데이터 캐싱 시스템을 사용하여 상기한 빈번한 클라우드 서버로의 데이터 요청을 줄이고, 데이터 처리 속도를 높였다. 도 1에 도시된 구성을 설명하면 다음과 같다. *Caching Module: 클라이언트 측에서 데이터 요청 시, 먼저 캐시 메모리를 확인하여 데이터가 존재하는지 검사한다. 해당 메모리의 구조는, 특정 Key로 관리되며 이와 대응되는 Value를 반환하는 Hash자료구조를 사용한다. 데이터가 존재할 경우, 서버 요청 없이 캐시 메모리에서 데이터를 불러온다. 캐시 메모리는 자주 사용되는 데이터를 저장하며, 이를 통해 서버 요청 빈도를 줄인다. *encrypt Module: 캐싱된 데이터를 AES256 알고리즘을 이용하여 암호화한다. 이를 통해 데이터의 보안성을 높이고, 데이터가 유출되거나 변조될 위험을 최소화한다. 데이터가 필요할 경우, 암호화된 데이터를 복호화하여 사용한다. *Listener Module: 클라이언트에 캐싱된 데이터가 존재하는 동시에 서버 측에서 데이터 변경이 일어나는 경우 원하는 데이터가 반환되지 않을 가능성을 줄이기 위해, 서버에서 데이터가 변경되었을 때 캐시에 신규 데이터를 입력해주는 모듈을 추가하였다. *Json Module: Firebase 등 일부 클라우드 서비스는 일반적으로 Int, String, double과 같은 기본 자료형이 아닌, 자체적으로 개발된 자료형 타입을 지원하지 않는 문제가 있다[10]. 이를 해결하기 Json Module을 추가하여, 지원되지 않는 자료형을 JSON 형식 문자열로로 변환하고 저장하며, 불러오기 시 그림2와 같이 일반화 프로그래밍을 이용해 일반적이지 않은 자료형도 저장하거나 가져올 수 있다. 도 2는 본 발명의 클아이언트 시스템의 데이터 일반화 예제를 도시하고 있다. 도1의 구성으로 데이터를 일반화하는 코드를 예시하고 있다. 도 3은 본 발명의 클라이언트의 데이터 요청에 따른 처리 과정(DATA Get)을 도시하고 있다. 또한, 도 4는 본 발명의 클라이언트에서 데이터를 수정하거나 새로운 데이트를 추가하는 로직(DATA Set)을 도시하고 있다. *데이터 Get(DATA Get): 클라이언트가 데이터를 요청할 때의 로직은 그림 3과 같다. 먼저 캐시 메모리를 확인한 뒤, 캐시 메모리에 데이터가 존재하면, 서버 요청 없이 캐시 메모리에서 데이터를 불러온다. 데이터가 없거나 최신 데이터를 필요로 하는 게임 랭킹 요청과 같은 경우, 서버에 데이터를 요청한다. *데이터 캐싱(DATA Cashing): 서버에서 데이터를 받아오면, 이를 클라이언트 캐시 메모리에 저장한다. 저장된 데이터는 AES256 알고리즘을 이용하여 암호화된다. 암호화된 데이터는 클라이언트 장치에 안전하게 저장된다. *데이터 Set(DATA set): 클라이언트에서 데이터를 수정하거나 새 데이터를 추가할 때의 로직은 그림 4와 같다. 해당 데이터는 AES256 알고리즘을 이용하여 암호화된 후, 서버에 전송된다. 서버는 데이터를 수신하여 저장하고, 데이터가 갱신되었음을 클라이언트에게 알린다. 클라이언트는 갱신된 데이터를 암호화 시킨 뒤, 캐시 메모리에 저장한다. 본 출원 발명의 또 다른 특징으로 캐싱된 데이터의 암호와 및 보안이다. 클라이언트의 암호화 모듈은 AES256 알고리즘을 사용하여 데이터를 암호화하고 복호화한다. 암호화된 데이터는 클라이언트 캐시 메모리에 저장된다. 클라이언트가 데이터 조회나 업데이트를 요청할 때, 해당 데이터는 복호화되어 원본 형태로 제공된다. 본 출원 발명의 상기와 같은 발명의 구성에 의하여 클라이언트와 서버 간의 데이터 요청이 최소화된다. 이는 데이터의 유효성을 검사단계와, 클라우드 서버에서 데이터 변경이 발생할 때 클라이언트에게 알림을 주는 리스너모듈에 의하여 이루어진다. 이를 통해 클라우드 서버 요청을 줄이고, 전체 시스템의 효율성을 높인다. *데이터 유효성 검사: 클라이언트가 데이터를 요청할 때, 데이터가 최신 상태인지 확인한다. 데이터가 최신 상태일 경우, 캐싱된 데이터를 사용하고, 그렇지 않을 경우 서버에 최신 데이터를 요청한다. *데이터 변경 알림: 서버에서 데이터가 변경될 경우, 클라이언트에게 변경 사항을 알리고, 클라이언트는 변경된 데이터를 캐시에 반영한다. 이를 통해 데이터 일관성을 유지하고, 최신 데이터를 제공할 수 있다. 본 출원 발명의 상기와 같은 발명의 구성에 의한 실험결과를 설명하면 다음과 같다. 실험 환경 실험은 표 1와 같은 환경에서 수행되었다. 본 출원 발명에서는 클라이언트 측 캐싱 시스템을 적용하여 게임[9] 데이터의 저장 및 요청 과정을 최적화하고, 이에 따른 서버 요청 빈도, 응답 시간, 보안성 등을 평가하였다. *서버 요청 빈도: 캐싱을 적용한 경우와 적용하지 않은 경우의 서버 요청 수를 비교하였다. 서버 요청 빈도 감소에