2009년 4월 27일 월요일

Enterprise Adobe Flex 집필 하고 있습니다.

Flex와 LCDS와 관련된 책을 집필하고 있습니다.

제목과 내용은 아직 확정적이진 않지만 아래와 같이 구성 할 예정입니다.


Adobe Flex & LiveCycle Data Service & Open Source Framework

Enterprise Adobe Flex 개발

Adobe Flex LiveCycle Data Service J2EE


목차



I. Adobe Flex

1. Adobe Flex란 무엇인가?

2. SI 개발자의 입장에서 바라본 Flex LCDS 그리고 J2EE

3. Getting Started with Flex

II. Enterprise Flex Architecture

1. 어플리케이션 개발 시 고려 사항

1.1 어플리케이션 설계

1.2 프로젝트 환경 설정

1.3 빌드 환경 설정

1.4 어플리케이션 배포

1.5 보안 환경 설정

1.6 Flex SDK를 통한 어플리케이션 개발

2. Flex 어플리케이션의 물리적 환경 설정

2.1 설치 디렉토리 구조 설정

2.2 개발 디렉토리 구조 설정

2.3 Flex 어플리케이션 컴파일

2.4 Flex 어플리케이션 배포 환경

3. 보안

3.1 Flex 보안 모델 소개

3.2 J2EE authentication을 이용한 보안 모델 적용

3.3 보안을 적용하는 Flex 어플리케이션 코드 짜기

3.3.1 보안을 강화한 MXML 태그 구성

3.3.2 viewSourceURL 사용금지

3.3.3 SWF 파일에서 민감한 정보의 제거

3.3.4 입력 데이터 검증

3.3.5 ActionScript 코드의 보안 강화

3.3.6 암호 사용

3.3.7 SharedObject 클래스를 활용한 데이터 저장

3.4 SSL의 사용

3.5 RPC 서비스의 보안

3.6 클라이언트 보안 설정

3.6.1 mm.cfg 파일

3.6.2 mms.cfg 파일

3.6.3 FlashPlayerTrust 파일

3.6.4 Setting Manager 사용

III. LiveCycle Data Service ES 소개

1. LCDS의 기능

2. LCDS 설치

3. LCDS를 이용한 Flex 어플리케이션 생성

4. 서버측 컴파일 프로세스 이행

5. LCDS의 구성요소

5.1 LCDS with J2EE

5.2 Remoting 서비스

5.3 Message 서비스

5.4 Data Management 서비스

6. 프록시 서비스

7. BlazeDS 사용

IV. LiveCycle Data Service와 서버 데이터 통합

1. Remoting 서비스를 이용해 Java 클래스 사용

1.1 Remoting 서비스에 대한 이해

1.2 RPC 이벤트 처리

1.3 다중 메소드 호출

1.4 ActionScriptJava의 데이터 교환

1.5 서버측 예외 처리

1.6 런타임 Remoting 서비스 설정

2. 클라이언트의 데이터 관리

2.1 ActionScript Collection 객체 이해

2.2 클라이언트의 데이터 필터링

2.3 클라이언트의 데이터 정렬

2.4 IViewCursor 인터페이스 사용

3. Data Management 서비스 사용

3.1 Flex Data Management 서비스 이해

3.2 Data Management 서비스 아키텍쳐

3.3 데이터의 변경

3.4 데이터의 지연 변경

3.5 Data Management 서비스 이벤트

3.6 Data Management 서비스의 부가 기능

4. E4X를 사용한 XML 데이터 처리

4.1 XML 구문 이해

4.2 ActionScript 3에서 XML 데이터 사용

4.3 E4X 구문 사용

4.4 Tree 컨트롤 사용

4.5 E4X 구문을 통한 검색

4.6 XML의 구성요소 제거

5. 파일 업로드

5.1 파일 전송 시스템 이해

5.2 파일 업로드 컴포넌트 구현

V. Flex & Java

1. Java 개발자를 위한 Flex 코딩

1.1 Java to Flex

1.2 Object-Oriented ActionScript

1.3 인터페이스와 다형성을 통한 프로그램 설계

1.4 인터페이스가 없는 상속

1.5 Flex JSP

1.6 JSP와 데이터 통신

2. 디자인 패턴의 적용과 활용

2.1 PureMVC 사용

2.2 Cairngorm 사용

2.3 프레임웍 사용의 장점과 단점

3. MVC 프레임워크를 사용한 CRUD 컴포넌트 제작

4. Flex Spring 프레임워크 통합

VI. 대규모 프로젝트를 위한 작업과 어플리케이션 성능 향상

1. 대규모 Flex 어플리케이션 개발 시 주의 사항

2. Modular 어플리케이션 개발

2.1 Modular 어플리케이션 정의

2.2 모듈 개발

2.3 모듈 컴파일

2.4 모듈의 로딩과 언로딩

2.5 ModuleLoader 이벤트 사용

2.6 데이터 전달

3. Sub 어플리케이션 개발

4. Flex 어플리케이션 최적화

