rad스튜디오 100% 활용하기

Post on 22-Jan-2018

252 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

RAD스튜디오 100% 활용하기 : 최신 기술 적용과 개발의 확장

발표자

• 김현수(Humphrey Kim)

• RAD 스튜디오 에반젤리스트

• 엠바카데로 RAD 스튜디오 MVP

• 이메일 : hskim@embarcadero.kr

• 테크게시판 : http://tech.devgear.co.kr/

• 블로그 : http://blog.hjf.pe.kr/

발표내용

•최신 기술 적용 - 운영체제와 기술

• 윈도우10

• 리눅스 지원

• 사물인터넷

•개발 영역 확장 - 프레임워크와 아키텍처

• 멀티-디바이스 앱 개발

• 마이크로 서비스 아키텍처

• 엔터프라이즈 커넥터

RAD 스튜디오는?

RAD 스튜디오는?

•가장 빠르게 크로스-플랫폼 네이티브 앱을 개발하는 방법

•유연한 클라우드 서비스와 다양한 IoT 연결 제공

PLATFORM

INDEPENDENT CLOUD READY

CROSS

PLATFORM NATIVE

RAD 스튜디오 플랫폼 지원

•최신버전의 메이저 운영체제를 하나의 코드베이스로!

•공식 지원 • Windows 10(Creators Update & Anniversary Update)

• macOS Sierra

• iOS 11(RAD Studio 10.2.1 패치에서 반영)

• Android N (Nougat)

• Linux 64-bit (우분투와 레드햇 엔터프라이즈)

http://docwiki.embarcadero.com/PlatformStatus/en/Main_Page

빠르고, 시각적인 개발

• RAD 스튜디오는 윈도우 10을 위한 강력한 VCL 컨트롤과 윈도우, 맥, iOS, 안드로이드를 개발할 수 있는 FMX를 제공

클라우드 서비스

AWS, Azure 지원 • 스토리지, 테이블, 쿼리 엑세스

BaaS 프로바이더 • Parse, Kinvey 포함

REST 그리고 HTTP 클라이언트 라이브러리 • 플랫폼 라이브러리 기반으로 구현, 네이티브 HTTPS 지원

NoSQL 데이터베이스 컴포넌트 • MongoDB 완벽 지원

RAD 서버 • 사내 클라우드 서비스(BaaS)

광범위한 사물인터넷 연결

사물인터넷(IoT) 기능으로 데스크탑과 모바일 앱 확장

•블루투스, 블루투스 LE, 그리고 WiFi

•바로 사용할 수 있는 IoT 컴포넌트

•비콘, 비콘펜스

• ThingPoints를 사용한 분산 장치 모니터링

최신 기술 적용 - 운영체제와 기술

윈도우 개발자들의 관점

윈도우 중심으로 멀티-플랫폼 확장

모바일 애플리케이션을 개발할 경우, 여전히 기존 윈도우 애플리케이션을 지속적으로 개발하고 지원해야 하나요?

1%

4%

95%

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%

No, we will cease development and support of Windows applications

We will provide support only, no new features

Yes, we will continue all development and support for the foreseeable future

여러분의 사용자에게 가장 중요한 모바일 플랫폼은 무엇입니까? (복수 선택)

4%

14%

17%

33%

67%

83%

0% 10% 20% 30% 40% 50% 60% 70% 80% 90%

Other

BlackBerry

Windows RT

Windows Phone

Apple iOS

Android

• 윈도우 개발자 모바일 확장 필요

• 안드로이드와 iOS 중심

• 응답자 중 99%는 윈도우 개발이 지속되해야 함

윈도우 개발자들 : A Market View

사물인터넷(IoT)이 미치는 영향

• 사물인터넷(IoT)이 비즈니스 앱에

연결되는 해

• 사물인터넷에 연결된 앱들이 많은

서비스에도 연결

• 사물인터넷이 비즈니스에 영향

어떤 유형의 시스템들이 사물인터넷(Thing) 솔루션의 한 영역을 차지하여 연결될까요?

