49
EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES VCL 애플리케이션을 더욱 멋지게 Developer Direct Live! VCL 애플리케이션을 멋지고, 빠르고, 쉽게 개발하기 위한 다양한 방안

RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

  • Upload
    devgear

  • View
    762

  • Download
    5

Embed Size (px)

DESCRIPTION

2014.11.13 진행된 RAD Studio XE7 DeepDive 세미나 발표자료입니다. XE7에 추가된 VCL 기능들을 자세히 살펴보고, 델파이7에서 XE7으로의 마이그레이션에 대한 내용을 알아봅니다.

Citation preview

Page 1: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES

VCL 애플리케이션을 더욱 멋지게 Developer Direct Live!

VCL 애플리케이션을 더 멋지고, 더 빠르고, 더 쉽게

개발하기 위한 다양한 방안

Page 2: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

발표자

• 김현수(Humphery Kim) • 데브기어 델파이 에반젤리스트

• 데브기어 테크사이트 :

http://tech.devgear.co.kr/ • 블로그 : http://blog.hjf.pe.kr/ • Facebook : http://fb.com/hjfactory • [email protected]

Page 3: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

목차 시간 내용

13:30 ~ 13:40 인사말

13:40 ~ 14:10 윈도우 최신기능을 내 애플리케이션에 적용하기: VCL 최신기능

14:10 ~ 14:40 코드는 간결하게, 유지보수는 더 쉽게: 현대식 문법

14:40 ~ 15:10 하드웨어 성능 최대한 활용하기: 병렬 컴퓨팅 라이브러리

15:10 ~ 15:30 휴식과 Q&A

15:30 ~ 16:10 코드 업그레이드 자동화 하기: 마이그레이션

16:10 ~ 16:50 2개의 컴포넌트로 VCL 앱을 모바일로 확장하기: 앱테더링

16:50 ~ 17:20 엠바카데로 MVP가 알려주는 모바일 프로젝트 가이드

17:20 ~ 정리와 Q&A

Page 4: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

Embarcadero Technologies

• 1993년도 설립

• 320만 이상의 고객 – 포춘 2000 기업 중 97%

• 35개 이상의 수상경력 – 꾸준한 혁신

• 세계 29개국에서 500명 이상 근무

• 국내 주요 고객사

Page 5: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

엠바카데로 제품 포트폴리오 Design Develop Deliver

Page 6: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

워크샵 소개

• 딥 다이브(Deep dive)

• 워크샵의 목적

– VCL 애플리케이션 외관/성능/기능 향상

– 현대식 문법으로 더 수월해지는 유지보수 관리

– 최신 윈도우 OS뿐 아니라, 추후 확장을 위한 대비

– 모바일, IoT(사물인터넷)로 영역확장 등…

6

Page 7: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES

윈도우 최신기능을 내 애플리케이션에 적용하기

• VCL 스타일, 커스텀 스타일 • TaskBar, JumpList 컴포넌트 •그외 최신 컴포넌트

Page 8: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

VCL 스타일

• 애플리케이션 모든 것에 적용 – 컨트롤

– 타이틀

– 테두리

– 메뉴와 시스템 메뉴

• 일관성 있는 외관

• 윈도우 태블릿 스타일 – 윈도우7, 8.1 스타일 지원

Page 9: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

커스텀 VCL 스타일 제작

Page 10: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

VCL 스타일

• VCL 스타일파일 경로 – C:\Users\Public\Documents\Embarcadero\Studio\15.0\Styles

• VCL 스타일 적용 – Project > Option > Application > Apperance

• 커스텀 스타일 제작 툴 – Tools > Bitmap Style Designer

• 프리미엄 VCL 스타일 다운로드 – http://cc.embarcadero.com/item/29929

10

Page 11: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

태스크바 미리보기 컴포넌트

• 윈도우 태스크바에 애플리케이션 미리보기 표시

• 미리보기 영역 제어

• 미리보기 창에서 버튼 추가 및 사용

