목차
1장 Ogre3D를 이용한 다중접속 온라인 게임
   1절 프로젝트 개요 ... 23
      1.1 개발배경 및 목적 ... 23
      1.2 추진체계 및 일정 ... 23
        1.2.1 추진 체계 ... 23
        1.2.2 개발 일정 ... 23
        1.2.3 부문별 수행업무 및 담당자 ... 24
      1.3 프로젝트 개발범위 ... 24
   2절 배경 지식 ... 25
      2.1 Direct3D ... 25
        2.1.1 소개 ... 25
        2.1.2 3차원 좌표 계 ... 25
        2.1.3 벡터 ... 25
        2.1.4 정점(Vertex) ... 25
        2.1.5 변환(Transform) ... 26
        2.1.6 행렬 ... 26
        2.1.7 폴리곤 ... 26
        2.1.8 메시(mesh) ... 26
        2.1.9 셰이딩(Shading) ... 26
        2.1.10 텍스쳐(Texture) ... 26
      2.2 Ogre3D ... 26
        2.2.1 소개 ... 26
        2.2.2 주요기능 ... 27
        2.2.3 Material ... 27
        2.2.4 Mesh ... 27
        2.2.5 Scene ... 27
        2.2.6 Ogre3D의 동작방식 ... 27
      2.3 Newton Game Dynamics ... 28
        2.3.1 소개 ... 28
        2.3.2 OgreNewt ... 28
      2.4 CVS ... 28
        2.4.1 소개 ... 28
        2.4.2 특징 ... 28
        2.4.3 용어 ... 29
      2.5 서버 디자인 구조 ... 29
        2.5.1 서버 군의 구조 유추 ... 29
        2.5.2 기본 게임 서버군 디자인 ... 30
      2.6 분산 게임 서버의 구조 ... 30
      2.7 서버간 통신 ... 31
      2.8 게임에서의 TCP와 UDP ... 32
        2.8.1 TCP ... 32
        2.8.2 UDP ... 32
        2.8.3 온라인 게임에서 UDP 유의 사항 ... 32
      2.9 패킷 ... 32
        2.9.1 패킷 생성 시 MTU를 지키기 위한 방법 ... 32
        2.9.2 패킷의 구조 정의 ... 32
        2.9.3 엔디안 문제 ... 33
        2.9.4 패킷 암호화 방법 ... 33
      2.10 데이터베이스 ... 33
        2.10.1 게임 데이터의 저장 시기 ... 33
        2.10.2 데이터베이스의 분산 ... 33
        2.10.3 데이터베이스 테이블 디자인 ... 33
      2.11 Raknet ... 33
        2.11.1 소개 ... 33
        2.11.2 High performance ... 34
        2.11.3 Easy to use ... 34
        2.11.4 Cross platform ... 34
        2.ll.5 Actively Supported ... 34
        2.11.6 Secure connections ... 34
        2.11.7 Voice communication ... 34
        2.11.8 Remote terminal ... 34
        2.11.9 Application directory server ... 34
        2.11.10 Autopatcher ... 35
        2.11.11 Object replication system ... 35
        2.11.12 Network traffic compression ... 35
        2.11.13 Remote function calls ... 35
        2.11.14 Routing and multicasting ... 35
        2.11.15 Robust communication layer ... 35
      2.12 BitStream ... 35
        2.12.1 Description ... 35
        2.12.2 Writing Data ... 36
        2.12.3 Reading Data ... 36
      2.13 Message Filter ... 36
        2.13.1 Description ... 36
   3절 시스템 구축내용 ... 36
      3.1 시스템 구성도 ... 36
        3.1.1 클라이언트 구성도 ... 36
        3.1.2 서버 구성도 ... 37
      3.2 프로젝트 요구분석 ... 39
        3.2.1 클라이언트 요구사항 ... 39
        3.2.2 서버 요구사항 ... 39
      3.3 시스템 설계 및 구현내용 : 개발환경 및 수행환경 ... 39
        3.3.1 개발 환경 ... 39
        3.3.2 개발 환경 ... 40
        3.3.3 게임 프로세스 체계도 ... 41
        3.3.4 게임 데이터 테이블 목록 및 정의 ... 42
        3.3.5 게임 데이터 테이블 구조도 ... 42
        3.3.6 게임 네트워크 패킷 흐름도 ... 43
      3.4 게임 특징, 기능 및 장점 ... 43
      3.5 적용분야 및 확장 방안 ... 44
        3.5.1 일반 상용 MMORPG ... 44
        3.5.2 게임 내의 이벤트 성 미니 게임 ... 44
      3.6 프로그램 상세 내역서, 소스코드 문서화 ... 44
        3.6.1 프레임워크 ... 44
        3.6.2 플레이어 구조 관리 ... 49
        3.6.3 랜더링 과정 ... 53
        3.6.4 물리 적용 ... 55
        3.6.5 패킷 송/수신 ... 59
        3.6.6 파티클 관리 ... 61
        3.6.7 데이터베이스 ... 62
        3.6.8 게임내 계산 ... 63
        3.6.9 서버 네트워크 ... 66
   4절 운영자 및 사용자매뉴얼 ... 68
      4.1 프로젝트 세팅 ... 68
        4.1.1 Ogre3D SDK ... 68
        4.1.2 RakNet setting ... 68
        4.1.3 Newton setting ... 69
        4.1.4 OPenAL setting ... 70
        4.1.5 PostgreSQL DB setting ... 70
      4.2 화면 인터페이스 ... 71
        4.2.1 로그인 화면 ... 71
        4.2.2 서버 선택 화면 ... 72
        4.2.3 캐릭터 선택 화면 ... 72
        4.2.4 캐릭터 생성 화면 ... 73
        4.2.5 마을 입장 화면 ... 73
        4.2.6 전장 입장 화면 ... 74
   5절 결론 및 개선방안 ... 74
      5.1 문제점 ... 74
      5.2 결론 ... 74
