RAD스튜디오는 항상 최신 OS 짶원을 위해 꾸준히 업데이트 되고 있습니다.
이 자료는 2017년 11월 진행된 온라인 세미나의 발표자료입니다. RAD스튜디오 10.2 버전으로 최신 OS와 기술들을 프로젝트에 적용하고, 개발 영역을 확장하는 방법을 설명합니다.
다루는 내용은 다음과 같습니다:
[최신 기술 적용-운영체제와 기술]
- 윈도우 10, 멀티플랫폼 짶원, 사물인터넷, 겟잇 패키지 매니저
[개발 영역 확장-플랫폼과 아키텍처]
- 파이어몽키 프레임워크, RAD서버, 엔터프라이즈 커넥터
*온라인 세미나 다시보기는 다음 링크를 활용하세요:
https://goo.gl/tJK765
1 of 73
Download to read offline
More Related Content
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
1. 1
RAD스튜디오 100%
활용하기
: 최신 기술 적용과 개발의 확장
RAD 스튜디오 에반젤리스트 김현수
hskim@embarcadero.kr
tech.devgear.co.kr / blog.hjf.pe.kr
2. 발표내용
• 최신 기술 적용 - 운영체제와 기술
• 윈도우10
• 리눅스 짶원
• 사물인터넷
• 겟잇(GetIt) 패키지 매니저
• 개발 영역 확장 - 프레임워크와 아키텍처
• 멀티-디바이스 앱 개발
• 마이크로 서비스 아키텍처
• 엔터프라이즈 커넥터
4. RAD 스튜디오는?
• 가장 빠르게 크로스-플랫폼 네이티브 앱을 개발하는
방법
•유연한 클라우드 서비스와 다양한 IoT 연결 제공
PLATFORM
INDEPENDENT
CLOUD READY
CROSS
PLATFORM
NATIVE
5. 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
6. 빠르고, 시각적인 개발
• RAD 스튜디오는 윈도우 10을 위한 강력한 VCL 컨트롤과
윈도우, 맥, iOS, 안드로이드를 개발할 수 있는 FMX를 제공
7. 클라우드 서비스
AWS, Azure 짶원
• 스토리지, 테이블, 쿼리 엑세스
BaaS 프로바이더
• Parse, Kinvey 포함
REST 그리고 HTTP 클라이언트 라이브러리
• 플랫폼 라이브러리 기반으로 구현, 네이티브 HTTPS 짶원
NoSQL 데이터베이스 컴포넌트
• MongoDB 완벽 짶원
RAD 서버
• 사내 클라우드 서비스(BaaS)
8. 광범위한 사물인터넷 연결
사물인터넷(IoT) 기능으로 데스크탑과 모바일 앱 확장
• 블루투스, 블루투스 LE, 그리고 WiFi
• 바로 사용할 수 있는 IoT 컴포넌트
• 비콘, 비콘펜스
• ThingPoints를 사용한 분산 장치 모니터링
10. 윈도우 개발자들의 관점
윈도우 중심으로 멀티-플랫폼 확장
모바일 애플리케이션을 개발할 경우, 여전히 기존 윈도우
애플리케이션을 지속적으로 개발하고 짶원해야 하나요?
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%는 윈도우 개발이
지속되해야 함
11. 윈도우 개발자들 : 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
13. 왜 Windows 10인가?
윈도우 중 가장빠른 채택률
• 2억 7천만의 윈도우 10 장치(2016년 3월 30일 기준)
• 기업의 채택 증가
VCL은 윈도우 10으로의 최고의 마이그레이션 경로 제공
36
마이그레이션 센터 : http://www.devgear.co.kr/rad-in-action/migration-upgrade-center/
14. 윈도우 8(8.1), 윈도우 7 2016년 10월 판매 중단
Windows 수명 주기 팩트 시트: https://support.microsoft.com/ko-kr/help/13853/windows-lifecycle-fact-sheet#section_2
15. RAD 스튜디오 윈도우 10 짶원
원도우 플랫폼에 대한 탁월한 짶원
• VCL은 네이티브 윈도우 용, 가장 완벽하고, 우수한 컴포넌트
라이브러리
• Win32, Win64 그리고 WinRT API를 통합
Windows 10 전용 컴포넌트
• 윈도우 10 UI 컨트롤
• 윈도우 10 알림과 계약 컴포넌트
• 윈도우 10 스타일
37
16. 윈도우 10 VCL 컨트롤
• 네이티브 VCL 컨트로은 일반적인
윈도우 10 UI 요소 매핑
• WinRT API에 종속되지 않아, 윈도우
7과 윈도우 8에서도 작동
16
18. 윈도우 10 VCL 스타일
• Windows 10
• Windows 10 Blue
• Windows 10 Dark
• Windows 10 Green
• Windows 10 Purple
• Windows 10 Slate Gray
19. 윈도우 10 파이어몽키 스타일
• Windows 10
• Windows 10 Blue
• Windows 10 Dark
• Windows 10 Green
• Windows 10 Purple
• Windows 10 Slate Gray
20. 윈도우 10 스토어 짶원
• 이미 제작한 또는 신규 Win32/64 애플리케이션을 윈도우 10 스토어에서
판매
• 마이크로소프트의 윈도우 10 Anniversary(1주년) 업데이트 일환으로
윈도우 10 스토어 도입
• 데스크탑 브릿지술(일명 Centennial Bridge) 기술을 사용해 Win32/Win64
애플리케이션을 Universal Windows Platform 애플리케이션으로
패키지화
• IDE기반 윈도우 스토어 배포 짶원
• 윈도우 10 스토어 미리보기 모드로 즉시 열림
• 윈도우 10 스토어를 통해 수백만 잠재 고객에게 애플리케이션 제공 가능
VCL & FMX
22. RAD 스튜디오: 데스크탑 브릿지를 짶원하는 첫번째 IDE!
“윈도우 10의 데스크탑 브릿지를 통해 마이크로소프트 윈도우
데스크탑에 구축 된 소프트웨어가 최신 윈도우 애플리케이션 패키지
형식을 사용할 수 있게 해주는 도구를 제공합니다. 이를 통해 보다 깨끗한
설치, 제거 및 업데이트, 윈도우 스토어 및 윈도우 스토어 for 비지니스를
통한 새로운 배포 기회를 얻을 수 있으며 알림과 같은 Universal Windows
Platform 기능으로 소프트웨어를 향상시킬 수 있습니다. 개발자는 이제
RAD 스튜디오를 사용해 데스크탑 브릿지를 사용하는 애플리케이션을
직접 구축 할 수 있게되어 매우 기쁩니다. RAD 스튜디오는 데스크탑
브릿지를 짶원하는 최초의 개발자 IDE이며, 큰 재작성 없이도 기존 응용
프로그램을 빠르게 마이그레이션 할 수 있습니다.”
Kevin Gallo, 마이크로소프트, 윈도우 개발자 플랫폼 부사장
24. 리눅스 짶원(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 짶원은 엔터프라이즈와 아키텍처
에디션
25. 델파이 리눅스 컴파일러
• 64-비트 인텔 리눅스 대상
• LLVM 기술 기반
• ARC 사용
• 기본으로 ZBS 꺼짐
• SDK 가져오기 위해 리눅스 박스 필요(PAServer 통해)
• 컴파일을 위한 것은 아님
• 배포 및 디버깅을 위해 PAServer 사용
• 직접 배포할 수 있으며 파일 사용 권한을 조정해야 할 수 있음
26. 리눅스 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
27. 리눅스 데이터베이스 엑세스 기능
• FireDAC으로 DBMS 용 리눅스 드라이버 짶원
• MySQL (and MariaDB), InterBase, FireBird, Oracle, MS SQL
Server
• Sybase ASA, DB2, MongoDB, PostgreSQL, SQLite, Teradata
• Informix만, 제외!
• 사용할 수 없는 드라이버: MS Access, DataSnap, DBX
28. 리눅스 인터넷 클라이언트와 서버 짶원
• Indy 클라이어트와 서버
•WebBroker + DataSnap + RAD Server modules (EMS)
• Apache 2.4 통합
• 독립 실행형(Standalone) 서버
• 클라이언트 라이브러리
• HTTP 그리고 REST 클라이언트 라이브러리
• Cloud 그리고 BaaS 클라이언트
• SOAP 클라이언트
29. 리눅스 개발환경 설정하기
RAD 스튜디오 리눅스 개발환경 설정하기 - http://tech.devgear.co.kr/430268
30. 리눅스 기반 웹서비스 제작하기
델파이로 리눅스 기반 웹서비스 제작하기(WebBroker 이용) - http://tech.devgear.co.kr/431630
• 콘솔 기반 WebBroker 프로젝트
• 아파치 모듈 기반 WebBroker 프로젝트
• MySQL 데이터 연결(FireDAC 이용)
32. 왜 사물인터넷 (IoT) 인가?
• 사물인터넷(IoT)은 우리의 경험을
바꾸어 놓았습니다.
• IoT 기기/웨어러블은 새로운 사용자
경험(UX) 입니다
• 앱은 더이상 혼자있을 수 없습니다.
앱은 디바이스, 기기, 클라우드,
데이터 요소로 분산되어서
존재합니다.
WorksWith
33. 사물인터넷 통신기술
통신기술 블루투스 WiFi
연결 장비 비콘 블루투스 센서/장비
(클래식 블루투스,
블루투스LE)
WiFi 인터페이스 장비
(REST API, TCP/IP, UDP, …)
구조
특징 실내외 위치기반
서비스(LBS) 제공 가능
블루투스 LE 기반
최근 모바일/PC 장비에서
블루투스 짶원
기타 장비에는 모듈
추가가능
범용적인 인터넷환경에서
프로토콜 제공
34. 비콘(Beacon)이 하는 일은?
•비콘은 근접성과 식별 정보
제공
• 주기적으로 신호 발생(Broadcast),
신호강도 포함
• 식별 정보 제공 (UUID, Major ID,
Minor ID)
•주요 표준
•iBeacons
•AltBeacons
•EddyStone
35. •제품의 위치 찾기
•알맞은 혜택 제시
•(충성도 높은) 고객들을
인식 하기
•영업 팀의 경로 설정
•쇼핑 지도
•매출 증대
•고객 만족과 로열티 향상
소매점 사례 Use Case
36. 비콘 펜스(Beacon Fence)
• Beacon Zone Fencing
• 구역(Zone) 입/퇴장 감지
• 구역별로 설치된 비콘 신호 이용
• Beacon Map Fencing
• 실/내외 길찾기, 지정 구역 입/퇴장
감지
• 지도위에 비콘, 경로, 지역 설정
(BeaconFence Map Editor)
• RAD 서버에 포함된 제품
비콘펜스 소개 및 데모 : http://tech.devgear.co.kr/432221
37. Beacon Zone Fencing 데모
• 2개 구역 설정 후 구역 진입 시 관련도서 정보 표시
• 구역 및 비콘 추가
• Zone #1, Zone #2 구역 추가
• 구역 별 비콘 2개 추가
• 구역 입장 시 구역 컨트롤 색상 변경
• 비콘 신호 변경 시 비콘 컨트롤 색상 변경
• 구역 입장 시 도서정보 화면 표시(EMS 서버 이용)
• 비콘의 Major, Minor 값으로 서버에서 조회
38. Beacon Map Fencing 데모
• 실내 길찾기
• 맵에디터를 이용해 지도 이미지 등록
• 맵에디터를 이용해 지도 위에 비콘
추가
(동시 3개의 신호를 받을 수 있도록)
• 맵에디터를 이용해 지도 위에 경로
추가
(길찾기 용도)
• 실제 위치에 비콘 배치
• 경로 노드 선택 후 길찾기 수행
40. 블루투스 기술 종류
클래식 블루트스 블루투스 LE(Low Energy)
•블루투스 LE 보타 처리량이 뛰어나다.
•데이터 전송속도 2Mbps
•소비전력이 크다.
•표준 블루투스 프로파일(SPP, DUN,
PAN)에 근거한다.
•프로토콜은 최대 7 슬레이브로
제한된다.
•소량의 데이터를 주기적 전송 시 적합
•데이터 전송속도 100Kbps 미만
•소비전력이 매우 적다.
•GATT 프로파일에 근거한다.
•다수의 슬레이브를 짶원한다.
•연결 시간이 짧고 페어링이 필요없다.
41. 블루투스 AC 컨트롤(아두이노) 제어 모바일 앱
데모
자세히 보기 : https://c2design5sh.blogspot.kr/2015/08/BTAcc.html
42. 앱 테더링(App Tethering)?
• 앱과 앱을 손쉽게 연결하는 기술
• 양측에 컴포넌트 추가로 커뮤니케이션
• 자동탐색(별도 서버 불필요)
• 데이터 전달(문자열, 스트림)
• 비밀번호를 통한 인증
• 원격 명령 호출
앱테더링 따라하기 : http://tech.devgear.co.kr/406984
43. 겟잇: 패키지 매니저
• 복잡한 컴포넌트 설치과정을
단순하고 쉽게 진행
• 약 250여개 이상 짶원
• 컴포넌트
• 라이브러리
• 사물인터넷(IoTConnect)
• 엔터프라이즈 커넥터
• 산업 템플릿 / 샘플 프로젝트
• IDE 플러그인
• 스타일
• 트라이얼 메인메뉴 > Tools > Getit Package Manager…
44. 겟잇 디펜던시
• 프로젝트에 컴포넌트 의존성
설정
• 프로젝트 옵션 > Getit
Dependencies
• 새로운 개발환경에서 오픈 시
• 의존된 컴포넌트 다운로드 안내
49. 찬성
네이티브 UX
네이티브 성능
보안
반대
다중의 코드베이스
중복된 여러 팀
개발/운영 비용 상승
찬성
단일 팀
개발 비용 절감
신속한 시장 대응
반대
스크립트 성능 이슈
네이티브가 아닌 UX
보안 취약
앱 개발 툴 선택지
벤더사 개발툴 웹 기술 기반 툴멀티-디바이스
순수 네이티브
Embarcadero
Apple
Google
Microsoft
단일
디바이스
멀티
디바이스
스크립트, VM네이티브
HTML5 /
JavaScript
50. 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)
런타임
네이티브 스크립트 가상머신
51. 플랫폼 API로 개발
iOS iOS iOSiOS 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
52. 제공되는 컴포넌트로 개발
iOS iOS iOSiOS 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
53. 하나의 코드, 하나의 팀, 하나의 스케줄
•하나의 코드 하나의 팀 주요 장점
• 개발자: 같은 시간에 더 인상적인
결과 제공 – 높은 생산성
• 관리자: 앱 개발을 위한 모든작업이
하나
– 복잡성과 비용 감소
• 경영진: 빠른 시장 진입 - 기술 주도,
56. 멀티 디바이스 개발 시작하기
http://tech.devgear.co.kr/402210
플랫폼 사전 준비사항 디바이스에서 실행
(공통)
안드로
이드
•제조사 USB 드라이버 설치
•USB 디버깅 설정(안드로이드
환경설정)
•USB 케이블 연결
•타겟 플랫폼 선택
(안드로이드, iOS
디바이스 32/64 bit, iOS
시뮬레이터)
•빌드(실행), 디버깅
아이폰 •애플 개발자 계정 등록
•맥(OS X)에 인증서 설치
•맥에 PAServer 설치 및 실행
윈도우 •(없음) •타겟 플랫폼 선택
•빌드(실행) 디버깅
OS X •맥에 PAServer 설치 및 실행
57. 모바일 개발 사례
모바일 개발 사례 : http://tech.devgear.co.kr/delphi_news/345279
61. REST 서비스(REST API)
HTTP 기반 필요한 자원에 접근하는
방식을 정해 놓은 네트워크 아키텍처
마이크로서비스 아키텍처의 표준
인터페이스
모든 웹서비스와 다수의 하드웨어 API
짶원
단순하고 강력하고 높은 확장성
36
REST API 이해하기: http://tech.devgear.co.kr/433404
62. RAD 서버: REST API 서버 개발
델파이와 C++빌더로 완벽한 백엔드 구현
서비스 기반 애플리케이션 신속한 구축과 배포
일괄 제공
델파이와 C++ REST/JSON API 제공 및 관리 자동화
엔터프라이즈 데이터베이스 통합 미들웨어
데이터 수집을 위한 사물인터넷(IoT) Edgeware
통합된 사용자 관리, 접근 제어, 그리고 API 분석
모바일 푸쉬 알림, 위치, 근접성과 데이터 중앙통제
기능 제공
36
REST API 서버 개발하기(RAD 서버 이용): http://tech.devgear.co.kr/433438
63. REST 클라이언트 라이브러리
REST 서비스에 손쉽게 연결하고, 사용가능
JSON 파싱(구문분석) 라이브러리
OAuth2를 포함한 인증(Authentication)
JSON 데이터를 데이터셋으로 변환
프로토타입과 테스팅 가능한 강력한 REST
Debugger 제공
압축과 암호화 제공
36
REST API 클라이언트 개발하기: http://tech.devgear.co.kr/433465
69. 어떻게 시작하나요?
1.시작은? 마이그레이션 체크리스트
‒ 마이그레이션 체크리스트 (2page) :
http://tech.devgear.co.kr/1708
‒ 작성 후 데브기어로 전달
(무상으로 검토 의견을 드립니다)
2.개별 방문 컨설팅이 필요하다면?
‒ 컨설팅 회사 또는 고급 컨설턴트를 소개합니다.
(유상, 이 경우에서 체크리스트는 미리 작성)
‒ 혹시! 마이그레이션 경험이 풍부하고
컨설팅 서비스를 원하는 분도 연락 바랍니다.
데브기어 : ask@embarcadero.kr 마이그레이션 담당자 앞
70. 요약
• RAD 스튜디오는 가장 빠르게 크로스-플랫폼 네이티브 앱을
개발하는 방법, 유연한 클라우드 서비스와 다양한 IoT 연결제공
• 윈도우 10 완벽짶원(UI, 컴포넌트, 스타일), 최적의 마이그레이션
경로
• 리눅스 짶원으로 그동안의 델파이 기술과 노하우로 리눅스
콘솔과 서버 애플리케이션 개발 가능
• 한번에 윈도우, OSX, 안드로이드, iOS, 리눅스 용 네이티브 앱
빌드 및 디버깅 제공
• 하나의 코드, 하나의 팀으로 높은 생산성과 품질을 한번에 개발해
기술주도와 경쟁우위 확보
• 마이크로서비스 아키텍츠 등을 개발할 수 있는 RAD 서버와 REST
기능
71. 참고 링크
• www.devgear.co.kr
• 제품 상세 정보
• tech.devgear.co.kr
• 새소식, 기술자료, 개발자 Q&A
• devgear.co.kr/docwiki
• 최신 온라인 기술문서(한글번역)
•www.devgear.co.kr/edu/
• 데브기어 정기교육