• 태스크바에 종류 별 진행상황, Overlay 아이콘을 표시

Page 12: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

점프리스트 컴포넌트

• 최근 문서에 빠르게 접근

• 디자인 타임에 정의 하거나 런타임 시 동적으로 제어 가능

• 태스크바 미리보기 컴포넌트 보완

Page 13: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

그외 최신 컴포넌트

• VCL 센서 컴포넌트

• 블루투스 LE 컴포넌트

• 앱 테더링 컴포넌트

• REST 클라이언트 라이브러리

• 클라우드(BaaS) 클라이언트 컴포넌트

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

Page 14: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES

코드는 간결하게, 유지보수는 더 쉽게

• 개선된 동적배열 • 타입 헬퍼(Type Helper) • 제너릭(Generics) • 익명메소드(Anonymous Method) • RTTI(Run Time Type Library)

Page 15: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

델파이의 새로운 문법(XE7)

• 동적 배열 초기화 개선

– 상수와 동적 배열을 이용해 초기화

• 스트링과 같은 쉬운 동적 배열 연산

– “+” 연산으로 연결

– Insert, Delete 함수 DI := [1, 2, 3]; // 싱수 초기화 DI := DI + DI; // 동적배열로 초기화 DI := DI + [4, 5]; // 상수 + 동적배열로 초기화 Insert([5, 6], DI, 4); Delete(DI, 6, 1); DI := DI + [9];

Page 16: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

타입 헬퍼(Type Helper)

• 이미 정의된 항목에 기능을 추가할 수 있는 문법

– 데이터 타입, 열거형, 동적배열, 구조체, 클래스

• XE7에 내장된 데이터타입 대부분 기능확장 (System.SysUtils)

type

TMyClassHelper = class helper for TMyClass

procedure HelloWorld;

function MyFunc: Integer;

end;

Page 17: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

제너릭(Generic)

• 클래스와 메소드에서 사용하는 데이터의 타입을 사용 시 지정하는 문법

• 제너릭 타입과 제너릭 메소드

• 더 단순해지는 코드

• 더 유용해진 컬렉션 클래스

• 열린/닫힌 생성자 형식 제너릭

type

TFoo<T> = class

FData: T;

end;

Page 18: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

익명 메소드(Anonymous Method)

• 이름이 없는 프로시저(Procedure)와 함수(Function)

• 변수와 파라메터로 할당해 전달 가능

• 익명메소드가 정의 시점의 변수 참조가능

type

TProc = reference to procedure;

procedure Call(proc: TProc);

Page 19: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

현대식 문법 더 알아보기

• 데브기어 기술자료 : http://tech.devgear.co.kr/406874

• 엠바카데로 온라인 도움말 – 한글 도움말 : http://devgear.co.kr/docwiki/

– http://docwiki.embarcadero.com/RADStudio/XE7/en/Class_and_Record_Helpers_(Delphi)

– http://docwiki.embarcadero.com/RADStudio/XE7/en/Overview_of_Generics

– http://docwiki.embarcadero.com/RADStudio/XE7/en/Anonymous_Methods_in_Delphi

• 델파이 도서: http://tech.devgear.co.kr/devgearbook

Page 20: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES

하드웨어 성능, 최대한 활용하기

• Parallel.For

• TTask, Task.IFutrue

Page 21: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

새로운 페러럴(병렬) 컴퓨팅 라이브러리

• 멀티코어 컴퓨터와 장비를 최대한 활용

• 기존 코드에 쉽게 통합

• 손쉽게 비동기 연산작업에 사용

• 페러럴 for 루프, Task, Future

• 데스크탑과 모바일, Object Pascal과 C++ 지원

Page 22: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

새로운 유닛 - System.Threading

• 페러럴 ‘for’ 루프

– TParallel.For 메소드

• 작업 스케줄링

– TTask 메소드: Run, WaitForAny, WaitForAll, Future

• IFuture

– 미래의 값을 만들고 필요할때 사용

Page 23: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES

코드 업그레이드 자동화하기

