목차
제1장 무선 인터넷의 기초
   1.1 무선 인터넷의 개요 ... 14
      1.1.1 무선 인터넷이란? ... 14
      1.1.2 무선 인터넷망 ... 14
      1.1.3 온라인 인터넷과 무선 인터넷 비교 ... 15
      1.1.4 무선 인터넷의 미래 ... 17
   1.2 브라우저 기반의 무선 기술 ... 18
      1.2.1 WAP ... 18
        1. WAP의 정의 ... 18
        2. WAP에 대한 개요 ... 19
      1.2.2 ME(Mobile Explorer) ... 22
        1. ME의 정의 ... 22
        2. ME의 특징과 기능 ... 23
   1.3 애플리케이션 기반의 무선 기술 ... 24
      1.3.1 GVM 대 KVM ... 24
        1. GVM ... 24
        2. KVM ... 25
   1.4 결론 ... 27
제2장 Personal Java 프로그래밍
   2.1 개념 ... 32
      2.1.1 Personal Java ... 32
      2.1.2 Embedded Java JavaCard ... 32
      2.1.3 J2ME와 Personal Java ... 33
   2.2 Personal Java Specification ... 34
      2.2.1 Personal Java Application Environment(PJAE) ... 34
      2.2.2 PJAE API의 분류 ... 35
        1. 필수 API ... 36
        2. 선택 API ... 36
        3. 미지원 API ... 36
        4. 변경 API ... 36
        5. PJAE-전용 API ... 37
        6. 최소 PJAE ... 37
      2.2.3 PJAE API의 대표적 요소 ... 37
      2.2.4 PJAE 요약 ... 46
      2.2.5 Embedded Java Application Environment(EJAE) ... 47
   2.3 PJAE를 위한 프로그래밍 ... 48
      2.3.1 최소 PJAE의 구현 ... 48
      2.3.2 사용자 개입의 최소화 ... 48
      2.3.3 효율성을 고려한 설계 ... 48
   2.4 효율성을 고려한 Personal Java 프로그램 설계 ... 49
      2.4.1 효율성이 의심스러우면 Java를 사용하지 말라 ... 49
      2.4.2 효율성을 높일 수 있는 모든 요소를 고려하라 ... 50
      2.4.3 효율성을 짐작하지 말고 측정과 실험에 의존하라 ... 50
      2.4.4 가능한 많은 작업을 서버로 이전하라 ... 54
      2.4.5 프로그램 구조를 단순화하라 ... 55
      2.4.6 보다 작은 규모의 프로그램으로 배포하라 ... 55
   2.5 실행 시간과 기억장소의 최적화를 위한 프로그래밍 ... 57
      2.5.1 객체 생성의 비용을 이해하라 ... 57
      2.5.2 보다 적은 수의 객체를 생성하라 ... 58
      2.5.3 경량급 객체를 추구하라 ... 60
      2.5.4 객체보다는 기본형과 배열을 활용하라 ... 62
      2.5.5 가비지 수집에 의존하지 말고 불필요한 자원을 최대한 빨리 회수하라 ... 64
      2.5.6 필드나 정적 변수 대신 지역 변수를 사용하라 ... 64
      2.5.7 문자열 접속에는 String 대신 StringBuffer를 사용하라 ... 66
      2.5.8 불필요한 계산을 피하라 ... 67
      2.5.9 반응성이 높은 시스템을 위해 스레드를 사용하되 불필요한 동기화를 피하라 ... 69
      2.5.10 클래스의 개수를 적절히 조절하라 ... 71
      2.5.11 Native code를 직접 지원하는 명령을 사용하라 ... 73
      2.5.12 원시 코드를 수작업으로 최적화하라 ... 73
   2.6 PJAE를 위한 프로그램 개발 ... 77
      2.6.1 JavaCheck ... 78
      2.6.2 PJEE ... 82
      2.6.3 주요 구현사와 제품 ... 84
   2.7 Personal Java 프로그래밍을 위한 프레임워크 ... 87
      2.7.1 GUI 객체의 레이아웃 ... 87
      2.7.2 UI 코드와 Business Logic의 분리 ... 91
      2.7.3 사용자 대화 모델의 추상화 ... 92
      2.7.4 메뉴 처리 모듈의 작성 ... 97
      2.7.5 Afterthought ... 98
   2.8 Personal Java 프로그램 개발 사례 : e-Spider ... 99
      2.8.1 e-Spider의 대화 모델 ... 100
      2.8.2 웹 자동화 및 클리핑 미들웨어 Wire 개요 ... 101
      2.8.3 서비스 스크립트의 예 ... 102
      2.8.4 Personal Java를 위한 Wire 클라이언트 모듈 ... 104
      2.8.5 메뉴 처리 모듈 News 작성의 예 ... 109
   2.9 Personal Java 프로그램의 배포 ... 112
      2.9.1 Personal Java 가상머신의 설치 ... 112
      2.9.2 클래스 파일 형식의 배포 ... 114
      2.9.3 단축 링크 형식의 배포 ... 115
