목차
1. 인터넷 그리고 웹에 대한 소개 ... 1
1.1 소개 ... 2
1.2 컴퓨터란 무엇인가? ... 7
1.3 컴퓨터의 구조 ... 7
1.4 운영체제의 발전 ... 8
1.5 퍼스널, 분산 및 클라이언트/서버 컴퓨팅 ... 9
1.6 기계어, 어셈블리어 및 고급 언어 ... 10
1.7 C++의 역사 ... 11
1.8 자바의 역사 ... 12
1.9 자바 클래스 라이브러리 ... 12
1.10 기타 고급언어 ... 14
1.11 구조화된 프로그래밍 ... 14
1.12 인터넷과 월드 와이드 웹 ... 15
1.13 일반적인 자바 환경의 기본 ... 15
1.14 자바와 본서에 대한 일반적인 언급 ... 19
1.15 객체에 관해 생각하기 : 객체기술과 UML 소개 ... 21
1.16 설계 패턴 발견하기 : 개요 ... 25
1.17 본 서에 대한 개관 ... 27
1.18 (옵션) UML을 이용한 객체지향 설계 사례연구 둘러보기 ... 41
1.19 (옵션) '설계 패턴 발견하기' ... 44
2. 자바 애플리케이션 개요 ... 54
2.1 소개 ... 55
2.2 자바로 해보는 첫 번째 프로그램 : 한 라인인쇄하기 ... 55
2.2.1 첫 번째 자바 애플리케이션 컴파일 및 실행하기 ... 60
2.3 첫 번째 자바 프로그램 수정하기 ... 61
2.3.1 여러 개의 구문을 갖는 문장에서 한 라인 표시하기 ... 61
2.3.2 한 개의 구문을 갖는 문장에서 여러 라인 표시하기 ... 62
2.4 대화상자 안의 문장 표시하기 ... 64
2.5 또 다른 자바 애플리케이션 : 정수 더하기 ... 68
2.6 메모리의 개념 ... 74
2.7 산술 ... 75
2.8 판단 : 동등 및 비교 연산자 ... 76
2.9 (옵션 사례연구) 객체에 대해 생각하기 : 문제 제시 검사하기 ... 85
3. 자바 애플릿의 개요 ... 103
3.1 소개 ... 104
3.2 자바 2 소프트웨어 개발 킷에 포함된 애플릿 예제 ... 105
3.2.1 TicTacToe 애플릿 ... 105
3.2.2 DrawTest 애플릿 ... 108
3.2.3 Java2D 애플릿 ... 109
3.3 간단한 자바 애플릿 : 스트링 그리기 ... 110
3.3.1 WelcomeApplet 컴파일 및 실행하기 ... 116
3.4 두 개의 더 간단한 애플릿 : 스트링과 선 그리기 ... 118
3.5 또 다른 자바 애플릿 : 부동 소수점 더하기 ... 120
3.6 웹 브라우저에서 애플릿 보기 ... 127
3.6.1 넷스케이프 네비게이터 6에서 애플릿 실행 ... 129
3.6.2 자바 플러그인을 이용한 다른 브라우저에서 애플릿 실행 ... 129
3.7 자바 애플릿 인터넷 및 월드 와이드 웹 리소스들 ... 132
3.8 (옵션 사례연구) 객체에 대해 생각하기 : 문제 제시에서 클래스 확인하기 ... 133
4. 제어구조 : 파크 Ⅰ ... 146
4.1 소개 ... 147
4.2 알고리즘 ... 147
4.3 의사코드 ... 148
4.4 제어구조 ... 148
4.5 if 선택구조 ... 151
4.6 if-else 선택구조 ... 152
4.7 while 반복구조 ... 157
4.8 알고리즘 작성 : 사례연구 1(카운터-제어 반복) ... 158
4.9 하향식 단계적 상세화에 의한 알고리즘 작성 : 사례연구 2(감시값-제어 반복) ... 163
4.10 하향식 단계적 상세화에 의한 알고리즘 작성 : 사례연구 3(중첩된 제어구조) ... 171
4.11 대입 연산자 ... 176
4.12 증가, 감소 연산자 ... 177
4.13 기본 테이터형 ... 179
4.14 (옵션 사례연구) 객체에 대해 생각하기 : 클래스 속성 확인 ... 180
5. 제어구조 : 파트 2 ... 194
5.1 소개 ... 195
5.2 카운터-제어 반복의 필수 ... 195
5.3 for 반복구조 ... 197
5.4 for 구조를 이용한 예제 ... 201
5.5 switch 다중 선택 구조 ... 207
5.6 do/while 반복구조 ... 211
5.7 break와 continue문 ... 213
5.8 라벨 break와 continue 구문 ... 216
5.9 논리 연산자 ... 218
5.10 구조적 프로그래밍 요약 ... 224
5.11 (옵션 사례연구) 객체에 대해 생각하기 : 객체의 상태와 동작 확인하기 ... 230
6. 메소드 ... 241
6.1 소개 ... 242
6.2 자바의 프로그램 모듈 ... 243
6.3 Math 클래스 메소드 ... 243
6.4 메소드 ... 244
6.5 메소드 정의 ... 246
6.6 아규먼트 프로모션 ... 253
6.7 자바 API 패키지 ... 254
6.8 난수 발생 ... 255
6.9 예제 : 확률 게임 ... 259
6.10 식별자의 존속기간(duration) ... 267
6.11 영역(Scope) 규칙 ... 269
6.12 되부름(Recursion) ... 271
6.13 되부름을 이용한 예제 : 피보나치 수열 ... 275
6.14 되부름 vs 반복 ... 280
6.15 메소드 오버로딩 ... 282
6.16 JApplet 클래스의 메소드 ... 285
6.17 (옵션 사례연구) 객체에 대해 생각하기 : 클래스 동작 확인하기 ... 287
7. 배열(Arrays) ... 308
7.1 소개 ... 309
7.2 배열 ... 309
7.3 배열 선언과 할당 ... 311
7.4 배열을 이용한 예제 ... 312
7.4.1 배열 할당과 배열 요소 초기화 ... 312
7.4.2 배열 요소 초기화에 초기화 리스트 사용하기 ... 314
7.4.3 각 배열 요소에 저장하기 위해 값 계산하기 ... 315
7.4.4 배열 요소 합하기 ... 317
7.4.5 배열 데이터를 그래픽으로 표시하기 위해 히스토그램 사용하기 ... 318
7.4.6 배열 요소를 카운터로 사용하기 ... 319
7.4.7 조사결과 분석에 배열 사용하기 ... 320
7.5 참조와 참조 파라미터 ... 323
7.6 메소드에 배열 전달하기 ... 324
7.7 배열 정렬하기 ... 327
7.8 배열 검색 : 선형 검색과 바이너리 검색 ... 330
7.8.1 선형 검색으로 배열 검색하기 ... 330
7.8.2 이진 검색으로 정렬된 배열 검색하기 ... 332
7.9 다차원 배열 ... 337
8. 객체 기반 프로그래밍 ... 373
8.1 소개 ... 374
8.2 클래스를 사용한 추상 데이터형 Time의 구현 ... 375
8.3 클래스 영역 ... 383
8.4 멤버 접근의 제어 ... 383
8.5 패키지 만들기 ... 385
8.6 클래스 객체 초기화 : 생성자 ... 390
8.7 중복 생성자 이용 ... 391
8.8 Set 메소드와 Get 메소드 사용 ... 395
8.8.1 프로그래머 - 정의 패키지를 사용하는 애플릿 실행 ... 404
8.9 소프트웨어 재사용 ... 406
8.10 Final 인스턴스 변수 ... 406
8.11 결합(Composition) : 다른 클래스의 인스턴스 변수로써의 객체 ... 408
8.12 패키지 접근 ... 411
8.13 this 참조 사용 ... 413
8.14 Finalaizers ... 420
8.15 정적(static) 클래스 멤버 ... 421
8.16 데이터 추상화와 은닉화 ... 426
8.16.1 예 : 큐 추상 데이터 형 ... 428
8.17 (옵션 사례연구) 객체에 대해 생각하기 : 엘리베이터 시뮬레이션에 대한 프로그램 클래스로 시작하기 ... 429
9. 객체 지향 프로그래밍 ... 440
9.1 소개 ... 441
9.2 수퍼클래스와 서브클래스 ... 444
9.3 protected 멤버 ... 446
9.4 수퍼클래스 객체와 서브클래스 객체들간의 관계 ... 447
9.5 서브클래스에 생성자와 종결자 사용하기 ... 454
9.6 서브클래스 객체에서 수퍼클래스 객체로 묵시적인 형 변환 ... 458
9.7 상속을 사용한 소프트웨어공학 ... 459
9.8 결합 대 상속 ... 460
9.9 사례 연구 : Point, Circle, Cylinder ... 460
9.10 다형성에 대한 개요 ... 467
9.11 타입 필드와 switch 구문 ... 468
9.12 동적 메소드 바인딩 ... 468
9.13 final 메소드와 클래스 ... 469
9.14 Abstract 수퍼클래스와 구상 클래스 ... 469
9.15 다형성 예제 ... 470
9.16 사례연구 : 다형성을 사용한 급여 시스템 ... 472
9.17 새로운 클래스와 동적 바인딩 ... 480
9.18 사례연구 : 인터페이스와 구현의 상속 ... 481
9.19 사례연구 : 인터페이스 생성과 사용 ... 488
9.20 내부 클래스 정의 ... 496
9.21 내부 클래스 정의의 주의 사항 ... 507
9.22 기본형에 대한 Type-Wrapper 클래스 ... 507
9.23 (옵션 사례연구) 객체에 대해 생각하기 : 엘리베이터 시뮬레이션에 상속 포함하기 ... 508
9.24 (옵션) 설계패턴 연구 : 생산적, 구조적, 행위적 설계 패턴 ... 514
10. 문자와 문자열 ... 530
10.1 소개 ... 531
10.2 문자와 스트링의 기초 ... 531
10.3 String 생성자 ... 532
10.4 String의 메소드 length, charAt, gerChars ... 534
10.5 String 비교하기 ... 536
10.6 String 메소드 hashCode ... 541
10.7 String에 문자와 서브스트링 찾기 ... 542
10.8 String에서 서브스트링 추출 ... 544
10.9 String 연결 ... 546
10.10 기타 String 메소드들 ... 547
10.11 String의 메소드 valueOf 사용하기 ... 549
10.12 String의 intern 메소드 ... 550
10.13 StringBuffer 클래스 ... 553
10.14 StringBuffer 생성자 ... 553
10.15 StringBuffer의 length, capacity, setLength, ensureCapacity 메소드 ... 554
10.16 StringBuffer의 charAt, setCharAt, getChars, reverse 메소드 ... 556
10.17 StringBuffer의 append 메소드 ... 557
10.18 StringBuffer의 insert과 delete 메소드 ... 559
10.19 Character 클래스 예제 ... 561
10.20 StringTokenizer 클래스 ... 568
10.21 카드 섞기와 나누기 시뮬레이션 ... 571
10.22 (옵션 사례연구) 객체에 대해 생각하기 : 이벤트 핸들링 ... 576
11. Graphics와 Java2D ... 593
11.1 소개 ... 594
11.2 Graphics와 그 객체들 ... 596
11.3 색상 조각 ... 597
11.4 폰트 조작 ... 604
11.5 선, 사각형, 타원 그리기 ... 610
11.6 호 그리기 ... 614
11.7 다각형과 다각선 ... 616
11.8 Java2D API ... 619
11.9 Java2D 모양들 ... 620
11.10 (옵션 사례연구) 객체 생각해 보기 : UML로 인터페이스 설계하기 ... 626
12. Graphical User Interface Component 1부 ... 639
12.1 소개 ... 640
12.2 Swing 개관 ... 641
12.3 JLabel ... 644
12.4 이벤트 처리 모델 ... 647
12.5 JTextField와 JPasswordField ... 649
12.5.1 이벤트 처리가 작동하는 과정 ... 654
12.6 JButton ... 655
12.7 JCheckBox와 JRadioButton ... 658
12.8 JComboBox ... 664
12.9 JList ... 667
12.10 복수선택 리스트 ... 669
12.11 마우스 이벤트 처리 ... 672
12.12 어댑터 클래스 ... 676
12.13 키보드 이벤트 처리 ... 682
12.14 레이아웃 매니저 ... 685
12.14.1 FlowLayout ... 686
12.14.2 BorderLayout ... 689
12.14.3 GridLayout ... 692
12.15 패널 ... 694
12.16 (옵션 사례연구) 객체 생각해보기 : 사용 사례 ... 696
13. Graphical User Interface Component 2부 ... 714
13.1 소개 ... 715
13.2 JTextArea ... 716
13.3 JPanel의 특화된 하위클래스 만들기 ... 719
13.4 JPanel의 Self-Contained 하위클래스 만들기 ... 724
13.5 JSlider ... 729
13.6 Windows ... 734
13.7 애플릿 혹은 애플리케이션으로 실행되는 프로그램 설계하기 ... 735
13.8 프레임오과 함께 메뉴 사용하기 ... 741
13.9 JPopupMenus 사용하기 ... 750
13.10 Pluggable Look-and-Feel ... 753
13.11 JDesktopPane과 JInternalFrame 사용하기 ... 757
13.12 레이아웃 매니저 ... 761
13.13 BoxLayout 레이아웃 매니저 ... 762
13.14 CardLayout 레이아웃 매니저 ... 765
13.15 GridBagLayout 레이아웃 매니저 ... 769
13.16 GridBagConstraints 상수인 RELATIVE와 REMAINDER ... 775
13.17 (옵션 사례연구) 객체 생각해보기 : Model-View-Controller ... 778
13.18 (옵션) 설계 방식 알아보기 : java.awt와 javax.swing 패키지에서 사용되는 설계 방식들 ... 783
13.18.1 생산적 설계 방식 ... 783
13.18.2 구조적 설계 방식 ... 784
13.18.3 행동적 설계 방식 ... 786
13.18.4 결론 ... 790
14. 예외 처리(Exception Handling) ... 799
14.1 소개 ... 800
14.2 언제 예외 처리를 사용해야 하는가? ... 802
14.3 다른 에러 처리 기술들 ... 803
14.4 자바 예외 처리의 기본 ... 803
14.5 try 블록 ... 804
14.6 예외 넘기기(Throwing an Exception) ... 804
14.7 예외 붙잡기(Catching an Exception) ... 805
14.8 예외 처리 예제 : 0으로 나누기 ... 807
14.9 예외 다시 넘기기(Rethrowing an Exception) ... 813
14.10 throws 구문 ... 813
14.11 생성자(constructors), 파괴자와 예외 처리 ... 819
14.12 예외와 상속 ... 819
14.13 finally 블록 ... 820
14.14 printStackTrace와 getMessage의 사용 ... 825
15. 멀티쓰레딩 ... 833
15.1 소개 ... 834
15.2 Thread 클래스 : Thread의 메소드들 소개 ... 836
15.3 쓰레드 상태 : 쓰레드의 생명 주기 ... 837
15.4 우선 순위와 스케줄링 ... 838
15.5 쓰레드 동기화 ... 843
15.6 쓰레드 동기화가 없을 때 생산자/소비자 관계 ... 845
15.7 동기화된 쓰레드에서의 생산자/소비자 관계 ... 850
15.8 생산자/소비자 관계 : 순환 버퍼 ... 855
15.9 데몬 쓰레드 ... 865
15.10 Runnable interface ... 865
15.11 쓰레드 그룹 ... 871
15.12 (옵션 사례연구) 객체에 대한 생각 : 멀티쓰레딩 ... 873
15.13 (옵션) 설계 방식 알아보기 : 동시적 설계 방식 ... 881
16. 파일과 스트림 ... 890
16.1 소개 ... 891
16.2 자료 계층 구조 ... 891
16.3 파일과 스트림 ... 893
16.4 순차 접근 파일 만들기 ... 898
16.5 순차 접근 파일로부터 자료 읽기 ... 910
16.6 순차 접근 파일의 갱신 ... 922
16.7 임의 접근 파일 ... 923
16.8 순차 접근 파일 만들기 ... 923
16.9 임의 접근 파일의 특정 위치에 자료 쓰기 ... 929
16.10 임의 접근 파일에서 자료를 순서대로 읽기 ... 934
16.11 예제 : 거래 처리 프로그램 ... 939
16.12 File 클래스 ... 956
17. 네트워킹(Networking) ... 973
17.1 소개 ... 974
17.2 URI 다루기 ... 976
17.3 웹 서버로부터 파일 읽어 들이기 ... 981
17.4 스트림 socket을 이용한 간단한 서버의 구축 ... 985
17.5 스트림 socket을 이용한 간단한 클라이언트의 구축 ... 987
17.6 스트림 socket 연결 하에서의 클라이언트/서버 상호작용 ... 988
17.7 Datagram을 이용한 connectionless 클라이언트/서버 상호작용 ... 999
17.8 Multithread 서버를 이용한 클라이언트/서버 Tic-Tac-Toe ... 1007
17.9 보안과 네트워크 ... 1021
17.10 DeitelMessenger chat 서버와 클라이언트 ... 1022
17.10.1 DeitelMessengerServer와 필요한 클래스들 ... 1022
17.10.2 DeitelMessengerClient와 필요한 클래스들 ... 1032
17.11 (옵션) 설계 방식 알아보기 : java.io와 java.net 패키지에서 사용된 설계 방식 ... 1052
17.11.1 생산적 설계 방식(Creational Design Pattern) ... 1052
17.11.2 구조적 설계 방식(Structural Design Pattern) ... 1052
17.11.3 건축적 설계 방식(Architectural Design Pattern) ... 1054
17.11.4 결론 ... 1056
18. 멀티미디어 : 이미지, 애니메이션, 오디오와 비디오 ... 1064
18.1 소개 ... 1065
18.2 이미지를 읽어 들이고, 표시하고, 크기를 바꾸기 ... 1066
18.3 여러 장의 이미지를 애니메이션하기 ... 1069
18.4 Applet 파라미터를 통해 LogoAnimator를 Customize하기 ... 1073
18.5 이미지 맵 ... 1077
18.6 Audio Clip을 읽어 들여 재생하기 ... 1080
18.7 인터넷과 World Wide Web 자료 ... 1083
19. 자료구조 ... 1091
19.1 소개 ... 1092
19.2 자기 참조 클래스 ... 1093
19.3 동적 메모리 할당(dynamic memeory allocation) ... 1093
19.4 연결 리스트(linked list) ... 1094
19.5 스택(Stack) ... 1105
19.6 큐(Queue) ... 1110
19.7 트리(Tree) ... 1113
20. 자바 유틸리티 패키지와 비트 조작 ... 1144
20.1 소개 ... 1145
20.2 Vector 클래스와 Enumeration 인터페이스 ... 1145
20.3 Stack 클래스 ... 1153
20.4 Dictionary 클래스 ... 1157
20.5 Hashtable 클래스 ... 1158
20.6 Properties 클래스 ... 1165
20.7 Random 클래스 ... 1171
20.8 비트 조작과 비트 단위 연산자 ... 1172
20.9 BitSet 클래스 ... 1187
21. 집합체(Collections) ... 1198
21.1 소개 ... 1199
21.2 집합체 개관 ... 1200
21.3 Arrays 클래스 ... 1200
21.4 Collection 인터페이스와 Collections 클래스 ... 1205
21.5 리스트(List) ... 1205
21.6 알고리즘 ... 1212
21.6.1 정렬(sort) 알고리즘 ... 1212
21.6.2 섞기(shuffle) 알고리즘 ... 1214
21.6.3 역순(reverse), 채우기(fill), 복사(copy), 최대(max), 최소(min) 알고리즘 ... 1216
21.6.4 이진 검색(binarySearch) 알고리즘 ... 1218
21.7 셋(Set) ... 1220
21.8 맵(Map) ... 1223
21.9 동기화 포장체(Synchronization wrapper) ... 1225
21.10 변경불가 포장체(Unmodifiable wrapper) ... 1225
21.11 추상화 구현(Abstract Implementation) ... 1226
21.12 (옵션) 설계 방식 알아보기 : java.util 패키지에서 사용된 설계 방식 ... 1227
21.12.1 생산적 설계 방식(Creational Design Pattern) ... 1227
21.12.2 행동적 설계 방식(Behavioral Design Pattern) ... 1227
21.12.3 결론 ... 1228
22. 자바 미디어 프레임워크와 자바 사운드 ... 1234
22.1 소개 ... 1235
22.2 미디어 재생하기 ... 1236
22.3 캡쳐된 미디어의 포맷을 지정하고 저장하기 ... 1247
22.4 RTP 스트리밍 ... 1261
22.5 자바 사운드 ... 1277
22.6 샘플된 오디오를 재생하기 ... 1278
22.7 미디(Musical Instrument Digital Interface : MIDI) ... 1285
22.7.1 미디 재생하기 ... 1286
22.7.2 미디 녹음하기 ... 1292
22.7.3 미디 합성하기 ... 1296
22.7.4 MidiDemo 클래스 ... 1300
22.8 인터넷과 월드와이드웹(World Wide Web, WWW) 리소스들 ... 1316
22.9 (옵션 사례연구) 객체에 관해 생각해보기 : 뷰에서의 애니메이션과 사운드 ... 1317
A. 자바 데모들 ... 1347
A.1 소개 ... 1347
A.2 사이트들 ... 1347
B. 자바 자원들(Resources) ... 1350
B.1 자원들 ... 1350
B.2 제품들 ... 1352
B.3 FAQs ... 1352
B.4 강좌 ... 1352
B.5 잡지 ... 1353
B.6 자바 애플릿 ... 1353
B.7 Multimedia ... 1354
B.8 뉴스그룹 ... 1354
C. 연산자 우선순위 표 ... 1356
D. ASCII 문자 집합 ... 1358
E. 수체계 ... 1359
E.1 소개 ... 1360
E.2 2진수를 8진수와 16진수로 줄여 표현하는 법 ... 1363
E.3 8진수와 16진수를 2진수로 변환하는 법 ... 1364
E.4 2진수, 8진수, 16진수를 십진수로 변환하는 법 ... 1364
E.5 십진수를 2진수, 8진수, 16진수로 변환하는 법 ... 1365
E.6 음이 부호를 갖는 2진수 : 2의 보수 표기 ... 1366
F. javadoc을 이용한 HTML 문서 작성 ... 1373
F.1 소개 ... 1374
F.2 문서화 주석 ... 1374
F.3 자바 소스 코드의 문서화 ... 1374
F.4 javadoc ... 1383
F.5 javadoc에 의해 작성된 파일 ... 1383
G. 엘리베이터 이벤트와 Listener Interface ... 1388
G.1 소개 ... 1388
G.2 이벤트 ... 1388
G.3 Listeners ... 1392
G.4 요소 도표 개선 ... 1395
H. 엘리베이터 모델 ... 1397
H.1 소개 ... 1397
H.2 ElevatorModel 클래스 ... 1397
H.3 Location과 Floor 클래스 ... 1405
H.4 Door 클래스 ... 1408
H.5 Button 클래스 ... 1411
H.6 ElevatorShaft 클래스 ... 1413
H.7 Light와 Bell 클래스 ... 1420
H.8 Elevator 클래스 ... 1423
H.9 Person 클래스 ... 1433
H.10 요소 도표 개선 ... 1439
H.11 결론 ... 1439
I. 엘리베이터 뷰 ... 1441
I.1 소개 ... 1441
I.2 클래스 객체들 ... 1458
I.3 클래스 상수들 ... 1459
I.4 클래스 생성자 ... 1460
I.5 이벤트 처리 ... 1463
I.5.1 ElevatorMoveEvent 종류 ... 1463
I.5.2 PersonMoveEvent 종류 ... 1463
I.5.3 DoorEvent 종류 ... 1464
I.5.4 ButtonEvent 종류 ... 1465
I.5.5 BellEvent 종류 ... 1465
I.5.6 LightEvent 종류 ... 1465
I.6 컴포넌트 도표 추가 ... 1465
I.7 결론 ... 1466
J. 취업기회 ... 1467
J.1 소개 ... 1468
J.2 구직자를 위한 자원 ... 1469
J.3 고용주를 위한 온라인상의 기회 ... 1470
J.3.1 온라인에 취업정보 올리기 ... 1472
J.3.2 웹을 통한 직원모집의 문제점 ... 1474
J.3.3 근무공간의 다양성 ... 1474
J.4 사원모집 서비스 ... 1475
J.4.1 온라인에서 취업 희망자에 대한 시험 ... 1476
J.5 직업 사이트 ... 1477
J.5.1 포괄적인 직업 사이트 ... 1477
J.5.2 기술직 ... 1478
J.5.3 무선기술직 ... 1479
J.5.4 온라인 계약 ... 1479
J.5.5 임원직 ... 1480
J.5.6 학생 및 젊은 전문가 ... 1481
J.5.7 다른 온라인 구인 사이트 ... 1482
J.6 인터넷과 월드 와이드웹 상의 사이트들 ... 1483
K. 유니코드 ... 1492
K.1 소개 ... 1493
K.2 유니코드 변환 포맷 ... 1494
K.3 문자와 글리프 ... 1495
K.4 유니코드의 장단점 ... 1495
K.5 유니코드 컨소시엄 웹사이트 ... 1496
K.6 유니코드의 이용 ... 1497
K.7 문자 범위 ... 1499
찾아보기 ... 1504
닫기