2015년 5월 12일 온라인으로 진행된 세미나 "윈도우와 다양한 디바이스: RAD Studio XE8"의 발표자료입니다.
RAD Studio는 단 하나의 코드베이스만으로 윈도우, 맥 OS X, 안드로이드, iOS 앱을 개발할 수 있는 개발툴입니다.
이번 새로운 버전 XE8은 사물인터넷(IoT), 비콘(Beacon) 등 지원이 강화되었습니다.
EMBARCADERO TECHNOLOGIES
윈도우 개발자들:A Market View
멀티-플랫폼
• 모바일도 개발 필요.
하지만
윈도우 솔루션도 계속
지원하고 확장해야 한다
– iOS 와 안드로이드를 모두
지원해야 하는 상황
모바일 애플리케이션을 개발할 경우, 여전히 기존 윈도우
애플리케이션을 지속적으로 개발하고 지원해야 하나요?
1%
4%
95%
0% 20% 40% 60% 80% 100%
No, we will cease…
We will provide support…
Yes, we will continue all…
여러분의 사용자에게 가장 중요한 모바일 플랫폼은 무엇입니까?
(복수 선택)
4%
14%
17%
33%
67%
83%
0% 20% 40% 60% 80% 100%
Other
BlackBerry
Windows RT
Windows Phone
Apple iOS
Android
4.
EMBARCADERO TECHNOLOGIES
윈도우 개발자들: A Market View
사물인터넷 (IoT)이
미치는 영향
• 2015년은
사물인터넷(IoT)이
비즈니스 앱에 연결되는 해
– 사물인터넷에 연결된 앱들이
많은 서비스에도 연결
– 사물인터넷이 비즈니스에
영향을 주는 한 해가 될 것
어떤 유형의 시스템들이 사물인터넷(Thing) 솔루션의
한 영역을 차지하여 연결될까요?
2%
23%
26%
36%
49%
61%
69%
78%
0% 20% 40% 60% 80% 100%
Other
Other IoT device
Middleware
Enterprise applications
Cloud services
Database
Desktop applications
Mobile apps
5.
EMBARCADERO TECHNOLOGIES
What isRAD Studio?
커넥티드 앱 개발 플랫폼
(윈도우와 다양한 디바이스)
RAD 개발: 윈도우, 맥, iOS,
안드로이드, 사물인터넷(IoT)
산업에 강하고
비즈니스 용으로 준비된 플랫폼
EMBARCADERO TECHNOLOGIES
RAD StudioXE8 컴파일러들과 툴체인들
• Object Pascal 과 C++ 컴파일러들
• 윈도우 32-bit 와 64-bit
• 맥 OS X
• 안드로이드 ARM v7
• iOS Armv7, Arm 64-bit, iOS 시뮬레이터 (Object Pascal
언어만 해당)
• 총: 7개 오브젝트 파스칼, 6개 C++ 언어 컴파일러들
13
14.
EMBARCADERO TECHNOLOGIES
New inXE8: iOS 64-bit 컴파일러와 툴체인
• iOS 64bit Object Pascal 과 C++
를 위한 새로운 컴파일러
– 링커(linkers)와 도구(tools) 포함
– iOS 64 타겟을 별도로 지정
• 애플 유니버설 앱 지원
– 하나의 IPA로 두가지 바이너리 수용
• 앱 스토어에서 요구됨
– 64bit 타겟에서 32bit 바이너리도 임베드 할 수 있음
iOS 64bit 앱개발 자세히 보기 : http://tech.devgear.co.kr/410799
EMBARCADERO TECHNOLOGIES
단일 소스에서iOS 32 와 iOS 64를 동시에
• 당연한게 아닌가요?? 꼭 그렇지 않습니다!
– Xcode 오브젝티브C 에서 많은 데이터 타입이 변경됨
– Xamarin C# 코드는 API가 2개로 분기 (Classic 과 Unified)
• 핵심 변경 1개: LongInt: 64-bit 모바일에서는 64-bit
– 그리고, 32-bit 모바일과 윈도우에서는 32-bit
• 포인터와 참조 모두 64-bit, 당연합니다!
• 네이티브 라이브러리 직접 호출 시, 추가 고려있음
16
17.
EMBARCADERO TECHNOLOGIES
파이어몽키 (FMX)플랫폼
• 단일-소스, 멀티-디바이스
아키텍처
– UI 콘트롤 포함 (스타일과 플랫폼
네이티브 중 선택 가능)
– 서로 다른 플랫폼 용 여러 컴파일러:
모두가 네이티브 코드 생성
• RAD와 강력한 OOP 아키텍처의
만남
• 윈도우, OS X, 안드로이드, iOS 용
17
EMBARCADERO TECHNOLOGIES
FireUI: XE8에서는
디자이너 미리보기
• 라이브 미리보기
(모바일, 데스크탑
플랫폼 모두)
• 서로 다른 화면들에
표현되는 실제 UI를
개발중에 바로 확인
멀티-디바이스 미리보기 자세히보기 : http://tech.devgear.co.kr/411033
20.
EMBARCADERO TECHNOLOGIES
파이어몽키: XE8에추가된 새 모바일 기능들
• 새로운 맵뷰(MapView) 컴포넌트
– 안드로이드 구글 맵스 (Android Google Maps)
– iOS 맵킷(MapKit)
• 더 많아진 iOS 플랫폼 컨트롤들
– TMemo, TListView, TSwitch +(XE7에 있던 TEdit, TCalendar)
– 플랫폼 컨트롤과 스타일 콘트롤을 섞어서 사용가능,
이때, Z순서가 향상됨
20
21.
EMBARCADERO TECHNOLOGIES
파이어몽키: XE8에추가된 새 모바일 기능들
• 파이어몽키 플랫폼 네이티브 렌더링 아키텍처
파이어몽키
GPU 위주
컨트롤 렌더링
플랫폼 네이티브
컨트롤 렌더링
(OS에서 수행)
하부 렌더링 주체
네이티브 iOS 컨트롤 자세히 보기 : http://tech.devgear.co.kr/410800
EMBARCADERO TECHNOLOGIES
기타 파이어몽키(FMX)XE8 기능들
• 데스크탑 브라우저 컴포넌트들 (윈도우, OS X 용)
– 플랫폼 브라우저 컴포넌트들에 맵핑됨
• 새 ImageList 컴포넌트
– 데스크탑과 모바일에서 모두 활용
• 멀티미디어와 카메라 지원 강화
– 카메라롤(앨범)에 저장 기능 바로 적용
24
EMBARCADERO TECHNOLOGIES
런 타임라이브러리 (RTL)
• VCL 과 FireMonkey에서 모두 활용
• 핵심 런타임: 메모리 관리, 파일 및 스트림,
쓰레드, 인코딩, 포맷…
• 플랫폼 고유 API / SDK 호출을 후킹(Hook)
• XE7에 도입된: 병렬 프로그래밍 라이브러리
26
27.
EMBARCADERO TECHNOLOGIES
RTL 연결성과사물인터넷(IoT): XE8
• 앱테더링(AppTethering)
– 프로토콜 강화, 암호화 후킹(hook)
• TBluetooth 컴포넌트
– 기존 TBluetoothLE 컴포넌트와 매칭
앱테더링 자세히 보기 : http://tech.devgear.co.kr/406984
EMBARCADERO TECHNOLOGIES
비콘(Beacon)이 하는일은?
• 비콘은 근접성과 식별 정보를
제공합니다
• 얼마나 가까이 있는 지(신호
강도)를 모바일 앱에게 알림
• 식별 정보 제공 (UUID, Major
ID, Minor ID)
• 주요 표준 2가지
• iBeacons (애플)
• AltBeacons
비콘 자세히보기 : http://tech.devgear.co.kr/410888
30.
EMBARCADERO TECHNOLOGIES
비콘(Beacon)으로 여러분이할 수 있는 것은?
• 여러분의 “근접성(proximity)”앱이 할 수 있는 것:
– 가까운 비콘 찾기
• 앱이 비콘에 얼마나 가까운지를 결정
– 어떤 비콘인지를 식별
• UUID, Major, Minor
– 비콘 범위 기준 처리 (Enter/Exit)
• 블루투스LE(BLE) 신호 거리에 제한됨
– 비콘의 정보에 맞게 여러 액션을 원하든대로 수행
EMBARCADERO TECHNOLOGIES
Box2D 물리연산이 추가됨
• C++로 배포된 라이브러리
– http://box2d.org/
• Object Pascal 헤더와 바로 사용할 수 있는 데모들
• 데스크탑과 모바일 앱에 물리 연산을 추가하세요
– 게임용도로 훌륭함, 그리고 그 이상을!
33
34.
EMBARCADERO TECHNOLOGIES
HTTP /HTTPS 클라이언트
• Indy TIdHTTP 는 모든 플랫폼에서 작동됨
– OpenSSL 배포를 iOS 와 윈도우에 하려면
– 여러분의 앱의 보안 비트를 배포하게 됩니다
• 플랫폼 네이티브 API들
– OS 벤더가 제공하는 보안 레이어
– 앱과 함께 배포할 것은 없습니다
– 서로다른 4개 API들… XE8 이전!
34
35.
EMBARCADERO TECHNOLOGIES
HTTP ClientLibrary
• 네이티브 HTTP 와 HTTPS 지원을 수행
– 각 플랫폼에서 제공하는 SDK 서비스들을 사용
– 골치거리가 없는 배포, 플랫폼 보안에 맡김
• OpenSSL 보다 나음
– 윈도우, Mac, iOS, 안드로이드에서 모두 적용
– VCL에서도 물론 작동됨!
• NetHTTPClient 와 NetHTTPRequest 컴포넌트
– System.Hash 는 HTTP의 해쉬기능 제공
35
36.
EMBARCADERO TECHNOLOGIES
REST/BaaS 라이브러리는HTTP Client Library 사용
36
XE8 에서는 REST
클라이언트
라이브러리 재정의
(IdHTTP 에서 HTTP
Client Library로 이전)
BaaS 프레임워크는
REST Client Library
사용
EMBARCADERO TECHNOLOGIES
What’s New:FireDAC
• New in FireDAC
– 테라데이터(Teradata) DB드라이버, ODBC driver 기반
– InterBase 체인지 뷰(Change Views) 지원
• 자세한 사항은 InterBase XE7을 참조
– 변경 공지(notifications)
– dbExpress에서 FireDAC 마이그레이션 도구
– SQLite v3.0 이상 지원 강화 (스마트 데이터 타입을 동적
링크와 정적 링크 모두 지원)
BDE 프로젝트를 FireDAC으로 마이그레이션 따라하기: http://tech.devgear.co.kr/410825
EMBARCADERO TECHNOLOGIES
개발자 생산성강화
• IDE 와 에디터 확장
• 카스탈리아(Castalia) 기본 탑재
– 겹치는 몇 가지 기능은 비활성화
– 여전히 메뉴 분리, 향후 통합 예정
• IDE 기능들
– 프로젝트 통계 정보, 클립보드 히스토리,
다중 붙여 넣기
생산성 향상도구 자세히보기 : http://tech.devgear.co.kr/411263
45.
EMBARCADERO TECHNOLOGIES
에디터의 새로운기능
• 공통 (C++과 OP)
– 북마크 누적, 스마트 키, 괄호 매칭,
코드 구조 강조 표시
• Object Pascal에만 적용되는 것들
– Castalia 리펙토링, 에디터 선택 확장,
흐름 통제 강조 표시, 코드 찾아가기 툴바,
스마트 심볼 검색
– 코드 분석을 통해 품질 추적
45
46.
EMBARCADERO TECHNOLOGIES
겟잇(GetIt) 패키지관리자
• 손쉽게 라이브러리를 찾고 원클릭으로 설치
• VCL 과 멀티-디바이스 라이브러리 모두 호스팅
• 터보 팩(TurboPack) 프로젝트들 모두 포함
• “겟잇(GetIt) 라이브러리 관리자는 소스 코드
라이브러리들과 컴포넌트들 등 엠바카데로의
겟잇 서버에 있는 모든 기능들을 손쉽게 탐색,
다운로드, 업데이트 합니다”
• 더 많은 라이브러리들 추가 예정!46
47.
EMBARCADERO TECHNOLOGIES
“터보팩(Turbo Pack)”이란 무엇인가?
• “클래식한” 오픈 소스 컴포넌트들의 모음
– XE7/XE8 에 맞게 업데이트
– 엠바카데로가 스폰서하는 업데이트
– 새로운 언어와 RTL 기능을 유용하게 적용
• 대부분은 Turbo Power 오픈 소스 프로젝트에서
(하지만, 전부는 아님)
– 이름이 “Turbo”인 이유
– www.turbopack.net
48.
EMBARCADERO TECHNOLOGIES
DUnitX 지원
•DUnitX
– 현대식 Delphi 유닛 테스팅 프레임워크
– github.com/VSoftTechnologies/DUnitX
• 마법사까지 제공되는 통합
– 콘솔과 FMX 런너(runners)
– Delphi 와 C++
• DUnit 런타임은 여전히 제품에 포함
48
49.
EMBARCADERO TECHNOLOGIES
버전 인사이트
•서브버전 지원 강화
– 변경 목록 레이블, SVN 머지 대화창, 브랜치 스위칭
• Git 버전 컨트롤 강화
– 원격 리포지토리에 푸쉬(push)와 풀(pull) 모두 가능
• New 머큐리얼(Mercurial)버전 컨트롤 통합
– 원격 리포지토리 복제, 로컬에 변경 커밋, 로그 데이터
표시
49
50.
EMBARCADERO TECHNOLOGIES
IDE 셋팅마이그레이션
• Bin 폴더 안에, migrationtool.exe
• 이전 버전의 IDE셋팅을 새 버전으로 마이그레이션
– 동일 컴퓨더라면, 레지스트리를 마이그레이션
– 다른 컴퓨터라면, XML로 익스포트/임포트
• 구성 정보를 복제하면 동일 버전에서도 서로 다른
설치가 가능 (XML 활용)
• 사용자는 특정 셋팅 그룹을 선택할 수 있음
50
EMBARCADERO TECHNOLOGIES
EMS 란무엇인가?
엔터프라이즈 모빌리티 서비스는
미리 구현된 턴키 미들웨어 서버입니다:
• 사용자 관리와 인증
• 작성된 모듈을 커스텀 API로 오픈 (REST)
• 기업의 SQL 데이터베이스 액세스
• 모바일 임베디드와 서버 SQL 데이터 스토리지
• 사용자, 디바이스, API분석 통계를 제공하는 웹페이지
55.
EMBARCADERO TECHNOLOGIES
왜 EMS인가?
• 모바일 솔루션은 기업이 집중하는
것에 대한 강력한 백엔드가 필요
• 턴키, 클라우드에 준비된 솔루션은
빠르고 쉽게 적용 가능
• 기업에서는 필수적인 요소들로
구성
– VAR의 입장에서는 고객의 공통 백엔드
EMBARCADERO TECHNOLOGIES
EMS 의새 기능들: XE8
• 푸쉬 공지(Push Notifications) 내장
• 외부 사용자인증 지원
– 예: 액티브 디렉토리 통합
• 데이터베이스 연결 풀링
• 웹 콘솔에서 데이터 익스포트
– 사용자/그룹 분석 향상
• 클라이언트 콘솔에서 사용자 계정 등을 관리
59
60.
EMBARCADERO TECHNOLOGIES
엔터프라이즈를 위한사물인터넷(IoT)
60
EMS Server
• User Auth
• API Hosting
• Enterprise Data Access
• Data storage
• IOT Device Access Control
• Wifi/Bluetooth Bridging
• Push Notifications
사용자 인근의
기기들
EMS 서버 인근의
기기들
모든 클라우드 서비스
또는 API
모든 기업의
데이터와 서비스
컴퓨터 인근의
기기들
EMBARCADERO TECHNOLOGIES
최신 InterBase혁신들
• 다이나믹 SQL을 스토어드 프로시저 안에서
• 대규모 오브젝트 핸드링 최적화
– 보다 큰 데이터베이스 지원
• 보안 / 암호화 업데이트
• 64bit ODBC 드라이버, JDBC 드라이버 업데이트
• DB 스위핑(sweep)이 빨라짐
• DB 플랫폼 이식성
– 윈도우, 리눅스, 맥, iOS, 안드로이드
• 무료 에디션 - IBLite
63.
EMBARCADERO TECHNOLOGIES
• 체인지뷰 Change Views™
• 64bit 트랜젝션 ID들
• 10K 트랜젝션/분= 연간 150+
성능 모니터 업데이트
• 64bit 리눅스(Linux)
• New - Ubuntu 14
• RHEL 6 & 7
• SUSE 11
• OpenSSL이 1.0.1i로 업데이트
New! in InterBase XE7
• 성능 향상
– S.M.P. 와 인덱스 관리자
• 부분 인덱스와 인텔리전스
• “뛰어난” 데이터 덤프들
• 서비스되는 API들
– 저널링 / 온라인 덤프
• 이전 버전으로 리스토어
– 이전 개발 시스템을 쓰는 경우
64.
EMBARCADERO TECHNOLOGIES
체인지 뷰(ChangeViews) 란 무엇인가?
• 새로운 “구독 기반” 모델임.
클라이언트가 구독을 지정하고 DB에서 어떤
데이터가 변경되었는지를 식별할 수 있는 구조
• 구독(Subscriptions)은 아래 2가지 모두 가능
– 연결이 유지된 상태
– 연결과 시간을 조절
• 각 구독자는 여러 디바이스가 있을 수 있음
하지만 구독자의 모든 디바이스에서 동시 구독 가능
EMBARCADERO TECHNOLOGIES
체인지 뷰(ChangeViews) – 작동 방식
• 구독(Subscriptions)
– 컬럼 수준으로 무슨 데이터가 변경되었는지를 식별할 수 있도록
특정 데이터에만 묶임
– 테이블들/컬럼들을 모두 섞어서 사용 가능
– 내가 변경한 사항은 다시 리포트 되지 않고, 다른 사람에 의해
변경된 것들만 받는다.
– 연결을 넘나들며 실행됨 / 연결을 유지할 필요 없음
• 다중 사용자들과 디바이스들
– 여러 사용자들이 동일한 구독(subscription) 지정을 구독할 수 있음
– 각 사용자는 여러 개 의 독립된 디바이스들을 구독할 수 있음
68.
EMBARCADERO TECHNOLOGIES
체인지 뷰(ChangeViews)는 다릅니다!
• Have:
– DB 에 풋프린트가 거의 없음
– 필드 수준의 정교함
– 수준 높은 확장성
– 엄격한 보안 통제
– FireDAC 과 IBX와 통합
• Are:
– 빠르고, 손쉽게 구현
– SQL 쿼리 가능
– 멀티-유저 / 쓰레드에 안전
• 작별할 것들:
– 타임스템프 추적 필드들
– 업데이트를 위한 테이블 락킹
– 트리거들 위에 또 트리거들
– 테이블 구조 변경들
– 여러분의 DB를 장황하게
만들던 로그 테이블들
68
69.
EMBARCADERO TECHNOLOGIES
InterBase –에디션
1. Server 에디션
– 1 ~ 무제한 연결
2. Desktop 에디션
– Server에디션과 동일,
하지만, 로컬 연결만 허용.
3. ToGo 에디션
– 임베디드 버전
4. IBLite 에디션
– ToGo에서 기능 일부가 빠진 것
• 디스크 상에 100mb
• 암호화 / 체인지뷰 없음
• 단일 쓰레드 연결
1. Free 90 day Server trial
– Server 에디션의 모든 기능
– 20 사용자 / 80 연결
3. ToGo 에디션
– 임베디드 버전
1. Developer 에디션
– 20 사용자 / 80 연결
– 약한 암호화만 제공
– 연결 시간 제한
1,3 SDK Pack
– 모든 기능 제공
– 기간 제한 (평가판과 유사)
별도설치
형
라이브러리형
평가판개발용에디션
EMBARCADERO TECHNOLOGIES
데브기어 기술지원사이트(tech.devgear.co.kr)
XE8 새로운 기능 들 FireDAC 고급활용 10가지 방안
개발자 기술자료 >
새로운기능-XE8로 태그 검색
개발자 기술자료 >
FireDAC Skill Sprint로 제목 검색
74.
EMBARCADERO TECHNOLOGIES
델파이7 이후로달라진 주요 기능 정리
http://www.devgear.co.kr/products/rad-studio/featurelist/
• 새로운 IDE 기능
• 새로운 VCL과 RTL 기능
• 새로운 언어와 컴파일러
• 기능 새로운 디버그 기능
EMBARCADERO TECHNOLOGIES
Update Subscription의 장점
• 업데이트와 픽스 포함
– 업데이트를 받는 유일한 길
– 현재 버전은 물론, 과거 버전들까지 (새로 추가됨)
• 기술 지원 포함
• 전용 자료 포함 (새로 추가됨)
• 메인트넌스와 지원을 확대한 것임
– 가격과 방식 동일, 자동 전환
77
EMBARCADERO TECHNOLOGIES
실행 라이선스가필요한 컴포넌트들
• InterBase
– 서버, IBToGo (데스크탑 용, 모바일 용)
• 엔터프라이즈 모빌리티 서비스 (EMS)
– 사용자당 비용, 최소 50 사용자 이상
• 엠바카데로 앱 애널리틱스
– 기본 티어는 무료 (앱 시작시)
– 사용량 기준 과금
79
80.
EMBARCADERO TECHNOLOGIES
RAD StudioXE8이 제공하는 주요 혜택
윈도우, OS X, iOS,
안드로이드 등
멀티-디바이스를
개발하는 최고의
선택
커넥티드 앱을 개발 (윈도우와 다양한 디바이스)
블루투스, 앱
테더링, 비콘 등
사물인터넷을
바로 적용
턴키 서비스:
앱 애널리틱스,
EMS