• reFind.exe 툴을 이용해 마이그레이션 자동화

Page 24: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

마이그레이션(코드 업그레이드)

• 마이그레이션이 필요한 이유 – 최신 운영체제에 대한 지원

– 유니코드와 64bit 환경 대응

– 최신기술 사용과 성능개선

– 시스템 확장 등등…

• 마이그레이션에 대한 두려움 – 어떻게 시작하지? http://tech.devgear.co.kr/405045

– 프로젝트(소스)가 너무 많아서 엄두가 나지 않아요. (시간이 없어요.) 오늘 자동화 방안을 참고

Page 25: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

마이그레이션 자동화 데모

AS-IS TO-BE

델파이 버전 델파이 7 델파이 XE7

데이터 연결방식

BDE FireDAC

스타일 기본 스타일 현대식 스타일

마이그레이션 장점

유니코드, 64Bit, 현대식 문법과 최신기술 사용가능

• 델파이 7 데모에 있는 MastApp 프로젝트 대상

• 10개 화면(소스 13개)을 마이그레이션

http://docwiki.embarcadero.com/RADStudio/XE7/en/Migrating_to_FireDAC

Page 26: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

마이그레이션 자동화 데모 – 과정

1. 자동화 패턴을 파일에 등록하기(컴포넌트, 속성 등)

2. reFind.exe 실행해 한번에 코드 변환하기

3. (옵션) 필요한 컴포넌트가 있으면 추가

4. 자동화 변환되지 못한 속성 수정하기

5. 컴포넌트 변경에 따른 변경된 코드 수정하기

6. (옵션) VCL 스타일을 활용해 최신 스타일 적용하기

27

Page 27: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

변환패턴을 텍스트파일로 기록

#unuse <unit>

– PAS 파일에서 유닛을 제거

#remove <property>

– PAS, DFM 에서 속성 제거

#migrate [<class> :] <old> -> <new> [, <unit>]

– Old를 New로 변경

– (옵션) <class> 대상 클래스, <unit> 추가

28

reFind.exe – 마이그레이션 자동화 도구

Page 28: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

FireDAC

• 고성능, 손쉬운 사용, 엔터프라이즈 데이터베이스 연결

• 통합 데이터 엑세스, 하지만 데이터베이스 특화기능 사용가능

FireDAC과 함께라면 데이터베이스 어플리케이션 개발이 다시 재밌어 집니다. http://docwiki.embarcadero.com/RADStudio/XE7/en/Migrating_to_FireDAC

Page 29: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

INTERBASE Embed, Deploy, Relax

The highly scalable, powerful, embeddable, encrypt-able database that works on multiple platforms, including iOS & Android

Page 30: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

IBLite is Free

• 인터베이스의 런타임 로얄티 무료버전

• 윈도우, OS X, iOS, Android 사용가능

• 모든 플랫폼과 에디션에 호환되는 바이너리

• InterBase ToGo로 직접 업그레이드 가능

– 전체 암호화 지원

– 데이터베이스 크기에 제한 없음

Page 31: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES

2개의 컴포넌트로 VCL 앱을 모바일로 확장하기

• 앱테더링 기술을 이용해 VCL 앱을 모바일로 확장

• 블루투스 LE 기술을 이용해 심장박동 센서를 델파이와 연결하기

Page 32: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

앱 테더링(App Tethering)?

• XE6에서 도입

• 기존의 윈도우 앱을 모바일 장치로 가장 쉽게 확장하는 방법

– 신규개발 보다 상호보완과 확장

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

– 동반자앱 자동탐색(별도 서버 불필요)

– String, Stream 기반 데이터 교환

– 동반자앱에 공개된 액션 원격호출

Page 33: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

앱 테더링 기능 - 자동탐색

• VCL 애플리케이션의 동반자 모바일 앱

• 자동탐색

– 동일 서브넷, 특정 IP, 블루투스

– P2P 모델, 같은 앱/ 동반앱 대상

– 별도의 서버, IP 설정, 서버관리 불필요