2%

23%

26%

36%

49%

61%

69%

78%

0% 10% 20% 30% 40% 50% 60% 70% 80% 90%

Other

Other IoT device

Middleware

Enterprise …

Cloud services

Database

Desktop applications

Mobile apps

윈도우 10

왜 Windows 10인가?

윈도우 중 가장빠른 채택률 • 2억 7천만의 윈도우 10 장치(2016년 3월 30일 기준)

• 기업의 채택 증가

VCL은 윈도우 10으로의 최고의 마이그레이션 경로 제공

36

마이그레이션 센터 : http://www.devgear.co.kr/rad-in-action/migration-upgrade-center/

RAD 스튜디오 윈도우 10 지원

원도우 플랫폼에 대한 탁월한 지원 • VCL은 네이티브 윈도우 용, 가장 완벽하고, 우수한 컴포넌트 라이브러리

• Win32, Win64 그리고 WinRT API를 통합

Windows 10 전용 컴포넌트 • 윈도우 10 UI 컨트롤

• 윈도우 10 알림과 계약 컴포넌트

• 윈도우 10 스타일

37

윈도우 10 VCL 컨트롤

•네이티브 VCL 컨트로은 일반적인 윈도우 10 UI 요소 매핑

• WinRT API에 종속되지 않아, 윈도우 7과 윈도우 8에서도 작동

17

윈도우 10 WinRT 기반 컴포넌트

18

•윈도우 10 공지

•윈도우 10 공유/계약

윈도우 10 VCL 스타일

• Windows 10

• Windows 10 Blue

• Windows 10 Dark

• Windows 10 Green

• Windows 10 Purple

• Windows 10 Slate Gray

윈도우 10 파이어몽키 스타일

• Windows 10

• Windows 10 Blue

• Windows 10 Dark

• Windows 10 Green

• Windows 10 Purple

• Windows 10 Slate Gray

윈도우 10 스토어 지원

• 이미 제작한 또는 신규 Win32/64 애플리케이션을 윈도우 10 스토어에서 판매

• 마이크로소프트의 윈도우 10 Anniversary(1주년) 업데이트 일환으로 윈도우 10 스토어 도입

• 데스크탑 브릿지(일명 Centennial Bridge) 기술을 사용해 Win32/Win64 애플리케이션을 Universal Windows Platform 애플리케이션으로 패키지화

• IDE기반 윈도우 스토어 배포 지원

• 윈도우 10 스토어 미리보기 모드로 즉시 열림

• 윈도우 10 스토어를 통해 수백만 잠재 고객에게 애플리케이션 제공 가능

VCL & FMX

윈도우 10 스토어 지원

RAD 스튜디오: 데스크탑 브릿지를 지원하는 첫번째 IDE!

“윈도우 10의 데스크탑 브릿지를 통해 마이크로소프트 윈도우 데스크탑에 구축 된 소프트웨어가 최신 윈도우 애플리케이션 패키지 형식을 사용할 수 있게 해주는 도구를 제공합니다. 이를 통해 보다 깨끗한 설치, 제거 및 업데이트, 윈도우 스토어 및 윈도우 스토어 for 비지니스를 통한 새로운 배포 기회를 얻을 수 있으며 알림과 같은 Universal Windows Platform 기능으로 소프트웨어를 향상시킬 수 있습니다. 개발자는 이제 RAD 스튜디오를 사용해 데스크탑 브릿지를 사용하는 애플리케이션을 직접 구축 할 수 있게되어 매우 기쁩니다. RAD 스튜디오는 데스크탑 브릿지를 지원하는 최초의 개발자 IDE이며, 큰 재작성 없이도 기존 응용 프로그램을 빠르게 마이그레이션 할 수 있습니다.”

Kevin Gallo, 마이크로소프트, 윈도우 개발자 플랫폼 부사장

리눅스 지원

리눅스 지원(10.2 도쿄 부터)

•리눅스 64비트 서버에 집중

•공식 지원 • Ubuntu 16.x LTS

