59
1 최신 OS멀티플랫폼 개발 전략 with RAD Studio 2017623, 부산 김현수([email protected])

20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

  • Upload
    devgear

  • View
    315

  • Download
    3

Embed Size (px)

Citation preview

Page 1: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

1

최신 OS와 멀티플랫폼 개발 전략 with RAD Studio

2017년 6월 23일, 부산

김현수([email protected])

Page 2: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

발표순서

• 2:00 ~ 2:50 하나의 코드베이스로 윈도우, 리눅스, 맥, 모바일앱

개발하기

• 2:50 ~ 3:00 Q&A / 휴식

• 3:00 ~ 3:30 최신식 윈도우 10용 애플리케이션 개발

• 3:30 ~ 4:00 리눅스 서버 애플리케이션 개발

• 4:00 ~ 4:10 Q&A / 휴식

• 4:10 ~ 5:00 최신 파이어몽키를 이용한 모바일 앱 개발 스킬

업그레이드(오상현 실장)

Page 3: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

RAD 스튜디오는?

Page 4: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

RAD 스튜디오는?

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

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

PLATFORM

INDEPENDENT CLOUD READY

CROSS

PLATFORM NATIVE

Page 5: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

RAD 스튜디오 플랫폼 지원

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

•공식 지원 • Windows 10 Anniversary Update

• macOS Sierra

• iOS 10

• Android N (Nougat)

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

Page 6: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

빠르고, 시각적인 개발

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

Page 7: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

클라우드 서비스

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

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

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

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

Page 8: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

광범위한 사물인터넷 연결

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

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

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

• 비콘을 통한 근접 인식, 비콘펜스

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

Page 9: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

하나의 코드베이스로 윈도우, 리눅스, 맥, 모바일앱 개발하기

Page 10: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

$

Future 델파이 or C++

파이어몽키 프레임워크

단일 팀 단일 코드베이스

RAD 스튜디오로 멀티-디바이스를 실현

Page 11: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

찬성

네이티브 UX

네이티브 성능 보안

반대

다중의 코드베이스

중복된 여러 팀 개발/운영 비용 상승

찬성

단일 팀 개발 비용 절감 신속한 시장 대응

반대

스크립트 성능 이슈

네이티브가 아닌 UX

보안 취약

앱 개발 툴 선택지

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

순수 네이티브

Embarcadero

Apple Google

Microsoft

단일 디바이스

멀티 디바이스

스크립트, VM 네이티브

HTML5 /

JavaScript

Page 12: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

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) 런타임

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

Page 13: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

Application

Development

Framework

Complied

exe

파이어몽키 아키텍처

RTL

app ipa

(with .o)

apk

(with .so) 실행파일

(with .o)

Page 14: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

플랫폼 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

Page 15: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

제공되는 컴포넌트로 개발

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

Page 16: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

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

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

• 개발자: 같은 시간에 더 인상적인 결과 제공

• 매니저: 앱 개발을 위한 모든작업이 하나 –

복잡성과 비용 감소

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

경쟁우위를 지킴

Page 17: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

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

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

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

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

•USB 케이블 연결 •타겟 플랫폼 선택

(안드로이드, iOS 디바이스 32/64 bit, iOS 시뮬레이터)

•빌드(실행), 디버깅 아이폰 •애플 개발자 계정 등록

•맥(OS X)에 인증서 설치 •맥에 PAServer 설치 및 실행

윈도우 • (없음) •타겟 플랫폼 선택 •빌드(실행) 디버깅 OS X •맥에 PAServer 설치 및 실행

Page 18: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

멀티-디바이스: FireUI

• 엠바카데로의 기술 컬렉션으로 하나의 화면(UI) 폼을 서로 다른

모든 디바이스와 화면 비율에 적용

• 멀티-디바이스 디자이너

• IDE 미리보기 / 앱 미리보기

• 반응형 서비스

• MultiView 컴포넌트

Page 19: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

모바일 개발 사례

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

Page 20: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

백엔드: RAD 서버

Page 21: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

RAD 서버 아키텍처

EMS DB

System Database EMS Server HTTP Clients

• Version

• API

• Users / Groups

• Installations

• Push

• Edgemodules

• Resource A1

• Resource A2

• Resource B1

• …

VCL / FMX

기본 제공 리소스

사용자 제작 리소스

플러그인 형태의

EMS 패키지(*.bpl)

(REST API 제공)

Page 22: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

REST End-Point Publishing

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

Page 23: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

사물인터넷 개발

Page 24: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

사물인터넷 통신기술

통신기술 블루투스 WiFi

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

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

구조

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

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

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

[따라하기] 위험지역 경보 앱 만들기 : http://tech.devgear.co.kr/413402

[따라하기] 건강데이터 수집 앱 만들기 : http://tech.devgear.co.kr/416019

Page 25: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

비콘 펜스(Beacon Fence)

• Beacon Zone Fencing

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

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

• Beacon Map Fencing

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

감지

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

(BeaconFence Map Editor)

비콘펜스 소개 및 데모 : http://tech.devgear.co.kr/432221

Page 26: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

윈도우 10 애플리케이션 개발

Page 27: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

왜 Windows 10인가?

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

• 윈도우 10 채택 기업 꾸준한 증가

VCL은 윈도우 10으로의 최고의 마이그레이션 경로 제공 • 아직 이전버전 윈도우 지원을 유지

• 프로젝트 센터니얼(Microsoft 출시예정)을 통해 윈도우 10 스토어 배포

36

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

Page 29: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

RAD Studio Windows 10 지원

가장 완벽하게 원도우 플랫폼 지원 • VCL은 가장 뛰어나고, 가장 완벽한 네이티브 윈도우 컴포넌트 라이브러리입니다.

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

