Chapter 01 C 소개 닷넷 프레임워크 ... 28 차세대 언어 C ... 32 C의 작동원리 ... 34 닷넷 프레임워크와 Visual Studio, MS-SQL 설치하기 ... 35 Chapter 02 데이터와 연산자 C 식별자와 키워드 ... 38 변수와 상수 ... 40 문장과 블록(Statement and Block) ... 44 닷넷 프레임워크에서 지원되는 데이터형 ... 46 System.Object 클래스와 System.ValueType ... 54 연산자 ... 55 형변환 ... 65 주석 ... 68 쉬어가는 페이지 : C/C++ 이름의 비밀 ... 73 Chapter 03 제어문과 배열 제어문 ... 76 선택문 ... 77 반복문 ... 85 분기문 ... 92 배열 ... 97 Chapter 04 객체지향과 메서드 객체지향 개념 ... 114 메서드 ... 121 쉬어가는 페이지 : 영화 '접속' ... 129 Chapter 05 클래스 클래스 구성 요소 ... 132 접근 제한자 ... 144 정적 변수 및 메서드(Static variables and methods) ... 146 내포 클래스(Nested Class) ... 147 using과 this 키워드 ... 149 사용자 정의 데이터형 ... 154 쉬어가는 페이지 : 임베디드 ... 164 Chapter 06 클래스 상속 상속이란 ... 166 상속과 접근 한정자 ... 167 오버라이드와 base 키워드 ... 170 추상 클래스와 추상 메서드 ... 174 virtual 키워드와 가상 메서드 ... 175 override 사용하기 ... 176 sealed 클래스와 sealed 메서드 ... 178 인터페이스 ... 179 쉬어가는 페이지 : 알고리즘의 중요성 ... 186 Chapter 07 델리게이트, 이벤트, 어트리뷰트 델리게이트 ... 188 이벤트 처리 ... 194 어트리뷰트 ... 198 쉬어가는 페이지 : 프로그래밍 패러다임 ... 201 Chapter 08 고급 프로그래밍 주제 section 1 문자열 클래스 다루기 ... 205 String 클래스 ... 205 StringBuilder 클래스 ... 216 section 2 예외처리 다루기 ... 221 예외처리 개념 ... 221 예외처리 클래스 ... 222 예외처리 구문 활용 ... 223 section 3 파일과 디렉토리 ... 234 파일과 디렉토리 ... 234 디렉토리 정보 분석하기 ... 236 파일 정보 분석하기 ... 237 파일 검색 프로그램 만들기 ... 245 section 4 스트림 다루기 ... 250 스트림 개념 ... 250 스트림 관련 클래스 살펴보기 ... 252 암호화 처리 ... 259 section 5 스레드 다루기 ... 264 스레드란? ... 264 스레드 생성 방법 3가지 ... 267 프로세스 목록과 스레드 목록 알아내기 ... 272 스레드 클래스의 주요 메서드 ... 276 스레드 우선순위 ... 279 스레드 동기화 ... 282 Monitor 클래스를 이용한 동기화 처리 ... 285 Mutex 클래스를 이용한 동기화 처리 ... 288 Invoke 개념 이해하기 ... 289 Backgound 스레드와 스레드 콜백 다루기 ... 292 section 6 C 전처리기와 컬렉션 ... 297 C 전처리기 ... 297 컬렉션 다루기 ... 301 ArrayList 클래스 ... 306 SortedList와 Hashtable 클래스 ... 308 큐(Queue) 클래스 ... 311 스택(Stack) 클래스 ... 313 쉬어가는 페이지 : 프로그래밍 언어의 세대 구분 ... 315 Chapter 09 비주얼 C 프로그램 GDI+ section 1 WinForm 익히기 ... 320 윈폼(WinForm) 만들기 ... 325 Form 클래스 상속받아 윈도우 만들기 ... 326 이벤트 등록/해제 처리하기 ... 328 Partial Types 윈도우 작성 ... 330 비주얼 스튜디오 닷넷 IDE를 이용한 윈도우 작성 ... 333 SDI와 MDI 폼 다루기 ... 342 윈폼 종합 예제 ... 347 section 2 필수 구조체 ... 355 Point와 Size 구조체 ... 355 Rectangle 구조체 속성과 메서드 ... 360 Color 구조체 ... 363 section 3 Graphics 개체 사용하기 ... 369 Graphics 개체 얻기 ... 369 Graphics 클래스의 주요 메서드 ... 385 무효화 영역과 Invalidate() 메서드 ... 393 section 4 텍스트 출력, 폰트 사용하기 ... 400 텍스트와 글꼴 ... 400 Font 클래스 ... 401 FontFamily 클래스 ... 406 텍스트 출력하기 ... 412 section 5 펜과 브러시, 패스, 클리핑, Region ... 419 Pen 개체로 그리기 ... 419 Brush로 채우기 ... 427 GraphicsPath 클래스 ... 437 Region 클래스 ... 440 클리핑 ... 445 section 6 이미지와 비트맵 ... 451 비트맵 지원 ... 451 이미지 생성과 변환하기 ... 456 이미지 코덱(Codec) 정보 ... 458 이미지 처리하기 ... 460 애니메이션 ... 473 픽셀 단위 이미지 처리 ... 476 section 7 타이머 ... 479 타이머 클래스의 개요 ... 479 윈도우 기반 타이머 응용하기 ... 486 section 8 GDI+ 좌표 변환 ... 491 GDI+가 제공하는 좌표계 ... 491 영역 좌표계가 제공하는 변환 기능 ... 492 변환과 행렬 ... 501 section 9 마우스와 키보드 ... 505 마우스 정보 확인 ... 508 마우스 이벤트 처리 ... 507 마우스 커서 바꾸기 ... 513 마우스 휠 사용하기 ... 515 마우스 이벤트 응용 ... 516 키 이벤트 처리 ... 520 section 10 인쇄하기 ... 528 GDI+ 인쇄 관련 클래스 ... 528 인쇄 과정 ... 529 간단한 인쇄 프로그램 작성하기 ... 531 인쇄 미리보기의 처리 과정 ... 533 페이지 설정 사용하기 ... 535 프린터 설정하기 ... 537 인쇄 관련 클래스 응용하기 ... 538 section 11 버튼, 라벨, 스크롤, 컨테이너 클래스 ... 544 ButtonBase 클래스 ... 544 Label 클래스 ... 549 ScrollBar 클래스 ... 554 컨테이너 클래스 ... 558 Panel/FlowLayoutPanel 클래스 ... 559 TabControl/TableLayoutPanel 클래스 ... 561 Splitter/SplitContainer 클래스 ... 566 section 12 텍스트 박스, 리스트 박스, 콤보 박스, 스핀 컨트롤 ... 569 TextBoxBase 클래스 ... 569 ListBox 클래스 ... 576 ComboBox 클래스 ... 580 UpDownBase 클래스 ... 583 ToolTip 클래스 ... 586 section 13 대화상자 ... 589 모달과 모덜리스 대화상자 ... 589 공통 대화상자 ... 591 section 14 메뉴, 툴바, 상태바 컨트롤 ... 599 스트립 컨트롤 ... 599 MenuStrip 컨트롤 ... 600 ToolStrip 컨트롤 사용하기 ... 606 StatusStrip 컨트롤 ... 608 이전 방식으로 메뉴, 툴바, 상태바 만들기 ... 609 section 15 드래그 앤 드롭, 클립보드 ... 615 드래그 앤 드롭 ... 615 클립보드 ... 619 section 16 트리뷰와 리스트뷰 그리고 스플리터 ... 626 트리뷰 ... 626 리스트뷰 ... 630 스플리터 ... 635 파일 탐색기 만들기 ... 637 section 17 사용자 지정 컨트롤 작성하기 ... 641 사용자 지정 컨트롤 만들기 ... 641 폼 디자이너에서 사용자 지정 컨트롤 사용하기 ... 648 section 18 GDI+ 고급 활용 ... 650 이미지 처리 클래스 작성하기 ... 650 스크래치 프로그램 작성하기 ... 656 아바타 이미지 만들기 ... 660 사운드 재생하기 ... 667 쉬어가는 페이지 : 페르시안 왕자와 맥가이버 바이러스 ... 671 Chapter 10 ADO.NET 프로그램 ADO.NET 개요 ... 674 ADO.NET 관련 네임스페이스 ... 674 Data Provider ... 675 데이터베이스 연결(Connection) ... 676 데이터베이스 조작(Command) ... 682 데이터 가져오기(DataReader) ... 693 데이터 테이블, 칼럼, 로우 클래스 ... 698 DataView 클래스 ... 712 DataSet 클래스 살펴보기 ... 717 DataAdapter 클래스 살펴보기 ... 731 쉬어가는 페이지 : CPU 발전사 ... 740 Chapter 11 XML.NET XML이란 무엇인가? ... 742 XML의 기본 구조 ... 743 XML API 접근 방법 ... 745 XmlTextReader를 이용한 XML 데이터 읽기 ... 746 DOM 형식 문서를 읽어 들이는 XmlNodeReader ... 750 XML 문서의 유효성 검사 ... 752 XML 파일 생성하기 ... 756 XmlDocument 노드 검색 ... 758 XmlDocument를 이용해 XML 만들기 ... 760 XPath 관련 클래스 ... 762 XPathNavigator를 이용한 노드 검색 ... 764 쉬어가는 페이지 : 신기술이야기 ... 768 Chapter 12 네트워크 프로그래밍 section 1 네트워크 프로그래밍 ... 770 소켓 프로그래밍 입문 ... 770 소켓 사용하기 ... 783 연결 지향 소켓 프로그래밍 ... 790 비연결 소켓 프로그래밍 ... 800 C 헬퍼 클래스 ... 805 HTTP 다루기 ... 815 객체 직렬화 전송 ... 825 section 2 채팅 프로그램 작성하기 ... 832 채팅 프로그램의 기본 원리 ... 832 소켓 채팅 프로그램 ... 834 스트림 방식 채팅 프로그램 ... 848 헬퍼 클래스 방식 채팅 프로그램 ... 853 section 3 네트워크 응용 프로그램 ... 858 웹 브라우저 만들기 ... 858 해킹 감시 프로그램 작성하기 ... 862 웹 사이트 분석 프로그램 작성하기 ... 873 파일 전송 프로그램 만들기 ... 877 이모티콘 채팅 프로그램 만들기 ... 893 파일 전송 & 이모티콘 채팅 구현하기 ... 912 이모티콘 채팅 기반 다중 채팅 프로그램 ... 922 SMTP 프로토콜을 이용한 전자 메일 보내기 ... 937 쉬어가는 페이지 : 오픈 소스이야기 ... 945 Chapter 13 응용프로그래밍 section 1 P2P 프로그램 만들기 ... 950 P2P 프로젝트를 시작하며 ... 950 P2P 서버ㆍ클라이언트 기능 정의 및 데이터베이스 작성 ... 957 화면 디자인과 인터페이스 설계 ... 963 윈도우 레지스트리 사용하기 ... 967 P2P 메시지 규칙 설계 ... 971 파일 검색과 다운로드 기능 설계 ... 972 P2P 서버 프로그램 만들기 ... 976 P2P 클라이언트 프로그램 만들기 ... 982 추가적인 고려사항 ... 990 section 2 메신저 프로그램 만들기 ... 994 메신저 프로젝트를 시작하며 ... 994 메신저 기능 정의 ... 1004 메시지 규칙 정의 ... 1010 데이터베이스 설계 ... 1014 인터페이스 설계 ... 1017 메신저 서버 프로그램 작성 ... 1018 메신저 클라이언트 작성 ... 1058 추가적인 고려사항 ... 1103 인덱스 ... 1105