2장 Ogre3D를 이용한 MMORPG(WUWA)
   1절 프로젝트 개요 ... 79
      1.1 개발배경 및 목적 ... 79
        1.1.1 MMORPG? ... 79
        1.1.2 MMORPG는 힘들다! ... 79
        1.1.3 힘들 땐 잠깐 쉬자! ... 79
        1.1.4 세부 개발 목적 ... 80
      1.2 추진체계 및 일정 : 프로젝트 추진조직 ... 80
        1.2.1 추진체계 ... 80
        1.2.2 개발일정 ... 80
      1.3 부문별 수행업무 및 담당자(업무분장) ... 81
   2절 배경 지식 ... 81
      2.1 Client Part ... 81
        2.1.1 Direct3D and OpenGL ... 81
        2.1.2 Ogre3D SDK ... 82
        2.1.3 Newton Game Dynamics ... 84
        2.1.4 OIS ... 85
        2.1.5 OpenAL ... 85
        2.1.6 CEGUI ... 85
      2.2 Server Part ... 87
        2.2.1 분산서버 ... 87
        2.2.2 RakNet ... 90
        2.2.3 AVL트리 ... 92
        2.2.4 Postgres ... 93
   3절 시스템 구축내용 ... 96
      3.1 시스템 구성도 ... 96
        3.1.1 Client Architecture ... 96
        3.1.2 Server Architecture ... 100
      3.2 시스템 구성도 ... 101
        3.2.1 Client ... 101
        3.2.2 Auth Server ... 101
        3.2.3 Lob Server ... 101
        3.2.4 Manage Server ... 101
        3.2.5 GameServer ... 101
        3.2.6 Server 구성 ... 102
      3.3 Application/Data Architecture ... 102
        3.3.1 개발환경 정의서 ... 102
      3.4 시스템 특징, 기능 및 장점 ... 103
        3.4.1 Client Framework ... 103
        3.4.2 Client Rendering Optimization ... 103
        3.4.3 Client Packet 최적화 ... 104
        3.4.4 Server Packet Optimization ... 105
      3.5 프로그램 상세 내역서 ... 106
        3.5.1 Client 구현 ... 106
        3.5.2 Server 구현 ... 109
        3.5.3 전투 시스템 ... 112
        3.5.4 DATEBASE ... 115
        3.5.5 Server Viewer Program ... 117
   4절 운영자 및 사용자매뉴얼 ... 119
      4.1 Open Suse 10.2 설치 ... 119
      4.2 PostgreSQL 8.2.4 설치 ... 119
        4.2.1 Configure ... 119
        4.2.2 Build ... 120
        4.2.3 Regression Tests ... 120
        4.2.4 Installing the files ... 120
        4.2.5 Setting Environment Variable ... 121
        4.2.6 Initializing the database ... 121
        4.2.7 Staring database server ... 121
      4.3 PgAdmin ... 122
      4.4 Ogre3D Build 및 사용하기 ... 125
        4.4.1 준비사항 ... 125
        4.4.2 Building Ogre ... 125
        4.4.3 Ogre3D를 사용한 Application 생성하기 ... 125
   5절 결론 및 개선방안 ... 129
      5.1 적용분야 ... 129
      5.2 기대효과 ... 129