• RedHat Enterprise 7

• 대부분의 배포판에서 작동할 것으로 예상 됨

•서버 사이드 기술만 • RTL, DB RTL, IOUtils 그리고 파일 시스템 접근, FireDAC, HTTP, REST, Cloud,

WebBroker, Apache 통합, DataSnap, EMS/RAD Server, JSON, XML, SOAP, Indy, IoT, 그리고 그 이상

Linux server 지원은 엔터프라이즈와 아키텍처

에디션

델파이 리눅스 컴파일러

• 64-비트 인텔 리눅스 대상

• LLVM 기술 기반 • ARC 사용

•기본으로 ZBS 꺼짐

• SDK 가져오기 위해 리눅스 박스 필요(PAServer 통해) •컴파일을 위한 것은 아님

•배포 및 디버깅을 위해 PAServer 사용

•직접 배포할 수 있으며 파일 사용 권한을 조정해야 할 수 있음

리눅스 RTL 기능

•모든 코어 RTL을 사용 할수 있습니다. • System, Exceptions, Kernel, POSIX Headers, File System,

IOUtils, RTTI, Unicode, Threading and Parallel Library…

• Native HTTP client library (libCurl)

• XML DOM and JSON processing

• DUnitX

리눅스 데이터베이스 엑세스 기능

• FireDAC으로 DBMS 용 리눅스 드라이버 지원

• MySQL (and MariaDB), InterBase, FireBird, Oracle, MS SQL Server

• Sybase ASA, DB2, MongoDB, PostgreSQL, SQLite, Teradata

• Informix만, 제외!

•사용할 수 없는 드라이버: MS Access, DataSnap, DBX

리눅스 인터넷 클라이언트와 서버 지원

• Indy 클라이어트와 서버

•WebBroker + DataSnap + RAD Server modules (EMS) • Apache 2.4 통합 • 독립 실행형(Standalone) 서버

•클라이언트 라이브러리 • HTTP 그리고 REST 클라이언트 라이브러리 • Cloud 그리고 BaaS 클라이언트 • SOAP 클라이언트

리눅스 개발환경 설정하기

RAD 스튜디오 리눅스 개발환경 설정하기 - http://tech.devgear.co.kr/430268

리눅스 기반 웹서비스 제작하기

델파이로 리눅스 기반 웹서비스 제작하기(WebBroker 이용) - http://tech.devgear.co.kr/431630

• 콘솔 기반 WebBroker 프로젝트

• 아파치 모듈 기반 WebBroker 프로젝트

• MySQL 데이터 연결(FireDAC 이용)

사물인터넷

왜 사물인터넷 (IoT) 인가?

• 사물인터넷(IoT)은 우리의 경험을

바꾸어 놓았습니다.

• IoT 기기/웨어러블은 새로운 사용자

경험(UX) 입니다

• 앱은 더이상 혼자있을 수 없습니다.

앱은 디바이스, 기기, 클라우드,

데이터 요소로 분산되어서

존재합니다.

Work

s W

ith

사물인터넷 통신기술

통신기술 블루투스 WiFi

연결 장비 비콘 블루투스 센서/장비 (클래식 블루투스, 블루투스LE)

WiFi 인터페이스 장비 (REST API, TCP/IP, UDP, …)

구조

특징 실내외 위치기반 서비스(LBS) 제공 가능 블루투스 LE 기반

최근 모바일/PC 장비에서 블루투스 지원 기타 장비에는 모듈 추가가능

범용적인 인터넷환경에서 프로토콜 제공

비콘(Beacon)이 하는 일은?

•비콘은 근접성과 식별 정보 제공 • 주기적으로 신호 발생(Broadcast),

신호강도 포함 • 식별 정보 제공 (UUID, Major ID,

Minor ID)

•주요 표준 • iBeacons •AltBeacons •EddyStone

•제품의 위치 찾기

•알맞은 혜택 제시

• (충성도 높은) 고객들을

인식 하기

•영업 팀의 경로 설정

•쇼핑 지도