제3장 J2ME와 MIDP 프로그래밍
   3.1 J2ME 소개 ... 120
      3.1.1 개요 ... 120
      3.1.2 J2ME의 구조 ... 121
      3.1.3 J2ME의 장점 ... 121
   3.2 Configuration ... 122
      3.2.1 CLDC ... 123
      3.2.2 CDC ... 125
   3.3 MIDP 프로그래밍의 기초 ... 126
      3.3.1 MIDP 프로그래밍을 하기 위한 프로그램 셋업 ... 128
        1. JDK 1.3 ... 128
        2. MIDP Fcs 1.0 ... 131
        3. MIDP Wireless Toolkit ... 132
      3.3.2 JAD, JAM ... 137
   3.4 MIDlet 프로그래밍 ... 138
   3.5 GUI 프로그래밍 ... 140
      3.5.1 Alert ... 141
      3.5.2 AlertType ... 144
      3.5.3 Canvas ... 157
      3.5.4 Choice ... 171
      3.5.5 ChoiceGroup ... 175
      3.5.6 DateField ... 184
      3.5.7 Display ... 193
      3.5.8 Displayable ... 197
      3.5.9 Font ... 198
      3.5.10 Form ... 208
      3.5.11 Gauge ... 212
      3.5.12 Graphics ... 213
      3.5.13 Image ... 215
      3.5.14 ImageItem ... 217
      3.5.15 Item ... 220
      3.5.16 ItemStateListener ... 220
      3.5.17 List ... 221
      3.5.18 Screen ... 228
      3.5.19 StringItem ... 229
      3.5.20 TextBox ... 230
      3.5.21 TextField ... 234
      3.5.22 Ticker ... 236
   3.6 MIDP EVENT 프로그래밍 ... 237
      3.6.1 Command ... 237
      3.6.2 CommandListener ... 239
      3.6.3 Item ... 240
      3.6.4 ItemStateListener ... 240
   3.7 MIDP Connection ... 241
      3.7.1 MIDP IO Connection ... 241
      3.7.2 MIDP HttpConnection ... 245
      3.7.3 JSP를 이용한 서버측 DB 연동 ... 249
      3.7.4 실전 예제 ... 267
        1. 영화예매 입력 ... 267
        2. 입력 내용 전송 ... 270
        3. 영화예매 정보 확인 ... 277
        4. 예매수 입력 ... 283
        5. 결재 정보 입력 ... 284
        6. 예약 정보 전송 ... 287
   3.8 MIDP RMS 프로그래밍(MIDP DataBase) ... 294
      3.8.1 RMS(Record Management System)란 무엇일까? ... 296
      3.8.2 RMS(Record Management System) 프로그래밍 ... 297
        1. 레코드 스토어(Record Store) ... 297
        2. 레코드 스토어의 레코드 다루기 ... 301
      3.8.3 RMS 패키지와 클래스 소개 ... 347
   3.9 MIDP 예제 프로그래밍 ... 354
      3.9.1 Mail Service ... 354
      3.9.2 Battle Tetris ... 375