3장 글러브 타입 키보드 디바이스
   1절 프로젝트 개요 ... 133
      1.1 개발 배경 및 목적 ... 133
      1.2 추진체계 및 일정 ... 134
        1.2.1 추진체계 ... 134
        1.2.2 개발일정 ... 134
      1.3 부문별 수행엄무 및 담당자 ... 134
      1.4 프로젝트 개발범위 ... 134
   2절 배경 지식 ... 135
      2.1 GTKD 구동 원리 ... 135
        2.1.1 센서의 원리와 역할 ... 135
      2.2 ADC ... 137
        2.2.1 특징 ... 137
        2.2.2 레지스터 ... 138
      2.3 키보드 ... 140
        2.3.1 키보드의 원리 ... 140
        2.3.2 스캔코드 ... 140
        2.3.3 IME Message ... 141
   3절 시스템 구축내용 ... 144
      3.1 시스템 구성도 ... 144
        3.1.1 H/W 구성도 ... 144
        3.1.2 S/W 구성도 ... 145
      3.2 사용자 요구 분석 ... 147
      3.3 시스템 설계 및 구현내용 ... 147
        3.3.1 개발전 준비사항 ... 147
        3.3.2 개발환경 정의서 ... 148
        3.3.3 프로세스 설계도 ... 176
      3.4 시스템 특징, 기능 및 장점 ... 176
      3.5 적용분야 및 확장방안 ... 177
      3.6 프로그램 상세 내역서 ... 177
        3.6.1 GTKD 소스분석 ... 177
   4절 운영자 및 사용자 메뉴얼 ... 188
      4.1 GTKD 어플리 케이션 사용자 메뉴얼 ... 188
        4.1.1 기본 구성 ... 188
      4.2 장갑사용법 ... 191
        4.2.1 모드 변경 ... 191
        4.2.2 양손모드(영문 키 자판 기준) ... 192
        4.2.3 한손모드(영문 키 자판 기준) ... 192
   5절 결론 및 개선방안 ... 192
      5.1 결론 및 기대효과 ... 192
        5.1.1 원격 로봇 제어 ... 192
        5.1.2 가상물체 인식 ... 192
      5.2 보완점 및 개선방안 ... 193
4장 IPv6LowPAN(IPv6 over Low-power low-rate Wireless Personal Area Network)
   1절 서론 ... 197
      1.1 개발 배경 및 목적 ... 197
        1.1.1 개발 배경 ... 197
        1.1.2 개발 목적 ... 198
      1.2 추진체계 및 일정 ... 198
        1.2.1 추진체계 ... 198
        1.2.2 개발 일정 ... 198
   2절 배경지식 ... 199
      2.1. 6LoWPAN이란? ... 199
        2.1.1 소개 ... 199
        2.1.2 국내에서 IPv6-USN 기술 적용 사례 ... 200
      2.2. ZigBee ... 201
      2.3. IPv6 ... 202
        2.3.1 IPv6의 개요 ... 202
        2.3.2 IPv6의 특징 ... 203
        2.3.3 Mobile IP ... 204
        2.3.4 IPv6 멀티캐스트 ... 205
      2.4 NOS ... 205
        2.4.1 소개 ... 205
        2.4.2 Qplus의 특징 및 종류 ... 205
        2.4.3 Qplus 응용분야 및 현황 ... 206
   3절 시스템 구축내용 ... 206
      3.1 시스템 구성도 ... 206
        3.1.1 H/W 구성도 ... 206
        3.1.2 S / W 구성도 ... 210
      3.2 Adaptation Layer ... 210
        3.2.1 Compression ... 210
        3.2.2 Fragmentation ... 218
        3.2.3 Reassembly ... 220
        3.2.4 LOAD(6LoWPAN Ad-hoc On-Demand Distance Vector) ... 222
      3.3 Serial 통신 ... 231
      3.4 Ipv6 소켓 통신 ... 238
        3.4.1 서버(Gateway) ... 238
        3.4.2 클라이언트 ... 244
   4절 운영자 및 사용자 매뉴얼 ... 250
      4.1 설치 방법 ... 250
        4.1.1 IPv6 통신설정 ... 250
        4.1.2 Gateway, Client, SDK 설치 ... 250
        4.1.3 Cygwin 설치 및 msp430 컴파일러 설치 ... 257
      4.2 사용하기 ... 268
        4.2.1 Server ... 268
        4.2.2 Client ... 273
   5절 결론 및 개선 방안 ... 274
      5.1 결론 ... 274
      5.2 개선방향 ... 274