•매출 증대

•고객 만족과 로열티 향상

소매점 사례 Use Case

비콘 펜스(Beacon Fence)

• Beacon Zone Fencing

• 구역(Zone) 입/퇴장 감지

• 구역별로 설치된 비콘 신호 이용

• Beacon Map Fencing

• 실/내외 길찾기, 지정 구역 입/퇴장

감지

• 지도위에 비콘, 경로, 지역 설정

(BeaconFence Map Editor)

• RAD 서버에 포함된 제품 비콘펜스 소개 및 데모 : http://tech.devgear.co.kr/432221

Beacon Zone Fencing 데모

• 2개 구역 설정 후 구역 진입 시 관련도서 정보 표시

• 구역 및 비콘 추가

• Zone #1, Zone #2 구역 추가

• 구역 별 비콘 2개 추가

• 구역 입장 시 구역 컨트롤 색상 변경

• 비콘 신호 변경 시 비콘 컨트롤 색상 변경

• 구역 입장 시 도서정보 화면 표시(EMS 서버 이용)

• 비콘의 Major, Minor 값으로 서버에서 조회

Beacon Map Fencing 데모

• 실내 길찾기

• 맵에디터를 이용해 지도 이미지 등록

• 맵에디터를 이용해 지도 위에 비콘

추가

(동시 3개의 신호를 받을 수 있도록)

• 맵에디터를 이용해 지도 위에 경로

추가

(길찾기 용도)

• 실제 위치에 비콘 배치

• 경로 노드 선택 후 길찾기 수행

블루투스 지원

• 블루투스와 블루투스 LE 컴포넌트

• 클래식 블루투스

• 블루투스 Low Energy

• 기기대 기기, 기기대 센서 직접연결

• 시중의 사물인터넷 장비와 블루투스 연동

• 산업용 장비와 블루투스 연동

블루투스 AC 컨트롤(아두이노) 제어 모바일 앱 데모

자세히 보기 : https://c2design5sh.blogspot.kr/2015/08/BTAcc.html

앱 테더링(App Tethering)?

• 앱과 앱을 손쉽게 연결하는 기술

• 양측에 컴포넌트 추가로 커뮤니케이션

• 자동탐색(별도 서버 불필요)

• 데이터 전달(문자열, 스트림)

• 비밀번호를 통한 인증

• 원격 명령 호출

앱테더링 따라하기 : http://tech.devgear.co.kr/406984

겟잇: 패키지 매니저

• 복잡한 컴포넌트 설치과정을 단순하고 쉽게 진행

• 약 250여개 이상 지원 • 컴포넌트

• 라이브러리

• 사물인터넷(IoTConnect)

• 엔터프라이즈 커넥터

• 산업 템플릿 / 샘플 프로젝트

• IDE 플러그인

• 스타일

• 트라이얼

메인메뉴 > Tools > Getit Package Manager…

겟잇 디펜던시

• 프로젝트에 컴포넌트 의존성 설정 • 프로젝트 옵션 > Getit

Dependencies

• 새로운 개발환경에서 오픈 시 • 의존된 컴포넌트 다운로드 안내

개발 영역 확장 - 프레임워크와 아키텍처

멀티-디바이스 앱 개발 - 파이어몽키 프레임워크

$

델파이 or C++

단일 팀

단일 코드베이스

RAD 스튜디오로 멀티 플랫폼 지원

파이어몽키 프레임워크

모바일 점유율

안드로이드와 iOS 99.9% 점유

• 안드로이드 86%

• iOS 14%

• 윈도우 모바일 0.1%

2017년 1분기 - 가트너

찬성

네이티브 UX

네이티브 성능

보안

반대

다중의 코드베이스

중복된 여러 팀

개발/운영 비용 상승

찬성

단일 팀

개발 비용 절감

신속한 시장 대응

반대

스크립트 성능 이슈

네이티브가 아닌 UX

보안 취약

앱 개발 툴 선택지

벤더사 개발툴 웹 기술 기반 툴 멀티-디바이스