• 비밀번호 인증, 데이터 전송 허용

• 동일그룹간 자동연결(AutoConnect)

Page 34: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

앱 테더링 기능 – 데이터 전송

• 데이터 전송

– 문자열, 스트림 데이터 전송

– TFileStream, TMemoryStream…

• 원격 액션 호출

– 공개된 액션(코드블럭)을 상대의 동반자앱에서 원격으로 호출해 실행할 수 있는 기능

Page 35: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

앱 테더링 데모

더 알아보기 : http://tech.devgear.co.kr/406984

Page 36: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

RAD Studio의 블루투스 지원

• 블루투스와 블루투스 LE API 포함

– 개발자가 직접 네이티브 API 사용 가능

• 새로운 블루투스 LE 컴포넌트

• 앱 테더링에서 블루투스 확장

– WiFi와 동일한 방식으로 사용

– 더욱 다양한 환경에서 활용

– 더많은 크로스 플랫폼

Page 37: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

블루투스 기술

“Classic” Bluetooth Bluetooth LE “Low Energy”

소비 전력 높음 낮음

데이터 전송률 높음 (2 Mbps) 낮음 (< 100kbps)

최대 접속 수 최대 7 많은 수…

프로필 표준 (SPP, DUN, PAN) 일반 속성 프로필(GATT)

일반적인 시나리오 자동차, 핸드폰, 핸드프리 기기, 모바일 폰

헬스케어 기기, 스마트왓치, 웨어러블 기기

Page 38: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

플랫폼 별 블루투스 지원

“Classic” Bluetooth Bluetooth LE “Low Energy”

Android ✔ ✔ (Android 4.3 이상)

iOS ✖ ✔ (iPhone 4s+, iPad2+)

Windows ✔ Windows 8(Only)

Mac ✔ ✔

Page 39: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

블루투스 시나리오

• 블루투스 및 블루투스 LE로 헬스케어 센서 또는 웨어러블 기기와 연결해 독창적이고 도메인 특화된 솔루션 제공 가능

• 기존의 VCL 윈도우 어플리케이션에 2개의 컴포넌트를 추가해 모바일 동반자 앱과 블루투스 기기로 기능 확장

Page 40: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

블루투스 LE 데모

Page 41: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES

모바일 프로젝트 가이드

엠바카데로 MVP 오상현

Page 42: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES

마무리 요약 / Q&A

Page 43: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

마무리 요약

• VCL 애플리케이션 외관/성능/기능 향상

• 현대식 문법으로 더 수월해지는 유지보수 관리

• 최신 윈도우 OS뿐 아니라, 추후 확장을 위한 대비

• 모바일, IoT(사물인터넷)로 영역확장 등…

• 최고의 RAD Studio

Page 44: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

세미나 참석혜택(프로모션 안내)

53

• 특별 할인 혜택(10%) • 쿼리 작성 도구(Rapid SQL XE6) 증정 • 모바일 개발 도서 증정 • 다양한 보너스 툴 증정

Page 45: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

온라인 강의/세미나

Page 46: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

도서안내

55

• 한 번에 개발하는 안드로이드/iOS 앱 with 델파이

• 김원경, 김현수, 오상현 저

• http://www.devgear.co.kr/book/

• 전국 서점에서 만나보세요

• 대상

• 따라하기 과정을 통한 학습

• 모바일 개발을 시작하는 개발자

Page 47: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

2014 델파이/C++빌더 개발자 송년 맥주 파티

56

• 일시 : 2014.11.21(금) 오후 6:30 ~ 8:00

• 장소 : 데브기어 라운지

• 참석 대상 : 델파이/C++빌더 개발자 누구나

• 참가비 없음

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

Page 48: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES

Questions?

Page 49: RAD Studio XE7 DeepDive_VCL 자세히 살펴보기_김현수

EMBARCADERO TECHNOLOGIES EMBARCADERO TECHNOLOGIES

감사합니다.

http://tech.devgear.co.kr http://www.devgear.co.kr http://www.facebook.com/devgear