험프리 11월 15일, 2021에 포스트됨 공유하기 11월 15일, 2021에 포스트됨 RAD 서버를 처음 접하는 엔지니어는 여기에서부터 시작하기 바랍니다. 목차 RAD 서버란 무엇인가? RAD 서버의 구성요소는 무엇인가? RAD 서버 엔진 RAD 서버 관리 포털 애플리케이션 서비스 RAD 서버 구축 단계 개발 단계 테스트 단계 배포 단계 참고자료 기술문서 RAD 서버 활용사례/샘플/데모 RAD 서버란 무엇인가? 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 Server External Credentials Support(영문) RAD 서버 관리 포털 RAD 서버는 RAD 서버 엔진이 수집한 각종 데이터를 모니터링하고, 분석할 수 있는 통계 정보를 제공하는 RAD 서버 콘솔과 RAD 서버 관리 콘솔을 제공한다. RAD 서버 콘솔 RAD 서버 콘솔은 RAD 서버 엔진이 수집한 데이터를 모니터링하고, 통계데이터를 확인할 수 있는 웹 애플리케이션 서비스이다. 다음 기능을 제공한다. 사용자, 그룹, 설치, 엣지모듈, 등록된 리소스 등의 데이터 조회 사용자 및 API 호출 통계 제공 기간별 사용자 수 통계 기간별 전체 API 호출통계 기간별 리소스 별 API 호출 통계 사용자 별 API 호출 통계 RAD 서버 콘솔은 별도의 콘솔 서버 실행 후 접속할 수 있다.(RAD 서버 엔진과 별도) 다음 글에서 윈도우와 리눅스 환경에 콘솔 서버를 설치/설정하고 실행하는 내용을 확인할 수 있다. Setting Up Your RAD Server Console(영문) 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 데이터를 로컬에 저장, 필터링 및 계산 후 중요한 데이터만 중앙 저장소로 동기화 할수 있다. 자세히 보기 : ThingPoint Overview(영문) 실내외 위치/근접 서비스 비콘펜스 컴포넌트를 이용해, 실내외에서 사용자의 이동을 추적하고, 특정 구역(Beacon zone)에 입장/퇴장 또는 지정된 지역(Beacon point)에 접근 시 이벤트를 추적할 수 있습니다. 비콘펜스 컴포넌트 다운로드는 겟잇 패키지 매니저(Tools > GetIt Package Manager > Internet of Things)에서 다운로드 받을 수 있다. RAD 서버 구축 단계 개발 단계 REST API 구축 RAD 서버의 REST API 구축에 필요한 개발자료를 절차 별로 제공한다. RAD 서버 패키지 개발환경 설정 REST API 개발하기 위한 개발환경 설정하고, RAD 서버 패키지 프로젝트 만들고, 실행하며 개발환경을 확인한다. RAD 서버 패키지 구조와 리소스/엔드포인트 개발 규칙 안내 RAD 서버 패키지 구조와 리소스/엔드포인트 개발 규칙을 이해할 수 있다. RAD 서버의 REST API에 비지니스 로직 구현하기 HTTP 요청 시 실행되는 엔드포인트 메소드에 요청과 응답 객체를 직접 다루는 비지니스로직을 구현한다. 샘플 데이터를 이용해 실제 데이터로 REST API를 구현하는 실습을 진행한다. 데이터셋 데이터를 REST API로 바로 서비스할 수 있는TEMSDataSetResource 컴포넌트 안내 데이터셋의 데이터를 JSON 데이터로 변환하는 기능이 내장된 TEMSDataSetResource 컴포넌트 사용법을 알아본다. 페이징, 데이터 정렬 등의 부가기능을 덤으로 활용할 수 있다. RAD 서버 REST API의 문서와 API 테스트 제공하기(Swagger/YAML 기반) RAD 서버의 REST API를 YAML로 제공하고 Swagger UI에서 불러와 문서화하고 API를 테스트할 수 있다. REST API 개발 활용 [온라인 세미나-What's NEW! RAD스튜디오11] 세션 2-1. 데이터 서비스를 HTTP 기반의 REST 표준 API로 서비스 하기 (RAD 서버 활용) 샘플로 제공되는 데이터베이스 데이터를 REST API로 서비스하는 과정을 실습을 통해 익힐 수 있다. 테스트 단계 별도의 웹서버 설치 없이 개발용 RAD 서버로 로컬 환경에서 테스트 가능하다. 개발용 RAD 서버는 실행은 물론, RAD 서버 패키지 디버깅도 지원한다. REST API를 테스트 하고, 바로 개발에 활용할 수 있는 REST 디버거 지원 배포 단계 [윈도우 서버] RAD 서버를 윈도우 서버 2019 IIS 10 환경에 설치하기 [리눅스 서버] How-To: Deploy The Production Version Of RAD Server To Linux(영문) RSLite(배포/설치가 간소화된 RAD 서버) 배포하기 RAD Server Docker Deployment(영문) 참고자료 기술문서 [docwiki] RAD Server(EMS) - RAD 서버 기술문서(영문) RAD 서버 공식 기술자료 페이지 RAD 서버 완벽 가이드 - 200페이지 분량의 전자책 데이비드 아이가 정리한 "The Complete Guide to RAD Server" 전자책을 다운로드 받을 수 있다. 20년된 델파이앱을 현대식 마이크로서비스 아키텍처로 전환하기 실제 브라질 운송회사에서 20년된 델파이 프로그램을 현대식 마이크로서비스 아키텍처로 전환한 사례를 참고할 수 있다. 실제 서비스에서 계층을 구분하고, 각 계층의 역할과 서비스의 구성, 서비스의 역할들을 참고할 수 있다. (요청을 분산하는 로드발랜서와 보안 프로토콜, 모니터링의 구성, 개발 및 데브옵스 환경등 참고할 사항들이 매우 많다.) RAD 서버 활용사례/샘플/데모 RAD 서버 활용 사례 [엠바카데로] Success Storeis 카테고리에서 "RAD Server" 선택 해 확인 [영상] 유투브의 RAD Server 영상 활용사례 및 기술활용 영상 확인 가능 [영상] CodeInsightTV - Foresiight and RAD Server 기존의 대규모 델파이 클라이언트/서버 애플리케이션을 클라우드, 웹 그리고 RAD 서버를 사용해 모바일로 확장한 사례를 설명한다. RAD 스튜디오의 RAD 서버 샘플 RAD 스듀디오에 설치된 RAD 서버 샘플들을 참고할 수 있다. APIDocAttributes Sample - 문서화용 API 제공방법을 확인할 수 있다.(REST API의 문서화 및 테스트를 제공하는 Swagger UI와 연동 가능) CustomLogin Sample - 사용자 가입 및 로그인 리소스를 사용자 정의 리소스로 재정의 하는 과정을 확인할 수 있다. FireDACResource Sample - FireDAC 데이터셋 데이터를 일괄제공(Stream -> JSON)하는 서버/클라이언트 기능을 확인할 수 있다. NotesResource Sample - 노트(메모) 기능이 구현된 서버/클라이언트 샘플에서 인증, 예외처리, API 문서화 등의 구현 방법을 확인할 수 있다. Sample RAD Server Multi-Tenant Application - 소매점 샘플을 통해 멀티-태넌트 기반 로그인 및 데이터 조회 구현 방법을 확인할 수 있다. ThingPoint ThingConnect IoT Sample - ThingConnect 장치에서 생성된 데이터를 수집 후 RAD 서버를 이용 중앙 저장소에 저장하는 방안을 확인할 수 있다. RAD 서버 솔루션 RAD서버 솔루션 시리즈: 필드 서비스 애플리케이션 RAD서버 솔루션: [Healthcare] Nurses Station(영문) RAD서버 솔루션: Hospitality Survey Sample Application(영문) 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
Recommended Posts
이 토의에 참여하세요
지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.