Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

Recommended Posts

RAD 서버를 처음 접하는 엔지니어는 여기에서부터 시작하기 바랍니다.

목차


RAD 서버란 무엇인가?

c98069d187ace640cd94c5f921f82bf3.png

RAD 서버

  • 서비스 기반 애플리케이션 구축과 배포를 신속하게 할 수 있는 턴키 방식 백-엔드 솔루션
  • 델파이/C++에 가장 적합한 미들웨어 플랫폼
  • REST 방식으로, JSON (또는 XML)를 주고 받는 API 서비스 지원
  • 개방형, 무상태(Stateless), 보안과 확장이 뛰어난 최신 서비스 기반 아키텍처 플랫폼
    • 기존의 델파이/C++ 클라이언트/서버 안에 있는 비지니스 로직을 마이그레이션하기에 적합
    • 신규로 REST API 서비스 또는 미들웨어를 구축할 때에도 신속하게 완성

RAD 서버의 주요 기능

  • 델파이/C++빌더에서 연결 가능한 모든 서버, 애플리케이션, 서비스를 통합한 미들웨어 구현
  • 대부분의 클라이언트에서 접속할 수 있는 표준 REST API 서비스 개발과 배포
  • RAD 서버 관리 포털로 API와 사용자를 관리하고, 활용도와 API 활동 분석
  • 사용자 및 사용자 그룹 관리, 푸시 알림, 사용자 위치 추적, 내장 데이터 스토리지와 같은 핵심 기능 포함
  • 사용자 및 사용자 그룹에 API 접근 제어
  • RAD 서버를 자체 관리(온프라미스) 서버 또는 클라우드(Amazon, Rackspace, Azure)에 배포

RAD 서버에 대한 자세한 소개 : https://devgear.co.kr/archives/products/rad-server

참고: RAD 서버는 구. EMS(Enterprise Mobility Service)가 강화된 것이다. 따라서 일부 파일이름, 컴포넌트 이름, 기술자료에서 EMS라는 용어를 만나면, RAD 서버를 의미한다고 이해해도 무방하다.

RAD 서버의 구성요소는 무엇인가?

RAD 서버는 다음 세가지 분류의 구성요소를 제공한다.

  • RAD 서버 엔진 - REST 기반으로 서비스할 수 있는 엔진을 제공하고, 패키지를 추가설치해 API를 추가 제공할 수 있다.
  • RAD 서버 관리 포털 - 운영 데이터 모니터링 및 API 호출 통계등을 확인할 수 있는 관리 포털을 제공한다.
  • 애플리케이션 서비스 - 푸시 알림, IoT 장비 엑세스 포인트, 실내외 위치기반 서비스 등의 서비스를 추가 제공한다.

RAD 서버 엔진

RAD 서버 엔진의 주요 기능은 다음과 같다.

  • 백엔드 서비스에 필요한 사용자/그룹 등의 리소스가 내장 리소스로 제공하고,
  • 필요한 리소스를 추가할 수 있도록 RAD 서버 패키지 개발을 지원한다.
  • HTTP 요청 시 리소스와 엔드포인트 접근을 인가/거부할 수 있는 RAD 서버 엔진 인증을 지원한다.

내장 리소스(API)

RAD 서버는 표준 REST API로 서비스할 수 있는 RAD 서버 엔진이 기본 제공된다. RAD 서버 엔진은 바로 실행할 수 있는 완성형 실행파일(또는 모듈)이며, 백엔드 서비스 구축에 필요한 다음 리소스들이 내장되어 있다.

  • 사용자 관리(로그인, 회원가입 포함)
  • 사용자 그룹 관리
  • 푸시 알림 전송
  • 설치정보(푸시 알림을 받기 위한 장치) 관리
  • 엣지 모듈(IoT 데이터 엑세스 포인트) 관리
  • 버전(RAD 서버 버전 조회)
  • API 문서(YAML, JSON 형식) 제공