4.1 클라이언트 어플리케이션 성능 증가

4.1.1 일반적인 성능 향상 방법

4.1.2 성능 검증

4.1.3 클라이언트 환경 설정

4.1.4 SWF 파일 사이즈 감소

4.1.5 여러 개의 SWF 파일 사용

4.1.6 어플리케이션 코딩

4.2 차트 컴포넌트의 성능 증가

4.2.1 Series 데이터의 필터링 방지

4.2.2 LinearAxis 객체 코딩

4.2.3 CategoryAxis 객체 코딩

4.2.4 AxisRenderer 객체 스타일 설정

4.2.5 Gutter 스타일 명시

4.2.6 Drop shadow 사용


5. 어플리케이션 실행 속도 향상

6.1 어플리케이션 성능과 실행 순서

6.2 지연된 객체 생성 및 사용

6.2.1 creationPolicy 속성 이행

6.2.2 createComponentsFromDescriptors 메소드 사용

6.2.3 childDescriptor 속성 사용

6.2.4 컴포넌트 제거

6.3 객체 생성 순서 정의

6.3.1 컨테이너 큐 생성

6.3.2 컨테이너 큐 우선순위 설정

6.3.3 컨테이너의 동적인 추가

6.3.4 다른 creationPolicy 설정에 컨테이너 통합

6.4 callLater() 메소드 사용

6. 런타임 공유 라이브러리 사용

6.1 RSLs 소개

6.2 일반 RSLs cross-domain RSLs

6.3 Framework RSLs의 사용

7. 효과적인 어플리케이션 설계 및 개발

7.1 효과적인 컨테이너 사용

7.2 Bindable 태그와 명시적인 바인딩

7.3 Array ArrayCollection

7.4 지연된 로딩 기법 사용