5장 Eclipse RCP 기반의 플랫폼 독립형 BPM & 시뮬레이터
   1절 프로젝트 개요 ... 279
      1.1 개발 배경 및 목적 ... 279
      1.2 추진 체계 및 일정 ... 280
        1.2.1 추진 체계 ... 280
        1.2.2 일정 ... 280
      1.3 부문별 수행업무 및 담당자 ... 280
      1.4 프로젝트 개발 범위 ... 280
   2절 배경지식 ... 281
      2.1 BPM ... 281
        2.1.1 BPM 정의 ... 281
        2.1.2 BPM 등장 배경 ... 281
        2.1.3 BPM Lfe Cycle ... 282
      2.2 RCP ... 284
        2.2.1 GMF ... 284
        2.2.2 SWT ... 285
        2.2.3 JFace ... 287
        2.2.4 BPMN ... 288
        2.2.5 XPDL ... 290
        2.2.6 Flash ... 292
   3절 시스템 구축내용 ... 295
      3.1 시스템 구성도 ... 295
        3.1.1 전체 아키텍처 ... 295
        3.1.2 모델러 아키텍처 ... 295
      3.2 시스템 설계 및 구현내용 ... 295
        3.2.1 개발환경정의서 ... 295
      3.3 시스템 특징, 기능 및 장점 ... 296
        3.3.1 BPMN 표준 규격 준수 ... 296
        3.3.2 XPDL 2.0 표준 규격 준수 ... 296
        3.3.3 RCP Platform 적용 ... 296
      3.4 적용분야 및 확장 방안 ... 296
        3.4.1 적용분야 ... 296
        3.4.2 확장 방안 ... 296
      3.5 프로그램 상세 내역서 ... 296
        3.5.1 Rich Client Platform Application 클래스 ... 296
        3.5.2 Project 생성 클래스 ... 297
        3.5.3 Editor 생성 클래스 ... 300
        3.5.4 BPMS Explorer 클래스 ... 301
        3.5.5 Properties 클래스 ... 303
        3.5.6 XPDL Parser ... 306
        3.5.7 XPDL Serialize ... 307
   4절 운영자 및 사용자 매뉴얼 ... 308
      4.1 사용자 매뉴얼 ... 308
   5절 결론 및 개선방안 ... 323
      5.1 결론 및 기대효과 ... 323
      5.2 문제점 및 개선방안 ... 323