위 리소스들을 활용하는 경우, RAD 서버 관리 포털을 통해 데이터 관리, 모니터링, 통계 등의 부가기능을 활용할 수 있다.

RAD 서버 리소스 확장

RAD 서버 엔진은 개발자의 비지니스 로직이 포함된 사용자 정의 리소스를 추가할 수 있다.(일명 새로운 API를 추가 제공할 수 있다.)

사용자 정의 리소스 추가는, 개발자가 RAD 서버 패키지 개발 후 패키지 파일을 RAD 서버에 등록 하면 된다.(매우 간편하다.)

RAD 서버 패키지는 다음 특징을 갖는다.

  • RAD 서버 패키지는 델파이 또는 C++빌더에서 RAD 서버 패키지 프로젝트를 생성 후 개발할 수 있다.
  • RAD 서버 엔진에 리소스와 엔드포인트 추가가 목적이며, 개발에 필요한 라이브러리, 클래스, 컴포넌트가 제공된다.
  • RAD 서버 엔진은 구동 시 RAD 서버 패키지를 로드하고, HTTP 요청 시 리소스가 포함된 패키지의 코드를 실행한다.
  • RAD 서버 패키지는 리소스의 엔드포인트 별로 원하는 비지니스 로직을 구현할 수 있다.
  • 델파이와 C++ 개발자들은 기존 소스코드를 재사용해 기존과 동일한 방식으로 개발 및 디버깅할 수 있다.(개발용 RAD 서버 제공)
  • RDBMS의 데이터 또는 외부 서비스와 연동한 데이터를 표준 REST API로 서비스할 수 있다.(FireDAC 등 엑세스 컴포넌트 또는 써드파티 컴포넌트 이용 가능)
  • 개발이 완료된 RAD 서버 패키지는 운영 환경의 RAD 서버로 패키지만 복사(및 등록)하면 되므로, 배포가 매우 용이하다.

RAD 서버 패키지를 개발하는 과정은 "RAD 서버를 어떻게 사용할 수 있는가?" 파트에서 자세히 다룬다.

RAD 서버 엔진 인증

RAD 서버 엔진은 HTTP 요청 시 리스스와 엔드포인트 접근을 인가하거나 거부할 수 있는 RAD 서버 엔진 인증을 다음 3가지 제공한다.

  • 사용자 인증 : 리소스 및 엔드포인트 별로 사용자 또는 그룹에 대해 접근을 승인(내장 사용자/그룹 리소스로 사용자 인증을 구현한 경우 사용 가능)
  • AppSecret 키 인증 : RAD 서버에 설정된 AppSecret을 요청 해더에 포함한 요청만 접근 승인, 모든 엔드포인트 대상
  • MasterSecret 키 인증 : RAD 서버에 설정된 MasterSecret을 포함한 요청의 경우 모든 리소스에 접근 가능.(위의 2가지 규칙 무시됨. 관리작업에 적합)

자세히 보기 RAD Server Engine Authorization(영문)

만약, 사용자 인증을 사용자정의 해야 한다면, 다음 글을 참고해 login, signup 엔드포인트를 재정의하는 방법을 참고할 수 있다.

RAD 서버 관리 포털

RAD 서버는 RAD 서버 엔진이 수집한 각종 데이터를 모니터링하고, 분석할 수 있는 통계 정보를 제공하는 RAD 서버 콘솔과 RAD 서버 관리 콘솔을 제공한다.

RAD 서버 콘솔

image.png

RAD 서버 콘솔은 RAD 서버 엔진이 수집한 데이터를 모니터링하고, 통계데이터를 확인할 수 있는 웹 애플리케이션 서비스이다. 다음 기능을 제공한다.

  • 사용자, 그룹, 설치, 엣지모듈, 등록된 리소스 등의 데이터 조회
  • 사용자 및 API 호출 통계 제공
    • 기간별 사용자 수 통계
    • 기간별 전체 API 호출통계
    • 기간별 리소스 별 API 호출 통계
    • 사용자 별 API 호출 통계

