Week 1. 시작하면서 Day 1. Visual Basic .NET 소개 컴퓨터 프로그래밍 이해하기 ... 38 운영체제(Operating System)의 역할 ... 38 프로그래밍 언어의 역할 ... 40 왜 컴퓨터 프로그램을 작성하는가? ... 43 Visual Basic의 간략한 역사 ... 45 .NET이란 무엇인가? ... 47 .NET 서버 ... 48 .NET 프레임워크 ... 49 .NET 서비스 ... 50 .NET 디바이스 ... 51 첫 Visual Basic .NET 애플리케이션 만들기 ... 52 코딩 전에 준비하기 ... 52 내 IDE가 어디 있는가? ... 55 간단한 작업 ... 56 코드 작성하기 ... 57 요약 ... 63 Q & A ... 63 워크샵 ... 63 퀴즈 ... 64 연습문제 ... 64 Day 2. Visual Basic .NET 다루기 Visual Studio IDE ... 66 시작하기 ... 66 Visual Studio IDE 주요 윈도우들 ... 68 솔루션과 프로젝트 ... 87 파일들 ... 88 첫 번째 Windows 애플리케이션 만들기 ... 90 프로젝트 만들기 ... 90 사용자 인터페이스 개발하기 ... 90 프로젝트 실행하기 ... 92 프로젝트 빌드하기 ... 92 독자의 코드 추가하기 ... 95 요약 ... 97 Q & A ... 97 워크샵 ... 98 퀴즈 ... 98 연습문제 ... 98 Day 3. Visual Basic .NET 프로그래밍 소개 변수(Variable)와 할당(Assignment) ... 100 변수란 무엇인가? ... 100 사용 가능한 변수 타입 ... 100 간단한 변수 ... 101 변수 선언하기 ... 105 배열 ... 106 할당(Assignment) ... 108 상수 ... 108 네이밍 표준 제안 ... 109 간단한 계산 ... 110 연산자 사용하기 ... 111 내장 함수들 ... 111 자신만의 루틴 작성하기 ... 115 서브루틴(Subroutine) ... 116 함수(Function) ... 117 영역(Scope) ... 117 샘플 애플리케이션 : 예치금 계산하기 ... 119 요약 ... 125 Q & A ... 125 워크샵 ... 126 퀴즈 ... 126 연습문제 ... 127 Day 4. 프로그램 흐름 제어 제어 문장으로 흐름 선택하기 ... 130 If 문장 ... 131 If 문장 확장하기 ... 134 한 줄짜리 If 문장 ... 138 부울 수식과 부울 논리 ... 139 비교 연산 ... 139 논리 연산자 ... 141 단축 회로(Short-Circuiting) ... 142 다중 선택 처리하기 : Select Case 문장 ... 143 루프(Loop) ... 145 For...Next ... 145 While...End While ... 149 Do 루프 ... 151 탈출 조건 ... 152 무한 루프 ... 154 성능 향상 ... 154 지금까지 배운 지식 활용하기 ... 156 파일 읽기 ... 157 간단한 게임 ... 159 재귀 호출을 이용해서 복잡한 루프 피하기 ... 161 요약 ... 163 Q & A ... 164 워크샵 ... 164 퀴즈 ... 165 연습문제 ... 165 Day 5. .NET 애플리케이션 아키텍처 애플리케이션 아키텍처란 무엇인가? ... 168 소프트웨어 설계자의 역할 ... 168 시스템의 어떤 부분이 애플리케이션 아키텍처와 관련이 있는가? ... 169 .NET에서 가능한 아키텍처 ... 174 모든 애플리케이션에 들어가는 세 가지 요소 ... 174 얼마나 많은 티어를 사용할 것인가? ... 174 Windows DNA ... 175 .NET의 위치는 어디인가? ... 176 클라이언트 테크놀러지 선택하기 ... 177 사용할 아키텍처 결정하기 ... 180 결정에 영향을 미치는 핵심 요소들 ... 180 요약 ... 186 Q & A ... 187 워크샵 ... 187 퀴즈 ... 187 Day 6. 프로그램 오동작시 대처 방안과 오동작하지 않도록 만들기 구조화된 예외 처리 ... 190 구조화된 예외 처리란 무엇인가? ... 190 에러와 예외 ... 191 Try 블록 ... 191 Catch 섹션 ... 192 네스팅된 Try...End Try 블록 ... 198 Finally 섹션 ... 199 예외 일으키기 ... 200 디버깅 ... 201 버그의 출처 ... 201 디버깅 해보면서 배우기 ... 202 프로그램 개발 라이프의 모드 ... 206 코드를 한 단계씩 살펴보기 ... 208 변수 살펴보기 ... 211 다른 디버깅 툴 ... 126 요약 ... 217 Q & A ... 217 워크샵 ... 217 퀴즈 ... 218 연습문제 ... 218 Day 7. 오브젝트 다루기 오브젝트란 무엇인가? ... 222 클래스(Class)와 인스턴스(Instance) ... 222 레퍼런스(Reference) ... 223 코드에 새로운 개념 적용하기 ... 223 프로퍼티(Property) ... 225 읽기 전용 프로퍼티와 쓰기 전용 프로퍼티 ... 226 오브젝트 인스턴스 만들기 ... 227 클래스에 코드를 캡슐화하기 ... 229 고급 주제 ... 232 오버로드(Overload) ... 233 상속 ... 235 생성자 ... 241 네임스페이스 ... 242 공유 오브젝트와 멤버 ... 244 요약 ... 245 Q & A ... 246 워크샵 ... 246 퀴즈 ... 247 연습문제 ... 247 Week 1. 복습 Week 2. 시작하면서 Day 8. .NET 프레임워크 소개 .NET 프레임워크란? ... 254 .NET 프레임워크에서 중요한 클래스들 ... 255 Console ... 255 Environment ... 262 Random ... 263 Math ... 263 .NET 프레임워크의 컬렉션 클래스들 ... 264 .NET 프레임워크에서 필요한 것 찾기 ... 269 사냥의 규칙 ... 270 황금 클래스를 찾아서 ... 270 요약 ... 274 Q & A ... 274 워크샵 ... 275 퀴즈 ... 275 연습문제 ... 276 Day 9. Windows Form을 이용하여 사용자 인터페이스 만들기 Windows Form 살펴보기 ... 278 Windows Form 애플리케이션 생성하기 ... 279 프로젝트 시작하기 ... 279 폼에 컨트롤 추가하기 ... 280 컨트롤에 이름 붙이기 ... 281 이벤트 처리 ... 282 하나의 이벤트에 여러 이벤트 핸들러 생성하기 ... 284 코드 에디터를 사용하여 객체와 이벤트 찾기 ... 284 복수의 이벤트에 대한 하나의 이벤트 핸들러 ... 285 컨트롤에 대한 더 많은 사항들 ... 286 라디오 버튼 그룹 생성하기 ... 287 Filer 예제에 Check Box 추가하기 ... 289 입력 유효성 검사 ... 291 MessageBox 클래스 사용하기 ... 294 파라미터 ... 295 결과 얻기 ... 296 보이지 않는 컨트롤 ... 299 Timer ... 300 NotifyIcon ... 302 ErrorProvider ... 302 대화상자 컨트롤(Dialog Controls) ... 303 여러분만의 대화상자 제작하기 ... 308 대화상자 생성하기 ... 308 대화상자 결과 설정하기 ... 309 대화상자 보여주기 ... 311 요약 ... 313 Q & A ... 313 워크샵 ... 314 퀴즈 ... 314 연습문제 ... 314 Day 10. 웹 폼을 이용하여 사용자 인터페이스 만들기 웹 프로그래밍 모델 ... 318 ASP.NET ... 319 웹 기반 프로그램이 Windows 기반 프로그램과 다른 점 ... 320 표준 웹 폼 컨트롤 사용하기 ... 322 고급 웹 폼 컨트롤 사용하기 ... 331 Validator 컨트롤 사용하기 ... 333 요약 ... 338 Q & A ... 338 워크샵 ... 339 퀴즈 ... 339 연습문제 ... 339 Day 11. 데이터베이스 소개 데이터베이스는 모든 삶의 문제에 대한 해결책이다 ... 342 결정을 하다 ... 342 진정한 데이터베이스로의 이동 ... 344 SQL 소개 ... 344 SELECT 문으로 레코드 가져오기 ... 345 새 레코드 추가하기 ... 347 레코드 수정하기 ... 348 원하지 않는 레코드 삭제하기 ... 349 SQL을 안 다음엔 어디로 가야 하나 ... 349 공통된 데이터베이스의 문제와 해결책 ... 350 모순된 데이터 갱신하기 ... 351 다중 값을 갖는 필드 ... 355 조인 : 한번에 복수의 테이블 쿼리하기 ... 356 참조 무결성 ... 359 기본키 생성하기 ... 359 예제 데이터베이스 생성하기 ... 362 필요한 파일을 다운로딩 받기 ... 363 Access 2000 또는 Access 2002 ... 364 MSDE와 SQL 서버 2000 ... 364 System.Data로 설치 테스트하기 ... 364 요약 ... 367 Q & A ... 367 워크샵 ... 368 퀴즈 ... 368 연습문제 ... 369 Day 12. .NET으로 데이터 접근하기 .NET 데이터 접근 아키텍처 개관 ... 372 ADO와 OLEDB ... 372 ADO.NET ... 373 표준 데이터베이스 작업 ... 375 데이터베이스에 연결하기 ... 375 SQL 문 실행하기 ... 380 데이터 가져오기 ... 381 Data Set으로 작업하기 ... 383 DataSet으로 데이터 불러오기 ... 384 데이터 항해하기(Navigating Data) ... 387 데이터 수정하기(추가, 수정, 삭제) ... 390 데이터베이스 갱신하기 ... 396 복수의 테이블 작업하기 ... 408 뷰 ... 410 데이터 바인딩 ... 412 Windows Form과의 데이터 바인딩 ... 413 요약 ... 417 Q & A ... 417 워크샵 ... 418 퀴즈 ... 418 연습문제 ... 418 Day 13. 서버 탐색기 사용하기 서버 탐색기란? ... 420 서비스란? ... 421 서비스 탐색하기 ... 421 데이터 연결 ... 422 데이터베이스에 연결하기 실습 ... 426 서비스로 작업하기 ... 427 서비스 보기 ... 427 다른 서버에 연결하기 ... 429 서비스를 이용하는 프로그램 작성하기 ... 429 서버 탐색기로 데이터 접근 코드 작성하기 ... 430 성능 카운터와 이벤트 로그 접근하기 ... 433 요약 ... 443 Q & A ... 443 워크샵 ... 444 퀴즈 ... 444 연습문제 ... 444 Day 14. 객체지향 프로그램 소개 객체지향 프로그래밍 개관 ... 446 객체지향과 선형(linear) 방식의 비교 ... 446 코드 조직화를 위해 오브젝트 사용하기 ... 449 OOP에서 중요한 개념 ... 450 클래스(Class), 오브젝트(Object), 인스턴스(Instance) ... 450 프로퍼티 ... 452 메소드(method) ... 453 상속(Inheritance) ... 454 생성자(Constructors) ... 459 OOP를 사용하여 애플리케이션 설계하기 ... 462 오브젝트 정의하기 ... 462 프로퍼티와 메소드 정하기 ... 464 오브젝트 모델링하기 ... 465 요약 ... 466 Q & A ... 466 워크샵 ... 467 퀴즈 ... 467 연습문제 ... 467 Week 2. 복습 Week 3. 시작하면서 Day 15. Visual Basic .NET에서 오브젝트 만들기 오브젝트 만들기 ... 476 Visual Basic .NET에서 새로운 클래스 선언하기 ... 476 프로퍼티 추가하기 ... 478 메소드 만들기 ... 486 이벤트 추가하기 ... 492 인터페이스를 정의하고 사용하기 ... 494 만든 오브젝트 사용하기 ... 503 네임스페이스(Namespaces) ... 504 라이브러리 DLL 만들고 사용하기 ... 506 요약 ... 507 Q & A ... 507 워크샵 ... 508 퀴즈 ... 508 연습문제 ... 509 Day 16. 고급 Windows Form 메뉴 ... 512 폼에 메뉴 추가하기 ... 512 키보드와 메뉴 ... 514 코드 추가하기 ... 516 약간의 제안 ... 518 다중 문서 인터페이스 프로그램 ... 519 다중 문서 인터페이스란 무엇인가? ... 519 부모 폼 추가하기 ... 520 MDI와 메뉴 ... 521 고급 Windows Form 컨트롤 ... 529 TreeView ... 529 ListView ... 533 Splitters ... 535 요약 ... 543 Q & A ... 543 워크샵 ... 544 퀴즈 ... 544 연습문제 ... 544 Day 17. .NET 프레임워크 사용하기 스트림과 파일 ... 546 스트림이란 무엇인가? ... 546 파일과 디렉토리 ... 547 텍스트 파일 읽기 ... 549 텍스트 파일에 쓰기 ... 550 그래픽 클래스를 사용해서 그리기 ... 566 그래픽 클래스 보기 ... 566 어디에 그릴 수 있을까? ... 574 도형 그리기 ... 579 그림 저장하기 ... 583 요약 ... 586 Q & A ... 586 워크샵 ... 587 퀴즈 ... 588 연습문제 ... 588 Day 18. 마지막으로 손보기 여러분의 애플리케이션에 대해 문서 만들기 ... 590 가장 간단한 해결책을 만들어라 ... 591 가정을 하지 말자 ... 594 명백한 코드를 두고, 혼란스러운 코드에만 주석을 써라 ... 595 단지, 여러분의 코드가 아닌 시스템에 대한 문서를 만들어라 ... 595 최선 관행(Best Practices)과 코딩 표준 ... 598 변수, 컨트롤, 오브젝트 이름 ... 598 주석 블록 ... 600 소스 코드 컨트롤 사용하기 ... 602 체크아웃 ... 603 체크인 ... 607 변경사항 확인, 되돌리기 ... 607 비주얼 소스 세이프를 사용하는데 있어서 보안상의 고려점 ... 609 요약 ... 609 Q & A ... 609 워크샵 ... 610 퀴즈 ... 610 Day 19. 애플리케이션 배포하기 배포에 대한 소개 ... 612 간단한 설치 파일 만들기 ... 614 설정 파일 ... 622 다중 프로젝트 배포 ... 623 요약 ... 627 Q & A ... 627 워크샵 ... 628 퀴즈 ... 628 연습문제 ... 628 Day 20. XML 소개 XML이란? ... 630 요소(Element) ... 634 속성(Attribute) ... 635 스키마(Schema) ... 636 XML을 가지고 작업하기 ... 638 DOM ... 639 Readers와 Writers ... 643 XML 읽기 ... 645 XML 작성 ... 649 요약 ... 652 Q & A ... 652 워크샵 ... 654 퀴즈 ... 654 연습문제 ... 654 Day 21. Visual Basic .NET으로 웹 서비스 만들기 웹 서비스란 무엇인가? ... 656 SOAP(Simple Object Access Protocol) ... 658 프로토콜 ... 658 WSDL : 웹 서비스 서술 언어 ... 659 Discovery ... 662 간단한 Web Service 만들기 ... 663 프로젝트 만들기 ... 664 코드 추가하기 ... 667 web Service 컴파일 ... 669 Web Service 클라이언트 만들기 ... 671 프로젝트 만들기 ... 671 코드 추가하기 ... 672 좀 더 복잡한 Web Service ... 675 서비스 만들기 ... 676 Web Service 테스트 ... 679 클라이언트 만들기 ... 681 코드 추가하기 ... 684 요약 ... 688 Q & A ... 688 워크샵 ... 689 퀴즈 ... 689 연습문제 ... 689 Week 3. 복습 부록 A. 퀴즈/연습문제의 답 ... 693 찾아보기 ... 731