6장 스프링 프레임워크를 기반한 BPM
   1절 프로젝트 개요 ... 329
      1.1 개발 배경 및 목적 ... 329
      1.2 추진 체계 및 일정 ... 330
        1.2.1 추진 체계 ... 330
        1.2.2 일정 ... 330
      1.3 부문별 수행업무 및 담당자 ... 331
      1.4 프로젝트 개발 범위 ... 331
   2절 배경지식 ... 331
      2.1 BPM(Business Process Management) ... 331
        2.1.1 BPM 정의 ... 331
        2.1.2 BPM의 구성요소 및 주요개념 ... 332
        2.1.3 BPM Process Life Cycle Management ... 333
      2.2 스프링 프레임워크(Spring Frame Work) ... 334
        2.2.1 제어 역행(loC - Inversion of Control) ... 334
        2.2.2 관점 지향 프로그래밍(AoP-Aspect-oriented Programming) ... 334
        2.2.3 JDBC Template ... 335
        2.2.4 트랜잭션 처리 ... 336
   3절 시스템 구축내용 ... 337
      3.1 시스템 구성도 ... 337
      3.2 시나리오 ... 338
      3.3 시스템 설계 및 구현내용 ... 338
        3.3.1 개발 환경 및 도구 ... 339
        3.3.2 ER-Diagram ... 340
        3.3.3 테이블 목록 ... 340
      3.4 적용분야 및 확장 방안 ... 350
        3.4.1 적용분야 ... 350
        3.4.2 확장 방안 ... 350
      3.5 프로그램 상세 내역서 ... 350
        3.5.1 ActivityParsing() ... 352
        3.5.2 createProcess() ... 353
        3.5.3 Monitoring.jsp ... 355
   4절 운영자 및 사용자 매뉴얼 ... 359
      4.1 환경설정 ... 359
        4.1.1 JDK 환경 변수 설정 ... 359
        4.1.2 Tomcat 설정 ... 359
        4.1.3 Oracle 설정 ... 359
      4.2 운영자 매뉴얼 ... 360
        4.2.1 main.htm 호출 ... 360
        4.2.2 프로세스 생성 ... 361
        4.2.3 참여자 할당 ... 362
        4.2.4 업무 생성 ... 363
        4.2.5 모니터링 ... 364
      4.3 사용자 매뉴얼 ... 364
      4.4 관리자 메뉴얼 ... 365
        4.4.1 Engine Monitoring ... 365
        4.4.2 Engine Progress ... 365
        4.4.3 Memory Usage ... 366
        4.4.4. Connection ... 367
   5절 결론 및 개선방안 ... 367
      5.1 결론 ... 367
      5.2 기대효과 ... 367
      5.3 문제점 및 개선방안 ... 368
7장 대용량 데이터 분산 전송 시스템
   1절 프로젝트 개요 ... 373
      1.1 개발배경 및 목적 ... 373
      1.2 추진체계 및 일정 ... 374
        1.2.1 추진체계 ... 374
        1.2.2 개발일정 ... 374
      1.3 부문별 수행업무 및 담당자 ... 374
      1.4 프로젝트 개발범위 ... 374
   2절 배경지식 ... 375
      2.1 네트워크 ... 375
        2.1.1 네트워크 개요 ... 375
        2.1.2 네트워크 별 특징 ... 375
      2.2 NIO ... 376
        2.2.1 개요 ... 376
        2.2.2 구성 ... 381
      2.3 GUI ... 388
        2.3.1 개요 ... 388
        2.3.2 JTable ... 389
        2.3.3 JTree ... 390
   3절 시스템 구축내용 ... 395
      3.1 시스템구성도(H/W, S/W 구성도) ... 395
      3.2 사용자 요구분석(도식화) ... 396
      3.3 시스템 설계 및 구현 내용 : 개발환경 및 수행환경 ... 396
        3.3.1 어플리케이션 아키텍쳐 ... 396
        3.3.2 개발환경정의서 ... 397
        3.3.3 테이블목록 ... 398
        3.3.4 테이블정의서 ... 398
        3.3.5 테이블구조도 ... 400
      3.4 시스템 특징, 기능 및 장점 ... 400
      3.5 적용분야 및 확장 방안 ... 401
      3.6 프로그램 상세 내역서 ... 401
        3.6.1 DSRU module ... 401
        3.6.2 RANK/SYNC module ... 411
        3.6.3 Scheduling module ... 413
        3.6.4 UI ... 418
   4절 운영자 및 사용자매뉴얼 ... 420
      4.1 운영자 매뉴얼 ... 420
        4.1.1 DataBase ... 420
        4.1.2 Sever Program ... 420
      4.2 사용자 매뉴얼 ... 423
        4.2.1 Peer Program ... 423
        4.2.2 Demo ... 425
   5절 결론 및 개선방안 ... 431
      5.1 Testing 결과 ... 431
        5.1.1 서버 수에 따른 업로드 Testing ... 431
        5.1.2 파일 조각의 크기에 따른 업로드/다운로드 Testing ... 432
      5.2 결론 및 기대효과 ... 432
      5.3 문제점 및 개선방안 ... 433
닫기