8. RPC 성능 향상(http://www.adobe.com/devnet/flex/articles/rpc_performance_05.html)

8.1 RIA 어플리케이션의 성능과 일반적인 웹 어플리케이션의 성능

8.2 클라이언트-서버 통신 성능 확인

8.3 대용량 request

8.4 대용량 response

8.5 빈번한 네트워크 호출

8.6 실패한 request 처리

VII. Flex 어플리케이션을 개발시 필요 구성 요소

1. Flex SDK 설정

1.1 SDK 설정 파일 속성

1.2 SDK 설정

1.3 Flash Player 설정

2. Flex 컴파일러

2.1 Flex Compiler의 종류

2.1.1 어플리케이션 컴파일러

2.1.2 컴포넌트 컴파일러

2.2 Command-line 컴파일러

2.2.1 command-line 컴파일러 옵션

2.2.2 옵션 이름을 통한 컴파일

2.2.3 Java command-line 컴파일러와의 통합

2.3 설정파일을 사용한 컴파일

2.3.1 설정 파일의 위치

2.3.2 설정 파일 속성 설정

2.4 컴파일러 설정 파일 우선순위

2.5 mxmlc를 이용해 어플리케이션 컴파일

2.6 compc를 이용해 컴포넌트 컴파일

2.7 에러와 경고 처리

2.8 SWC 파일 생성

2.8.1 SWC 파일 배포

2.8.2 SWC의 컴포넌트 사용

2.9 manifest 파일 설정

3. Flex Ant 사용

3.1 Ant 설치

3.2 Ant task 사용

3.3 mxmlc 작업

3.4 comp 작업

3.5 html-wrapper 작업

4. Log

4.1 Flex의 로그 정보

4.2 디버깅 Flash Player의 사용

4.3 클라이언트측 로그와 디버깅

4.4 컴파일러 로그

5. 버전 관리

5.1 여러 버전의 SDK 사용

5.2 하위 호환성 확보

5.3 Flash Player의 버전 관리

6. 메모리 사용과 확장성 검증

6.1 Flex 프로파일러

6.2 메모리 사용률 확인

6.3 부하 테스트

6.4 접근성 검증

VIII. Flex 어플리케이션의 배포

1. 어플리케이션의 배포와 설정

2. 배포를 위한 컴파일

2.1 Flex Builder에서 배포 버전을 위한 컴파일

2.2 accessible 속성 설정

2.3 소스 보기 방지

2.4 incremental 컴파일 설정

2.5 headless-server 속성 설정

3. 배포를 위한 확인 목록

3.1 어플리케이션 구성요소

3.2 네트워크 접속 종류

3.3 Step 1. 서버측 리소스 목록 생성

3.4 Step 2. 방화벽 내 서버간의 접근 검증

3.5 Step 3. 방화벽 밖에서 서버로의 접근 검증

3.6 Step 4. 프록시 서버 설정

3.7 Step 5. crossdomain 정책 파일 생성

IX. 실습 환경 설정

X. 인덱스

2009년 4월 26일 일요일

LCDS 강의 [1] Adobe LiveCycle Data Service ES 소개

이번 장에서는 Adobe LiveCycle Data Service ES를 통해 J2EE의 서비스를 사용하는 방법을 확인해 본다.

이번 장을 통해
  • LCDS가 제공하는 기능에 대한 이해
  • LCDS를 사용하는 Flex 어플리케이션 제작
  • LCDS의 구조 이해
  • LCDS의 오픈소스 버전인 BlazeDS 사용


1장 목차

1-1. LiveCycle Data Service ES 소개
1-2. LCDS 설치
1-3. LCDS를 이용하는 Flex 어플리케이션 개발
1-4. 컴파일 프로세스에 대한 이해
1-5. LCDS의 기능들
1-6. Proxy 서비스
1-7. BlazeDS에 대한 이해




1-1. LiveCycle Data Service ES 소개

Adobe의 LCDS는 Flex 프레임워크에서 사용되는 원격지(서버측)의 데이터 호출과 동기화 등의 데이터 관리 기능을 제공한다.


[그림1: Flex & LiveCycle Data Service Application Architecture]


LCDS의 기능 소개
  • Remoting 서비스 - 서버측에 있는 Java 클래스에 대한 호출을 하여 Flex 어플리케이션에서 사용
  • Message 서비스 - 실시간 채팅과 협업 어플리케이션을 만들 수 있는 기능을 제공
  • Data Management 서비스 - Flex 어플리케이션이나 다른 웹 어플리케이션과의 실시간 데이터 동기화 기능을 지원
  • Proxy 서비스 - Flash 플랫폼에서 원격지 데이터 호출을 할 때 사용하는 cross-domain 대신 서버 기반의 프록시 보안정책을 지원

LCDS와 J2EE 서버

  • LCDS는 J2EE 서버에서 동작한다.

  • LCDS가 동작가능한 서버는 아래와 같다.

    • JRrun 4
    • Apache Tomcat
    • BEA WebLogic
    • IBM WebSphere
    • JBoss
    • Oracle Containers for J2EE
    • SAP NetWeaver

1-2. LCDS 설치

LCDS의 설치시에 두 종류의 설치 옵션을 확인 할 수 있다.
  • LiveCycle Data Service with integrated JRun(or Tomcat)
  • LiveCycle Data Service J2EE web application
  • 개발이나 테스트 환경일 경우 어떤 옵션을 선택해도 상관없다.
  • 실제 운영 환경일 경우 J2EE web application 모드를 선택해, 운영환경에 있는 서버에 설치할 .war 파일을 생성한다.
  • 두 옵션 모드 flex.war 라고 되어있는 압축 파일을 생성한다.

flex.war 파일을 통한 LCDS 설치

  • 각 J2EE 서버마다 .war 파일을 배포하는 방식이 다르므로, 각 서버의 일반적인 .war 파일 배포 방식을 참고하여 flex.war를 배포한다.
  • LiveCycle Data Service with integrated JRun(or Tomcat) 모드로 설치 했을 경우 Jrun 서버나 Tomcat 서버가 함께 설치되고 flex.war 파일도 함께 배포 되어 있다. (context root 명이 flex로 되어있다.)

LCDS의 디렉토리 구조

  • LCDS의 기본 디렉토리 구조는 표준 J2EE 웹 어플리케이션의 구조와 동일하다.
  • Flex 어플리케이션의 기본 경로는 J2EE 환경에서 context root로 알려져 있는 곳과 동일하다
  • context root 디렉토리는 WEB-INF라는 하위 디렉토리를 포함하고, 이 디렉토리는 J2EE 웹 어플리케이션이 동작하는데 필요한 여러 디렉토리들과 설정 파일들을 포함한다.

파일/디렉토리
설명
web.xml Flex 클라이언트 어플리케이션의 요청 처리를 위한 명령문을 포함
/flex
LCDS가 제공하는 서비스를 처리하기 위한 라이브러리와 설정 파일을 포함
/classes LCDS가 런타임시에 사용할 Java 클래스들이 위치
/lib LCDS가 런타임시에 사용할 jar 파일들이 위치

[테이블 1: WEB-INF 디렉토리의 파일과 하위 디렉토리 설명]



오늘 부터 Live Cycle Data Service에 대한 글을 올립니다.

오늘부터 Adobe LiveCycle Data Service 완전 정복에 대한
강의를 올립니다.

LCDS를 사용할때 참고 하는 한글 문서로 활용되었으면 좋겠습니다.
초보들도 쉽게 따라 할 수 있도록, 가장 기본적인 설명 부터 진행합니다.
(전체적인 내용은 Adobe 공인 과정을 기준으로 진행합니다.)

전체적인 목차는 아래와 같습니다.


1. LiveCycle Data Service ES 소개
2. Remote Object를 이용한 Java Class 사용
3. WebService를 활용한 Data 관리
4. Client Data 관리
5. Message Service
6. Data Management Service
7. E4X를 통한 XML 사용
8. Uploading File


이틀에 한 챕터 정도 생각하고 있습니다.
저에게 Adobe Flex 공인 과정을 들으셨던 분들이라면
복습차원에서 리마인드 하실 수 있을것 같습니다.