Windows 10 전용 컴포넌트 • 새로운 윈도우 10 UI 컨트롤과 스타일

• WinRT/UWP 이용 윈도우 10 공지와 공유 컴포넌트

• 10 시애틀 이후 사용가능

37

Page 30: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

윈도우 10 전용 컴포넌트

•Relative Panel

•SplitView

•SearchBox

•ActivityIndicator

•ToggleSwitch

•윈도우 10 스타일

Page 31: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

Relative Panel VCL 컨트롤

Page 32: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

SplitView VCL 컨트롤

Page 33: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

SearchBox VCL 컨트롤

Page 34: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

ActivityIndicator VCL 컨트롤

Page 35: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

ToggleSwitch VCL 컨트롤

Page 36: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

VCL 윈도우 10 UI 스타일

41

Page 37: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

WinRT / UWP 통합

• Universal Windows Platform(UWP) 통합

• WinRT API 매핑과 오브젝트 파스칼 인터페이스 • 윈도우 10 알림

• 윈도우 10 공유계약(Sharing Contrat)

42

Page 38: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

UWP/WinRT 알림

43

Page 39: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

UWP/WinRT 공유계약(Sharing contract)

44

Page 40: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

윈도우 10 스토어 지원

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

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

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

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

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

VCL & FMX 베를린 업데이트 2 Anniversary 에디션에서 처음 지원

Page 41: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

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

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

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

Page 42: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

델파이 리눅스 개발

Page 43: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

리눅스 지원

•리눅스 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, 그리고 그 이상

• C++빌더 리눅스 지원은 10.2 업데이트1 예정

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

Page 44: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

델파이 리눅스 컴파일러

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

• LLVM 기술 기반 • ARC 사용

• 기본으로 ZBS 꺼짐

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

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

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

Page 45: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

리눅스 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

Page 46: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

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

•모든 리눅스 지원 DBMS 용 FireDAC 드라이버

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

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

• Informix만, 제외!

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

Page 47: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

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

• Indy 클라이어트와 서버

•WebBroker + DataSnap + RAD Server modules (EMS) • Apache 2.4 통합

• 독립 실행형(Standalone) 서버

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

• Cloud 그리고 BaaS 클라이언트

• SOAP 클라이언트

Page 48: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

리눅스 개발환경 설정하기

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

Page 49: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

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

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

• 콘솔 기반 WebBroker 프로젝트

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

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

Page 50: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

데이터 엑세스 컴포넌트 - FireDAC

Page 51: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

FireDAC

•높은-성능, 손쉬운-사용, 기업용 데이터베이스 연결

•범용 데이터 엑세스, BUT 데이터베이스 전용 기능 사용 가능(DBMS 별 DriverLink 제공)

•별도 설치 프로그램 없음, 전체 소스코드 제공

•리눅스 지원 FireDAC 성능 비교 : http://tech.devgear.co.kr/424484

Page 52: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

FireDAC 데이터베이스 드라이버

ADVANTAGE

DATABASE SERVER

DataSnap

dbExpress

Page 53: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

FireDAC 주요 기능

고성능 네이티브 데이터베이스 엑세스

이기종 데이터베이스를 넘나들며 컴포넌트 공유

데이터베이스 별 고유기능 사용

메모리 기반 데이터셋과 로컬-SQL

로깅, 모니터링과 추적(tracing)

트렌젝션, 전처리 그리고 캐스캐이딩

ETL: 데이터 가져오기, 내보내기

캐쉬업데이트와 Auto-Inc 필드

Array DML과 그 이상

Page 54: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

FireDAC 성능과 기능들

FireDAC의 성능 • http://tech.devgear.co.kr/424484 FireDAC 주요기능 10가지의 설명, 데모, 샘플코드 - http://tech.devgear.co.kr/410454 1 FireDAC 소개 2 FireDAC으로 DBMS 사용 내역 추적, 모니터링 하기 3 캐쉬를 이용한 업데이트와 자동증가필드(Identity) 적용 4 ArrayDML로 30배 빠르게 데이터 입력하기 5 Cascading Options: 고급기능을 활용 할 수 있는 FireDAC 옵션 6 전처리: SQL문을 유연하게 작성할 수 있는 Param와 Macro 사용하기 7 FireDAC ETL: 데이터 내보내기, 가져오기 기능 구현하기 8 TFDMemTable: 메모리 기반 데이터셋 사용하기 9 LocalSQL: DB에서 가져온 데이터(데이터셋)를 대상으로 다시 SQL쿼리 실행하기 10 reFind 도구를 이용해 BDE 프로젝트를 Fi`reDAC으로 마이그레이션 따라하기 [따라하기] FireDAC으로 오라클(Oracle) DB와 연결하기 • http://tech.devgear.co.kr/410237

Page 55: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

마무리, Q&A

Page 56: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

요약

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

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

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

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

• IDE 개선으로 더욱 높아진 생산성, FireDAC으로 성능과 기능 강화, 모바일과 사물인터넷으로 서비스 확장

Page 57: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

참고 링크 • 참고리소스 : http://tech.devgear.co.kr/432239

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

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

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

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

• youtube.com/embarcaderoKR • 데브기어 유튜브

Page 58: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

따라하기 자료

•트라이얼 다운로드: http://tech.devgear.co.kr/432239

도서대여 프로그램 만들기 나의 도서관 앱 만들기

• VCL 폼 애플리케이션(2티어) • 데이터베이스 프로그래밍 학습

• 멀티-디바이스 애플리케이션(임베디드 DB) • 모바일 UI 구성, 기능 구현 학습

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

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

Page 59: 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio

감사합니다! Questions and Answers