김원경의 윈도우 애플리케이션 개발 핵심: 델파이 12
“윈도우 애플리케이션” 신규 개발 또는 유지 보수를 “잘하기 위한” 핵심 기술을 익힌다!
수강 신청 안내
일시: 2024년 11월 25일(월) ~ 27일(수), 오전 9:30 ~ 오후 4:30 | 총 3일 * 6시간 = 18시간 (수강 신청 하기)
장소: 데브기어 강의실 (위치 보기)
수강료: 36만원 (할인 정책 보기)
강사: 김원경 (강사 소개 보기)
강의 개요
과정명: 김원경의 윈도우 애플리케이션 개발 핵심: 델파이 12
목표: 윈도우 애플리케이션 신규 개발 또는 유지 보수를 “잘하기 위한” 핵심 기술을 익힌다.
대상: 델파이 개발 경력 무관 (델파이 코드에 대한 기본적인 이해 능력이 없어도 수강 가능)
방식: 강의실 대면 교육, 이론 30%, 실습 70%
학습할 내용: (자세히 보기)
실습 개요
애플리케이션 하나를 직접 완성하기 | 주요 기술 실습하기 |
윈도우용 문서 편집기(프로젝트명: MyWordPad) |
개발 실습용 (프로젝트명: MyHandsOn) |
시연 영상 보기 (mp4 파일 다운로드만 제공됨) | 시연 영상 보기 (mp4 파일 다운로드만 제공됨) |
학습할 내용 (수강 완료 후 학습 진단표로 활용)
개발 환경 다루기와 프로젝트 수행
오브젝트 파스칼: 언어 기본
오브젝트 파스칼: 객체 지향 프로그래밍 (OOP)
오브젝트 파스칼: 고급 기능
데이터 다루기
파일 다루기
UI/UX 구현
UI/UX 구현 응용
외부 모듈 활용하기
배포하기
(다운로드: 소스 코드 / 강의안 / 강의 자료 / 학습내용 자기 점검표)
개발 환경 다루기와 프로젝트 수행
- 내 IDE(통합개발환경)를 알맞게 설정하여 사용할 수 있다.
- 오브젝트 인스펙터를 통해 컴포넌트를 다룰 수 있다.
- 내가 맞춤 정의한 IDE 구성을 저장하고 재사용할 수 있다.
- 주요 단축키를 활용할 수 있다.
F12 (화면과 코드 상호 전환), F9(빌드), Ctrl+Shift+C(코드 골격 자동 생성)…
- 윈도우 애플리케이션을 만들 때 사용되는 소스 파일들을 이해하고 알맞게 구성할 수 있다:
.dpr, .dpproj, .dfm, .pas, .dcu (Delphi Compiled Unit),… - 독립 실행형 윈도우 애플리케이션을 만들고 관리할 수 있다
- 윈도우 애플리케이션 프로젝트 파일과 소스 파일을 생성하고 관리할 수 있다.
- 윈도우 애플리케이션의 폼들이 자동 생성되도록 설정하거나 수동 생성 할 수 있다.
- 재사용할 수 있는 공용 모듈을 리포지토리에 넣고 재사용할 수 있다
(프로젝트, 폼, 프레임, 대화상자) - RTL 등 델파이 자체의 클래스들의 소스를 찾아가서 볼 수 있다
- 애플리케이션 전체에 대해 메모리 누수 여부를 검사할 수 있다
- 디버거(debugger)를 사용할 수 있다.
Break point, Break list, Local Variable, Call Stack, Evaluate/Modify, Watch 창… - 겟잇 패키지 매니저를 사용하여 외부 컴포넌트, 외부 스타일을 받고 사용할 수 있다.
- 외부에서 만든 개발용 라이브러리 패키지를 내 IDE 안에 넣고 사용할 수 있다
- 다른 언어(C ,C++ 등)로 작성된 DLL 함수 등을 내 애플리케이션 안에서 사용할 수 있다
- 윈도우 운영체제용으로 여러 종류의 애플리케이션을 직접 만들 수 있다
- 윈도우 애플리케이션
- 콘솔 애플리케이션
- DLL 애플리케이션
- 패키지 애플리케이션
오브젝트 파스칼: 언어 기본
- .DPR 즉 프로그램 파일(.dpr) 안에 적힌 소스 코드의, 내용, 구성, 용도를 이해한다.
- .PAS 즉, 유닛(Unit) 파일 안에 있는 소스 코드의 구조를 이해한다.
Interface, Implementation, Initialization, Finalization,… 유닛의 가시성(및 캡슐화)… - 기본 데이터 타입을 이해한다 (정수, 실수, 문자, 불린, 열거, 문자열,…)
- 알맞은 타입의 변수를 알맞은 위치에 선언, 정의, 사용할 수 있다.
- 루틴(프로시저, 함수)를 작성하고 사용할 수 있다.
- 사칙연산 함수를 직접 만들 수 있다.
- 매개변수 전달 방식을 알맞게 선택할 수 있다.
Var, Const, Out,… - 인라인(inline) 함수를 사용할 수 있다.
- 오버로딩을 통해 동일한 루틴을 여러 상황에 맞게 확장할 수 있다.
- 문자열을 다룰 수 있다.
- 배열을 다룰 수 있다.
- 인덱스를 다룰 수 있다.
- 동적 배열, 정적 배열
- 레코드 타입을 사용할 수 있다.
- 포인터 타입을 사용할 수 있다.
- Variant 타입을 사용할 수 있다.
오브젝트 파스칼: 객체 지향 프로그래밍 (OOP)
- OOP의 기본 개념을 이해한다 (추상화, 상속, 다형성, 캡슐화)
- 클래스를 정의하고, 생성하고, 사용하고, 파괴할 수 있다
- 생성자
- 파괴자
- Free와 FreeAndNil의 차이를 이해한다.
- 메모리 누수(memory leak)를 유발하지 않는 견고한 코드를 작성할 수 있다.
- 상속(Inheritance)
- 클래스 상속을 직접 구현하고 활용할 수 있다.
- Sealed 키워드를 이해하고 활용할 수 있다.
- As 연산자, Is 연산자 등을 활용하여 안전한 타입 변환을 작성할 수 있다.
- 다형성(Polymorphism)
- 조상 클래스로부터 상속된 생성자를 재정의(override)할 수 있다
- 조상 클래스로부터 상속된 메서드를 재정의(override)할 수 있다
- OOP 메서드와 관련된 키워드를 이해하고 사용할 수 있다.
Dynamic, Virtual, Override, Final,…
- 캡슐화(Encapsulation)
- 클래스의 가시성을 이해한다.
(Strict) Private, (Strict) Protected, Public, Published
- 클래스의 가시성을 이해한다.
- 추상화(Abstraction)
- 컴포넌트 클래스 다루기
- 프로퍼티, 이벤트, 메서드를 이해하고 다룰 수 있다
- 컴포넌트의 메모리 관리 모델을 이해한다.
- VCL 컴포넌트들의 주요 클래스 계층을 이해한다.
- 이벤트 핸들러를 사용할 때 Sender를 잘 활용할 수 있다.
- TApplication 클래스와 TForm 클래스를 이해한다.
- 다른 유닛 안에 있는 클래스, 메서드, 변수를 사용할 수 있다.
- 오류 등 다양한 예외(Exception)를 코드에서 알맞은 방법으로 안전하게 처리할 수 있다.
- Exception 오브젝트들의 계층 구조를 이해한다.
- 예외 처리 관련 키워드를 사용할 수 있다.
Try, Except, Finally, Raise, EAbort… - Exception Handler를 만들어, 예외 처리를 구현할 수 있다.
오브젝트 파스칼: 고급 기능
- 제네릭과 제네릭 컬렉션들을 사용할 수 있다.
- RTTI (Runtime Type Information)를 사용하여, 버튼(button) 등 오브젝트의 해당 클래스 안에 정의된 메소드 (또는 프로퍼티)들을 나열할 수 있고 활용할 수 있다.
데이터 다루기
이 과정에서는 다루는 데이터는 매우 간단한 로컬 값들입니다.
(오라클, SQLite 등) DBMS 또는 (REST API 등) 웹서비스의 데이터를 다루는 과정은 별도로 있습니다. (김원경의 데이터베이스 프로그래밍: 델파이 12 – 준비 중)
- 라이브바인딩을 사용하여, XML 데이터를 원하는 형태로 화면에 표현할 수 있다.
파일 다루기
- 텍스트 파일을 열고, 편집하고, 저장하는 애플리케이션을 만들 수 있다.
UI/UX 구현
- 윈도우 전용 GUI 애플리케이션 개발 프레임워크인 VCL 프레임워크의 계층 구조를 이해한다.
- 윈도우 운영체제의 기본 UI 요소들을 구현하고, 활용할 수 있다.
입력 상자, 버튼, 그룹 박스, 트리뷰, 리스트뷰, 판넬, 날짜 선택용 달력,… - UI 컨트롤들의 동적으로 생성하고 다룰 수 있다.
- 버튼을 동적으로 생성하고, 그 버튼의 의 프로퍼티와 동작(이벤트 핸들러)을 다룰 수 있다.
- 색상선택 대화창을 동적으로 생성하고, 선택한 색상을 폼의 색상으로 반영할 수 있다.
- 이미지 구현: UI 컨트롤 안에 움직이는 이미지 등 다양한 이미지 포맷(SVG, WebP, GIF, PNG, BMP, JPG, ICO…)을 표현하기
- 효과 구현: 그림자 효과 등
- 제스처 구현: 손가락으로 밀어 넘기기, 사용자 정의 제스처 구현하기 등
UI/UX 구현 응용
- 다중 대상도 또는 고해상도인 스크린에 알맞게 아이콘, 이미지가 표현되도록 할 수 있다
- 애플리케이션의 전체 또는 일부 UI 요소에 다양한 스타일을 쉽게 추가/변경 할 수 있다
- 프로그램 전체에
- 특정 폼에만
- 특정 컴포넌트에만
- 윈도우 운영체제의 기타 UI 요소들을 구현하고, 활용할 수 있다
TaskBar, StatusBar, ToolBar, TrayIcon, MainMenu, PopupMenu, JumpList… - 액션(Action)을 사용하여 행위를 사전 정의하고 재사용할 수 있다.
- 리본 컴포넌트
- 폼(Form) 화면이 열리고 닫힐 때 발생되는 주요 이벤트의 순서를 알고 활용할 수 있다.
OnCreate, OnShow, OnActivate, OnPaint, OnResize,…OnDeactivate, OnCloseQuery, OnClose, OnDestroy - 폼(Form)이 생성되는 시점에 원하는 동작들이 수행되도록 구현할 수 있다.
- 사용자가 폼(Form)을 닫는 시점에 원하는 동작들이 수행되도록 구현 할 수 있다.
- 윈도우 운영체제에 있는 모든 형태의 창들을 구현할 수 있다.
- SDI (단일 문서 인터페이스) 방식 애플리케이션을 만들 수 있다.
- 메인 화면을 표시할 때 특정 창이 특정 위치에 도킹(docking)되어 있도록 할 수 있다.
- 모달(modal) 창을 구현하고 그 창이 제공하는 결과 값을 사용할 수 있다.
- 모드리스(modeless) 창을 생성할 때, 동일한 창이 중복 생성되지 않도록 할 수 있다.
- 창을 최대화/최소화 또는 특정 크기로 복원하기 등을 구현할 수 있다.
- 애플리케이션 구동될 때, 스플래쉬 창을 메인 화면의 정중앙에 나타낼 수 있다. 그리고 그 안에는 움직이는 이미지를 담을 수 있다.
- 내가 만든 윈도우 애플리케이션에 대한 세부 정보를 담은 AboutBox를 만들 수 있다.
- 자주 사용하는 UI와 로직을 TFrame으로 구현하고, 그것을 보관하고 재사용 할 수 있다.
외부 모듈 활용하기
- DLL을 프로젝트에 추가(제거)/사용/배포할 수 있다.
- DLL 안에 있는 함수 호출할 때 다양한 방식으로 그 DLL을 바인딩(로딩)할 수 있다.
- 정적으로 DLL을 로딩
- 동적으로 DLL을 로딩
- DLL을 지연 로딩
- 디자인-타임 패키지를 IDE 안에 추가(제거)/사용 할 수 있다.
- 런-타임 패키지를 프로젝트에 추가(제거)/사용/배포할 수 있다.
배포하기
- 내가 만든 윈도우 애플리케이션을 다른 곳으로 배포할 수 있다.
- EXE xcopy 방식으로 배포할 수 있다.
- Dll, BPL 등 공용 모듈을 EXE 함께 배포할 수 있다.
- 윈도우 스토어를 통한 배포는 여기에서 다루지 않습니다. (자료 링크만 전달함)
- 셋업파일 만들기는 여기에서 다루지 않습니다. (자료 링크만 전달함)
(다운로드: 소스 코드 / 강의안 / 강의 자료 / 학습내용 자기 점검표)
- 예제 소스 코드: (다운로드)
- 강의안: (다운로드)
- 강의 자료: (다운로드)
- 학습 내용 및 자기 진단표: (다운로드)
강사 소개
김원경 강사는 1994년부터 다우기술, 중앙일보 ITEA를 거쳐 현재 데브기어에서 강의를 하고 있는 델파이 전문 강사이다. 지금까지 델파이 1.0부터 최신 버전까지 모든 델파이 버전을 강의했다. 저서로는 “델파이 Begin…End” (2011년), “한번에 개발하는 안드로이드/iOS 앱 with 델파이” (2014년)가 있다.
수강료 할인 정책
- 무료: 업데이트 서브스크립션을 유지 중인 고객 (단, 엔터프라이즈 또는 아키텍트 에디션 보유 고객에 한하여 이 과정을 1년 중 1회 무료 수강)
- 할인: 엠바카데로 라이선스 보유 고객 대상
- 엔터프라이즈 또는 아키텍트 에디션: 20% 할인
- 프로페셔널 에디션: 10% 할인