순수 네이티브

Embarcadero

Apple

Google

Microsoft

단일

디바이스

멀티

디바이스

스크립트, VM 네이티브

HTML5 /

JavaScript

Embarcadero,

XCode

Appcelerator,

HTML5, Sencha,

Kendo, Edge,

PhoneGap, Corona

Xamarin,

Dalvik

Titanium.Geolocation.distanceFilter =

.25;

Ti.Geolocation.purpose = "Callbacks Are

Your Friend”;

// make the API call

Ti.Geolocation.getCurrentPosition(functi

on(e) {

// do this stuff when you have a

position, OR an error

if (e.error) {

Ti.API.error('geo - current

position' + e.error);

return;

}

// got the location information

Ti.App.info('got a location

',JSON.stringify(e));

}); JavaScript

100100110010

011001001100

100110010011

001001100100

110010 ARM Binary

Bytecode IL

JavaScript 런타임인터프리

가상 머신 (VM) 런타임

네이티브 스크립트 가상머신

플랫폼 API로 개발

iOS iOS iOS iOS iOS iOS iOS iOS

Code

Android Android Android Android Android Android Android Android

Windows Windows Windows Windows Windows Windows Windows Windows

Mac Mac Mac Mac Mac Mac Mac Mac

APIs

제공되는 컴포넌트로 개발

iOS iOS iOS iOS iOS iOS iOS

Component Component

iOS

Code

Android Android Android Android Android Android Android Android

Windows Windows Windows Windows Windows Windows Windows Windows

Mac Mac Mac Mac Mac Mac Mac Mac

APIs

필요한 경우 개발자들은 플랫폼 API에 직접 접속하여 사용 가능

파이어몽키에서 외부 라이브러리 연동하기(jar, so, a) : http://tech.devgear.co.kr/410845

하나의 코드, 하나의 팀, 하나의 스케줄

•하나의 코드 하나의 팀 주요 장점

•개발자: 같은 시간에 더 인상적인

결과 제공 – 높은 생산성

•관리자: 앱 개발을 위한 모든작업이

하나

– 복잡성과 비용 감소

•경영진: 빠른 시장 진입 - 기술 주도,

경쟁우위

Application

Development

Framework

Platform

Desktop Mobile

RAD 스튜디오 플랫폼 지원

Console

RTL

Win32/64

RAD 개발 방식

멀티 디바이스 개발 시작하기

http://tech.devgear.co.kr/402210

플랫폼 사전 준비사항 디바이스에서 실행 (공통)

안드로이드

•제조사 USB 드라이버 설치 •USB 디버깅 설정(안드로이드 환경설정)

•USB 케이블 연결 •타겟 플랫폼 선택 (안드로이드, iOS 디바이스 32/64 bit, iOS 시뮬레이터) •빌드(실행), 디버깅

아이폰 •애플 개발자 계정 등록 •맥(OS X)에 인증서 설치 •맥에 PAServer 설치 및 실행

윈도우 •(없음) •타겟 플랫폼 선택 •빌드(실행) 디버깅

OS X •맥에 PAServer 설치 및 실행

모바일 개발 사례

모바일 개발 사례 : http://tech.devgear.co.kr/delphi_news/345279

마이크로 서비스 아키텍처

마이크로서비스 아키텍처

작고 자율적으로 협업하는

서비스

작은 블록 단위로 구축

• 한가지 일을 잘하는데 집중

• 서비스 별 테스팅, 배포 용이

서비스 조합

• 느슨한 결합(높은 디커플링)

• 분산처리 / 장애 허용성

• 서비스 재사용 36

마이크로서비스 아키텍처 예시

REST 서비스(REST API)

HTTP 기반 필요한 자원에 접근하는

방식을 정해 놓은 네트워크 아키텍처

마이크로서비스 아키텍처의 표준

인터페이스

모든 웹서비스와 다수의 하드웨어 API

지원

단순하고 강력하고 높은 확장성

36

REST API 이해하기: http://tech.devgear.co.kr/433404

RAD 서버: REST API 서버 개발

델파이와 C++빌더로 완벽한 백엔드 구현

서비스 기반 애플리케이션 신속한 구축과 배포

일괄 제공

델파이와 C++ REST/JSON API 제공 및 관리 자동화

엔터프라이즈 데이터베이스 통합 미들웨어

데이터 수집을 위한 사물인터넷(IoT) Edgeware

통합된 사용자 관리, 접근 제어, 그리고 API 분석

모바일 푸쉬 알림, 위치, 근접성과 데이터 중앙통제

기능 제공

36

REST API 서버 개발하기(RAD 서버 이용): http://tech.devgear.co.kr/433438

REST 클라이언트 라이브러리

REST 서비스에 손쉽게 연결하고, 사용가능

JSON 파싱(구문분석) 라이브러리

OAuth2를 포함한 인증(Authentication)

JSON 데이터를 데이터셋으로 변환

프로토타입과 테스팅 가능한 강력한 REST

Debugger 제공

압축과 암호화 제공

36

REST API 클라이언트 개발하기: http://tech.devgear.co.kr/433465

엔터프라이즈 커넥터

엔터프라이즈 커넥터

엔터프라이즈 데이터 연동 컴포넌트

FireDAC 드라이버로 제공

겟잇 패키지 매니저로 설치

(트라이얼)

다양한 산업군의 서비스와 바로 연결

• CRM&마켓팅, ERP&협업, NoSQL&BigData, eCommerce

Finance 등등(총 100여개)

36

엔터프라이즈 커넥터: https://www.embarcadero.com/products/enterprise-connectors

엔터프라이즈 커넥터

세일즈포스와 데이터 연동하기

• http://tech.devgear.co.kr/435033

트위터와 데이터 연동하기

• http://tech.devgear.co.kr/434578

구글 드라이브 데이터 연동하기

• http://tech.devgear.co.kr/436673

36

참고사항

마이그레이션 프로세스

마이그레이션 준비 단계

현황분석 위험요소 식별 일정계획 수립

마이그레이션 수행 단계

전환체계 구축 소스코드 전환 통합 테스트

어떻게 시작하나요?

1.시작은? 마이그레이션 체크리스트

‒ 마이그레이션 체크리스트 (2page) : http://tech.devgear.co.kr/1708

‒ 작성 후 데브기어로 전달 (무상으로 검토 의견을 드립니다)

2.개별 방문 컨설팅이 필요하다면?

‒ 컨설팅 회사 또는 고급 컨설턴트를 소개합니다. (유상, 이 경우에서 체크리스트는 미리 작성)

‒ 혹시! 마이그레이션 경험이 풍부하고 컨설팅 서비스를 원하는 분도 연락 바랍니다.

데브기어 : ask@embarcadero.kr 마이그레이션 담당자 앞

요약

• RAD 스튜디오는 가장 빠르게 크로스-플랫폼 네이티브 앱을 개발하는 방법, 유연한 클라우드 서비스와 다양한 IoT 연결제공

•윈도우 10 완벽지원(UI, 컴포넌트, 스타일), 최적의 마이그레이션 경로

•리눅스 지원으로 그동안의 델파이 기술과 노하우로 리눅스 콘솔과 서버 애플리케이션 개발 가능

•한번에 윈도우, OSX, 안드로이드, iOS, 리눅스 용 네이티브 앱 빌드 및 디버깅 제공

•하나의 코드, 하나의 팀으로 높은 생산성과 품질을 한번에 개발해 기술주도와 경쟁우위 확보

•마이크로서비스 아키텍츠 등을 개발할 수 있는 RAD 서버와 REST 기능

참고 링크

• www.devgear.co.kr •제품 상세 정보

• tech.devgear.co.kr •새소식, 기술자료, 개발자 Q&A

• devgear.co.kr/docwiki •최신 온라인 기술문서(한글번역)

•www.devgear.co.kr/edu/ •데브기어 정기교육

마무리, Q&A

감사합니다! Questions and Answers

top related