제4장 Mobile Database 프로그래밍
   4.1 개요 ... 410
      4.1.1 모바일 데이터베이스란? ... 410
      4.1.2 모바일 데이터베이스의 동향 ... 411
      4.1.3 응용분야 및 과제 ... 412
      4.1.4 모바일 데이터베이스의 구분/종류 ... 414
   4.2 자바 기반의 데이터베이스 ... 416
      4.2.1 자바 데이터베이스의 장점 ... 416
      4.2.2 자바 프레임에서의 모바일 데이터베이스 구분 ... 419
   4.3 모바일 데이터베이스 기술 ... 420
      4.3.1 모바일 데이터베이스의 요구사항 ... 420
      4.3.2 실행 메모리 공간 축약 기술 ... 422
      4.3.3 동기화 기술 ... 424
      4.3.4 자바 객체의 저장 ... 429
   4.4 포인트베이스 구성(자바 기반의 모바일 데이터베이스) ... 432
      4.4.1 포인트베이스 인스톨 ... 433
        1. Embedded 인스톨 ... 433
        2. Network Server 인스톨 ... 433
        3. UniSync 인스톨 ... 435
        4. Micro 인스톨 ... 440
      4.4.2 포인트베이스 구성 ... 441
        1. 포인트베이스 Micro ... 442
        2. 포인트베이스 Embedded Server ... 442
        3. 포인트베이스 Network Server ... 442
        4. 포인트베이스 UniSync Option ... 442
      4.4.3 Embedded Console 기능 ... 443
        1. Console 기능 정의 ... 443
        2. 데이터베이스 생성 ... 443
        3. SQL Load ... 445
        4. SQL Unload ... 447
        5. Simple select ... 449
        6. IMAGE select ... 449
        7. 데이터 삽입하기 ... 450
        8. 데이터 업데이트 ... 450
        9. 데이터 Expert 하기 ... 451
        10. 데이터 Import 하기 ... 452
      4.4.4 Embedded Command 기능 ... 455
        1. Command 기능 정의 ... 455
        2. 데이터베이스 생성하기 ... 455
        3. 시스템 기능 ... 457
        4. Java 메소드를 이용한 function 만들기 ... 458
        5. 데이터베이스 트리거 ... 460
      4.4.5 Network Server ... 461
      4.4.6 포인트베이스 Micro ... 464
      4.4.7 UniSync Option(동기화) ... 468
        1. 용어 정의 ... 468
        2. 스냅샷(SnapShot)과 포인트 업데이트(PointUpdate) 기능 ... 470
        3. Network Server와 Network Server간의 동기화 ... 472
        4. EnterPrise DB와 Mobile DB와의 동기화 ... 486
        5. Conflict Detection and Resolution ... 498
   4.5 KVM 기반의 MIDP 프로그래밍 ... 504
      4.5.1 J2ME_MIDP_Demo PriceCheck 소스 분석 ... 504
      4.5.2 J2ME MIDP : PointBase PriceCheck Demonstration Application ... 517
      4.5.3 n.TOP 마법사 플랫폼 SDK 실행 ... 538
        1. SDK 설치 ... 539
        2. SDK 제거 ... 540
        3. 에뮬레이터 실행 ... 540
        4. 버튼 기능 ... 541
      4.5.4 클래스 파일 실행 ... 541
        1. 자바 프로그램의 컴파일 ... 541
        2. 클래스 실행 ... 542
        3. 주의사항 ... 544
      4.5.5 포인트베이스 load ... 544
   4.6 KVM 기반의 Palm KAWT 프로그래밍 ... 564
      4.6.1 Palm install 방법 ... 564
      4.6.2 Kawt 소스 분석 ... 568
   4.7 Personal Java 기반의 winCE 예제 프로그램 ... 581
      4.7.1 프로그램 개발 환경 ... 581
      4.7.2 프로그램의 개요 ... 581
      4.7.3 프로그램 소스 분석 ... 582
      4.7.4 프로그램 실행 및 결과 화면 ... 622
부록 KittyHawk[ez-Java]
   1. KittyHawk 소개 ... 626
      1.1 ez-Java의 특징/환경 ... 626
      1.2 UI 관계 Diagram ... 627
      1.3 에뮬레이터 다운 및 설치 ... 628
   2. 프로그램 작성부터 테스트까지 ... 628
      2.1 소스 작성 ... 628
      2.2 컴파일 방법 ... 631
      2.3 사전 검증(preverify) 방법 ... 631
      2.4 에뮬레이터에서의 실행/테스트 ... 632
      2.5 jar 파일 작성 ... 632
      2.6 jam 파일 작성/웹에 올리기 ... 632
      2.7 폰에서 다운 받기/테스트 ... 633
   3. KittyHawk API 소개/MIDP와 비교 ... 634
      3.1 KittyHawk API Class 계층도 ... 634
      3.2 예제를 통한 프로그래밍 기법 ... 651
      3.3 KittyHawk Ver 1.1 사용시 유의사항 ... 665
찾아보기 ... 667
닫기