RAD 서버 콘솔은 별도의 콘솔 서버 실행 후 접속할 수 있다.(RAD 서버 엔진과 별도)
다음 글에서 윈도우와 리눅스 환경에 콘솔 서버를 설치/설정하고 실행하는 내용을 확인할 수 있다.

RAD 서버 관리 콘솔

RAD 서버 관리 콘솔은 RAD 서버의 데이터를 관리(읽고/쓰기)하고, 등록된 장치에 푸시알림을 전송하고, REST API 테스트 등의 매우 유용한 기능들을 제공한다.

  • RAD 서버 사용자 및 사용자 그룹 관리
  • 모듈 데이터 및 모듈 리소스 데이터 관리
  • 등록된 장치 관리 및 등록된 장치에 푸시 알림 전송
  • 통합 REST 디버거 관리(다양한 매개변수 및 HTTP 메소드 호출 및 JSON 응답 확인)

참고로, RAD 서버 관리 콘솔은 RAD 스튜디오와 함께 제공되는 샘플 애플리케이션이다.(소스코드 포함, 필요 시 수정해 사용 가능하다.)
RAD 서버 관리 콘솔은 RAD 서버 엔진의 내장 리소스를 이용해 기능이 구현되어 있다.

RAD 스튜디오 설치 시 다음 경로에서 소스코드를 참조할 수 있다.

  • {RAD 스튜디오 설치경로}\source\data\ems\rsconsole
    (예> 11.0 알렉산드리아 기본 경로 설치 기준 - C:\Program Files (x86)\Embarcadero\Studio\22.0\source\data\ems\rsconsole)

자세히 보기 : RAD Server Management Console Application(영문)

 

애플리케이션 서비스

RAD 서버는 백엔드 서비스에 필요한 다양한 서비스를 추가 제공한다. 필요한 서비스를 선택해 사용할 수 있다.

푸시 알림

RAD 서버에 등록된 모바일 장치에 푸시 알림 메시지를 전송하는 기능을 제공한다.

자세히 보기 RAD Server Push Notifications(영문)

ThingPoint

ThingPoint는 RAD 서버와 IoT 장비 사이의 엑세스 포인트로, 방대한 양의 IoT 데이터를 로컬에 저장, 필터링 및 계산 후 중요한 데이터만 중앙 저장소로 동기화 할수 있다.

500px-RSThingPoints.png

자세히 보기 ThingPoint Overview(영문)

실내외 위치/근접 서비스

비콘펜스 컴포넌트를 이용해, 실내외에서 사용자의 이동을 추적하고, 특정 구역(Beacon zone)에 입장/퇴장 또는 지정된 지역(Beacon point)에 접근 시 이벤트를 추적할 수 있습니다.

비콘펜스 컴포넌트 다운로드는 겟잇 패키지 매니저(Tools > GetIt Package Manager > Internet of Things)에서 다운로드 받을 수 있다.

 

RAD 서버 구축 단계

image.png

개발 단계

REST API 구축

RAD 서버의 REST API 구축에 필요한 개발자료를 절차 별로 제공한다.

REST API 개발 활용

테스트 단계

  • 별도의 웹서버 설치 없이 개발용 RAD 서버로 로컬 환경에서 테스트 가능하다.
  • 개발용 RAD 서버는 실행은 물론, RAD 서버 패키지 디버깅도 지원한다.
  • REST API를 테스트 하고, 바로 개발에 활용할 수 있는 REST 디버거 지원

배포 단계

 

참고자료

기술문서

RAD 서버 활용사례/샘플/데모

RAD 서버 활용 사례

RAD 스튜디오의 RAD 서버 샘플

RAD 스듀디오에 설치된 RAD 서버 샘플들을 참고할 수 있다.

RAD 서버 솔루션

이 댓글 링크
다른 사이트에 공유하기

  • 험프리 changed the title to RAD 서버 시작하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

 공유하기

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.