<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=118.36.59.4</id>
	<title>ZeroWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=118.36.59.4"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php/Special:Contributions/118.36.59.4"/>
	<updated>2026-05-14T19:04:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=MFC%2B%2B&amp;diff=34380</id>
		<title>MFC++</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=MFC%2B%2B&amp;diff=34380"/>
		<updated>2017-02-18T17:00:35Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* &#039;&#039;&#039;M&#039;&#039;&#039;astering &#039;&#039;&#039;F&#039;&#039;&#039;urther &#039;&#039;&#039;C++&#039;&#039;&#039;&lt;br /&gt;
** --Mxxxxx Fxxxxxx C++...--&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
* 진행 방식은 과거 [[미시Cpp]]를 벤치마킹(?)해서 진행합니다.&lt;br /&gt;
** 즉, 주마다 특정 주제 내용을 소개하는 방식으로 진행됩니다.&lt;br /&gt;
* 진행 스타일은 과거 [[CS]] 스터디와 동일합니다.&lt;br /&gt;
** --템플릿도 그냥 복사해서...--&lt;br /&gt;
&lt;br /&gt;
* 2016년 2학기 시작 직후부터 시작합니다.&lt;br /&gt;
* 되도록이면 수요일 정모 직후, 7시에서 9시까지 진행합니다.&lt;br /&gt;
** 주마다 진행 요일이 불가피하게 바뀌어야 할 수도 있습니다.&lt;br /&gt;
&lt;br /&gt;
* 진행에 사용되는 소스 코드는 해당 레포지토리에 있습니다.&lt;br /&gt;
** [https://github.com/nErumin/MFCplusplusSource]&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* 기반 C++ 내용에 대해서는 거의 생략할 예정이므로, 대체적으로 이미 C++을 공부해본 경험이 있으신 편이 좋습니다.&lt;br /&gt;
* 참가하실 분은 아래 이름을 적어주세요!&lt;br /&gt;
* [[신형철]], [[박인서]], ~~프로 도강러~~[[성훈]]&lt;br /&gt;
== 목표 ==&lt;br /&gt;
* C++ 돌아보기 --돌아보는 척 하면서 더 낯설게 만들기--&lt;br /&gt;
* C++11과 C++14의 내용 숙지&lt;br /&gt;
* 흔한 C++ 프로그래밍 실수 방지하기&lt;br /&gt;
* C++에서의 동시성 활용하기&lt;br /&gt;
&lt;br /&gt;
== 참고 ==&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.lafejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788945072207&amp;amp;orderClick=LAG&amp;amp;Kc=|C++ Primer 5th Edition]&lt;br /&gt;
** 기본 바탕은 이 책을 기준으로 합니다.&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9791195444946&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956743998&amp;amp;orderClick=LAH&amp;amp;Kc=|More Effective C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788966261642&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective Modern C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956743110&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective STL]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewEng.laf?ejkGb=BNT&amp;amp;mallGb=ENG&amp;amp;barcode=9781933988771&amp;amp;orderClick=LAG&amp;amp;Kc=|C++ Concurrency In Action]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788980545063&amp;amp;orderClick=LAG&amp;amp;Kc=|Exceptional C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788955507904&amp;amp;orderClick=LAG&amp;amp;Kc=|More Exceptional C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956742618&amp;amp;orderClick=LAG&amp;amp;Kc=|Exceptional C++ Style]&lt;br /&gt;
* 그 외 위키피디아와 C++ 레퍼런스 사이트 등&lt;br /&gt;
&lt;br /&gt;
== 진행 내용 ==&lt;br /&gt;
* [[MFC++/9월7일]]&lt;br /&gt;
* [[MFC++/10월5일]]&lt;br /&gt;
* MFC++/11월2일&lt;br /&gt;
* MFC++/11월9일&lt;br /&gt;
* MFC++/11월30일&lt;br /&gt;
* MFC++/1월4일&lt;br /&gt;
* MFC++/1월11일&lt;br /&gt;
* MFC++/1월18일&lt;br /&gt;
* MFC++/2월1일&lt;br /&gt;
* MFC++/2월15일&lt;br /&gt;
&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* Chapter 1. 변수와 타입&lt;br /&gt;
** #1. 산술 타입&lt;br /&gt;
** = 부동소수점 연산 시에는 정밀도 손실을 항상 경계하자.&lt;br /&gt;
** = (지나가는) long long의 숨겨진 이야기&lt;br /&gt;
** #2. 문자 타입&lt;br /&gt;
** = char, signed char, unsigned char를 구분하자.&lt;br /&gt;
** = 때로는 다양한 문자 표현들을 고려하자.&lt;br /&gt;
** = 필요하다면 이스케이프 시퀀스는 무시하자.&lt;br /&gt;
** #3. 내장 타입 간 형변환&lt;br /&gt;
** = 타입의 범위를 넘어가는 값 대입은 예상처럼 작동할 수도, 그렇지 않을 수도 있다.&lt;br /&gt;
** = 부호 있는 타입과 부호 없는 타입을 섞어쓰는 표현식은 항상 경계하자.&lt;br /&gt;
** #4. 상수&lt;br /&gt;
** = 다양한 상수 표기를 활용하자.&lt;br /&gt;
** #5. 초기화와 분리 컴파일&lt;br /&gt;
** = 초기화와 대입의 의미를 구분하자.&lt;br /&gt;
** = 기존의 초기화 방식과 목록 초기화 방식의 차이점을 숙지하자.&lt;br /&gt;
** = 변수의 선언과 정의를 구분하자.&lt;br /&gt;
** #6. 복합 타입&lt;br /&gt;
** = 참조자의 의미를 돌아보자.&lt;br /&gt;
** = 포인터의 의미를 돌아보자.&lt;br /&gt;
** = 복합 타입과 바탕 타입을 형식으로써 섞어 사용하지 말자.&lt;br /&gt;
** = 널 포인터를 표현하고 싶을 때 선택할 수 있는 것은 딱 하나뿐이다.&lt;br /&gt;
** = 참조자와 포인터를 구분해서 사용하자.&lt;br /&gt;
** #7. const와 constexpr&lt;br /&gt;
** = 초기화와 const의 관계를 파악하자.&lt;br /&gt;
** = const 변수를 여러 파일에서 공유하려 할 때는 주의하자.&lt;br /&gt;
** = 상위 const와 하위 const를 구분하자.&lt;br /&gt;
** = 적합하다면, constexpr을 항상 곁에 두자.&lt;br /&gt;
** #8. auto와 decltype&lt;br /&gt;
** = auto의 동작 원리를 파악하자.&lt;br /&gt;
** = decltype의 동작 원리를 파악하자.&lt;br /&gt;
** #9. 나머지 이야기&lt;br /&gt;
** = 타입 별칭을 사용할 때는 별칭 선언을 사용하자.&lt;br /&gt;
** = 상황에 따라서는 변수도 일반화해서 정의해보자.&lt;br /&gt;
** = (지나가는) 코드를 분석해보자.&lt;br /&gt;
** = (지나가는) 키워드는 왜 식별자로 사용이 불가능할까?&lt;br /&gt;
** = (지나가는) 내장 bool 타입은 꼭 필요한걸까?&lt;br /&gt;
** = (지나가는) C 라이브러리와 C++ 버전 라이브러리의 차이는 무엇일까?&lt;br /&gt;
&lt;br /&gt;
* Chapter 2. 문자열과 배열, 벡터&lt;br /&gt;
** #1. string&lt;br /&gt;
** = 유니코드에 맞는 string을 사용하자.&lt;br /&gt;
** = string 생성자 종류와 string 연산들의 종류를 대략적으로 알아두자.&lt;br /&gt;
** = 문자 제어에 도움이 되는 함수들을 알아두자.&lt;br /&gt;
** = string을 스트림을 통해 읽어들일 때, istream/getline 간 차이를 파악하자.&lt;br /&gt;
** = size_t, size_type 등의 typedef 타입들의 의미를 파악하자.&lt;br /&gt;
** = C-Style String은 가급적이면 사용하지 말자.&lt;br /&gt;
** #2. 배열&lt;br /&gt;
** = 포인터 타입과 배열 타입 간 형식 연역 차이를 파악하자.&lt;br /&gt;
** = 포인터를 배열에 대한 반복자로 생각하자.&lt;br /&gt;
** #3. 벡터&lt;br /&gt;
** = 벡터 생성자 종류와 벡터 연산들의 종류를 대략적으로 파악하자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 3. 표현식과 문장, 함수&lt;br /&gt;
** #1. 변환과 캐스팅&lt;br /&gt;
** = (지나가는) 산술 타입 간 암시적 변환과 정수 승격 기준을 알아보자.&lt;br /&gt;
** = C++ 스타일의 캐스팅을 사용하자.&lt;br /&gt;
** #2. 함수&lt;br /&gt;
** = 자동 객체와 지역 static 객체를 돌아보자.&lt;br /&gt;
** = const와 함수 매개변수의 관계에 조심하자.&lt;br /&gt;
** = 배열 매개변수를 선언하는 다양한 방법을 파악하자.&lt;br /&gt;
** = initializer_list를 사용해서 가변 매개변수를 흉내내보자.&lt;br /&gt;
** = (지나가는) 함수에서 배열 타입을 반환해보자.&lt;br /&gt;
** = 후행 반환 타입을 통해 함수를 정의해보자.&lt;br /&gt;
** = 반환 타입 유추가 필요할 땐 auto를 사용하자.&lt;br /&gt;
** = const_cast가 함수 속에서 유용하게 쓰이는 경우를 알아두자.&lt;br /&gt;
** = 매개변수에 기본 값이 필요하다면 기본 인자를 선언해보자.&lt;br /&gt;
** = inline 지정은 만능이 아님을 알아두자.&lt;br /&gt;
** = 함수 일치 과정을 파악하자.&lt;br /&gt;
** = 함수가 예외를 던지지 않는다면 noexcept로 선언하자.&lt;br /&gt;
** = 예외 명세는 가급적 사용하지 말자.&lt;br /&gt;
** #3. 이런저런 이야기&lt;br /&gt;
** = switch 레이블에서 초기화 우회를 조심하자.&lt;br /&gt;
** = 피연산자 평가 순서에 조심하자.&lt;br /&gt;
** = sizeof 연산자를 돌아보자.&lt;br /&gt;
** = 디버깅에 도움이 되는 도구들을 알아두자.&lt;br /&gt;
** = 가급적이면 auto를 선호하자.&lt;br /&gt;
** = auto 형식 추론이 예상치 않은 타입일 경우 캐스팅을 활용하자.&lt;br /&gt;
** = 매크로보다는 상수나 inline이 낫다.&lt;br /&gt;
** = (지나가는) 캐스팅 퀴즈&lt;br /&gt;
&lt;br /&gt;
* Chapter 4. 클래스&lt;br /&gt;
** #1. 멤버 함수&lt;br /&gt;
** = this의 정체를 파악하자.&lt;br /&gt;
** = const 멤버 함수의 배경과 this의 관계를 알아두자.&lt;br /&gt;
** = 멤버 함수 정의와 inline과의 관계를 파악하자.&lt;br /&gt;
** = 클래스는 새로운 유효 범위를 형성한다.&lt;br /&gt;
** = 클래스에 대해 컴파일러가 이름 검색을 하는 과정을 알아두자.&lt;br /&gt;
** = 멤버 함수에 대해 컴파일러가 이름 검색을 하는 과정을 알아두자. &lt;br /&gt;
** #2. 생성자&lt;br /&gt;
** = 생성자와 const 객체의 관계를 파악하자.&lt;br /&gt;
** = 명시적으로 합성 멤버를 원한다면 default를 명시하자.&lt;br /&gt;
** = 멤버 변수의 초기화 값이 선택되는 순서를 알아두자.&lt;br /&gt;
** = 생성자 초기화 리스트 내에서 멤버의 초기화 순서에 주의하자.&lt;br /&gt;
** = 위임 생성자를 활용하자.&lt;br /&gt;
** = 생성자 선언 시에는 변환 생성자에 항상 주의해야 한다.&lt;br /&gt;
** #3. 다양한 클래스들&lt;br /&gt;
** = 집합 클래스에 대해 알아보자.&lt;br /&gt;
** = 상수 클래스에 대해 알아보자.&lt;br /&gt;
** #4. 클래스와 정적 멤버&lt;br /&gt;
** = 정적 멤버의 선언과 정의, 사용 방법을 알아두자.&lt;br /&gt;
** #5. 프렌드&lt;br /&gt;
** = 클래스 간의 프렌드 관계를 파악하자.&lt;br /&gt;
** = 프렌드 선언과 함수와의 관계를 파악하자.&lt;br /&gt;
** = friend 선언과 일반적인 선언은 차이가 있음을 알아두자.&lt;br /&gt;
** #5. 이런저런 이야기&lt;br /&gt;
** = 클래스 멤버의 mutable 속성에 대해서 알아두자.&lt;br /&gt;
** = const 멤버 함수가 상수성을 반드시 보장하지 않음을 명심하자.&lt;br /&gt;
** = 형식 정의 시 class와 struct 키워드의 차이를 알아두자.&lt;br /&gt;
** = 기본 생성자의 존재 여부는 가볍게 볼 것이 아니다.&lt;br /&gt;
** = 물리적인 const와 논리적인 const를 구별하자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 5. I/O와 C++&lt;br /&gt;
** #1. 라이브러리&lt;br /&gt;
** = 표준 라이브러리 I/O 객체의 종류와 구성 방식을 알아보자.&lt;br /&gt;
** = 표준 라이브러리 I/O 객체의 특징을 알아보자.&lt;br /&gt;
** #2. I/O와 조건 상태와 버퍼 관리&lt;br /&gt;
** = 스트림과 조건식과의 관계를 파악하자.&lt;br /&gt;
** = 스트림의 상태를 점검해보자!&lt;br /&gt;
** = 스트림을 서로 묶어서 버퍼를 관리해보자.&lt;br /&gt;
** #3. 파일 I/O&lt;br /&gt;
** = 파일 스트림 객체의 사용법을 다시 돌아보자.&lt;br /&gt;
** = 파일 스트림을 여는 여러가지 방식을 정리해보자.&lt;br /&gt;
** #4. 문자열 I/O&lt;br /&gt;
** = 문자열 스트림 객체의 사용법을 다시 돌아보자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 6. 순차 컨테이너&lt;br /&gt;
** #1. 순차 컨테이너 개관&lt;br /&gt;
** = 사용 가능한 순차 컨테이너의 종류를 알아보자.&lt;br /&gt;
** = 컨테이너의 공통적인 연산의 종류에 대해 알아보자.&lt;br /&gt;
** = 반복자 범위에 대해서 알아보자.&lt;br /&gt;
** #2. 순차 컨테이너 연산&lt;br /&gt;
** = 순차 컨테이너에 대한 assign과 swap 연산에 대해 알아보자.&lt;br /&gt;
** = 순차 컨테이너에 대한 요소 삽입/접근/삭제에 대해 알아보자.&lt;br /&gt;
** = 반복자 무효화에 대해 항상 조심하자.&lt;br /&gt;
** = vector/string에서의 capacity와 size를 구분하자.&lt;br /&gt;
** #3. Advanced String&lt;br /&gt;
** = string 객체를 생성하는 더 많은 방법을 알아보자.&lt;br /&gt;
** = string의 내용을 더 다양하게 조작해보자.&lt;br /&gt;
** = string 검색과 비교에 대해 알아보자.&lt;br /&gt;
** = string과 수치 변환에 대해 알아보자.&lt;br /&gt;
** #4. 컨테이너 어댑터&lt;br /&gt;
** = 컨테이너 어댑터의 공통적인 연산의 종류에 대해 알아보자.&lt;br /&gt;
** = 스택/큐 연산에 대해 알아보자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 7. 일반화 알고리즘&lt;br /&gt;
** #1. 일반화 알고리즘 개관&lt;br /&gt;
** = 알고리즘과 반복자, 알고리즘과 컨테이너 사이의 관계를 알아보자.&lt;br /&gt;
** #2. 일반화 알고리즘의 분류&lt;br /&gt;
** = 요소 읽기 알고리즘에 대해 알아보자.&lt;br /&gt;
** = 요소 기록 알고리즘에 대해 알아보자.&lt;br /&gt;
** = 요소 정렬 알고리즘에 대해 알아보자.&lt;br /&gt;
** = 수많은 알고리즘을 이름에 따라 분류해보자.&lt;br /&gt;
** = 알고리즘들의 매개변수 패턴에 대해 알아보자.&lt;br /&gt;
** #3. 람다 표현식&lt;br /&gt;
** = 알고리즘과 술어 함수와의 관계를 알아보자.&lt;br /&gt;
** = 함수 호출성 객체, 펑터(Functor)에 대해 알아보자.&lt;br /&gt;
** = 람다 표현식의 형식을 살펴보자.&lt;br /&gt;
** = 일반적 람다에 대해 알아보자.&lt;br /&gt;
** = 갈무리 목록의 사용 형식들에 대해 알아보자.&lt;br /&gt;
** #4. 함수 바인딩&lt;br /&gt;
** = 함수 어댑터 역할을 하는 bind에 대해 알아보자.&lt;br /&gt;
** = 함수 바인딩에 쓰이는 Placeholder에 대해 알아보자.&lt;br /&gt;
** = 함수 바인딩에 유용한 functional 함수들을 알아두자.&lt;br /&gt;
** #5. 반복자&lt;br /&gt;
** = 특수한 반복자의 종류에 대해 알아보자.&lt;br /&gt;
** = 삽입 반복자, inserter 반복자에 대해 알아보자.&lt;br /&gt;
** = 스트림 반복자에 대해서 알아보자.&lt;br /&gt;
** = 역방향 반복자에 대해서 알아보자.&lt;br /&gt;
** = 반복자 범주와 알고리즘과의 관계를 알아보자.&lt;br /&gt;
** #6. 컨테이너 특수화 알고리즘&lt;br /&gt;
** = 리스트에 특화되어 있는 알고리즘 함수들을 살펴보자.&lt;br /&gt;
** #7. 이런저런 이야기&lt;br /&gt;
** = 람다 내에서 암묵적으로 갈무리하는 것을 피하자.&lt;br /&gt;
** = 함수 바인딩보다는 람다를 선호하자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 8. 연관 컨테이너&lt;br /&gt;
** #1. 연관 컨테이너 개관&lt;br /&gt;
** = 연관 컨테이너의 종류에 대해 알아보자.&lt;br /&gt;
** = pair 객체에 대해 알아보자.&lt;br /&gt;
** = 연관 컨테이너의 키 타입 조건을 알아보자.&lt;br /&gt;
** #2. 연관 컨테이너 연산&lt;br /&gt;
** = 연관 컨테이너에 정의된 추가 타입 별칭들을 알아보자.&lt;br /&gt;
** = 연관 컨테이너와 반복자의 관계를 알아보자.&lt;br /&gt;
** = 연관 컨테이너와 알고리즘과의 관계를 알아보자.&lt;br /&gt;
** = 연관 컨테이너에 요소를 추가/삭제해보자.&lt;br /&gt;
** = 연관 컨테이너 요소에 접근해보자.&lt;br /&gt;
** #3. 순서 없는 컨테이너&lt;br /&gt;
** = 순서 없는 컨테이너가 요소를 저장하는 방법에 대해 알아보자.&lt;br /&gt;
** = 버킷을 관리하고 조회하는 함수들에 대해 알아보자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 9. 효율적이고 안전한 STL&lt;br /&gt;
** #1. 더 폭넓은 이해를 위해&lt;br /&gt;
** = STL 동작의 대부분은 결국 복사임을 파악하자.&lt;br /&gt;
** = string이 라이브러리마다 전부 똑같은 string은 아님을 이해하자.&lt;br /&gt;
** = bool에 대한 vector는 STL 요소가 아님을 파악하자.&lt;br /&gt;
** = 컨테이너 일반화 코드가 아닌, 캡슐화를 이용하자.&lt;br /&gt;
** = C와 vector/string의 호환성에 대해 알아보자.&lt;br /&gt;
** = STL 컨테이너와 Thread-Safety의 관계를 파악하자. (x)&lt;br /&gt;
** = 상등성과 동등성을 구분해서 생각하자. (x)&lt;br /&gt;
** = STL 속 allocator 할당자의 기원과 사용법을 알아보자. (x)&lt;br /&gt;
** #2. 더 빠른 코드를 위해&lt;br /&gt;
** = empty 멤버 함수는 괜히 있는 것이 아니다.&lt;br /&gt;
** = 요소보다는 범위에 초점을 맞추자.&lt;br /&gt;
** = reserve로 잦은 메모리 할당을 피하자.&lt;br /&gt;
** #3. 더 안전한 코드를 위해&lt;br /&gt;
** = 동적 배열보다는 컨테이너를 사용하자.&lt;br /&gt;
** = 컨테이너 요소 삭제 시에는 항상 경계할 필요가 있다. (x)&lt;br /&gt;
** #4. 더 나은 최적화를 위해&lt;br /&gt;
** = 적합한 때에 적합한 컨테이너를 사용하자. (x)&lt;br /&gt;
** = shrink_to_fit 멤버 함수에 걸맞는 방법을 알아보자.&lt;br /&gt;
** = 알고리즘 함수로 해결 가능한 문제에 대해 루프로 풀어서 작성하지 말자. (x)&lt;br /&gt;
&lt;br /&gt;
* Chapter 10. 동적 메모리 관리&lt;br /&gt;
** #1. 스마트 포인터&lt;br /&gt;
** = 스마트 포인터와 그 종류에 대해 알아보자.&lt;br /&gt;
** = shared_ptr, unique_ptr의 공통적 연산에 대해 알아보자.&lt;br /&gt;
** = shared_ptr의 연산에 대해 알아보자.&lt;br /&gt;
** = unique_ptr의 연산에 대해 알아보자.&lt;br /&gt;
** = weak_ptr의 연산에 대해 알아보자.&lt;br /&gt;
** #2. 직접적인 객체 할당과 해제&lt;br /&gt;
** = new를 통해서 자유 공간에 객체를 동적으로 할당해보자.&lt;br /&gt;
** = delete를 통해서 동적으로 할당한 객체를 해제해보자.&lt;br /&gt;
** = 스마트 포인터 초기화에 new를 사용할 수 있는 방법을 알아보자.&lt;br /&gt;
** = 스마트 포인터와 일반적인 포인터의 논리를 섞어쓰지 말자.&lt;br /&gt;
** #3. 배열의 동적 할당과 해제&lt;br /&gt;
** = new를 통해서 배열을 동적으로 할당해보자.&lt;br /&gt;
** = delete를 통해서 배열을 할당 해제해보자.&lt;br /&gt;
** = 스마트 포인터로 배열을 동적으로 관리해보자.&lt;br /&gt;
** #4. 저수준 메모리 관리&lt;br /&gt;
** = 메모리 할당을 위한 allocator 클래스에 대해 알아보자.&lt;br /&gt;
** = 미초기화 메모리에 대한 객체 생성을 도와주는 알고리즘을 알아보자.&lt;br /&gt;
** #5. 이런저런 이야기&lt;br /&gt;
** = 유용한, 때로는 필수적인 RAII 기법에 대해 알아보자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 11. 복사와 이동&lt;br /&gt;
** #1. 복사와 대입&lt;br /&gt;
** = 직접 초기화와 복사 초기화를 알아보자.&lt;br /&gt;
** = 컴파일러의 복사 최적화가 일어날 수 있음을 알자.&lt;br /&gt;
** = 대입 연산자의 표준 관행을 알아보자.&lt;br /&gt;
** = 복사 대입 연산자는 자가 대입에, 예외에 안전해야만 한다.&lt;br /&gt;
** #2. 소멸자&lt;br /&gt;
** = 객체의 멤버가 초기화되고 소멸되는 과정을 알아보자.&lt;br /&gt;
** = 3/5의 법칙에 대해 알아보자.&lt;br /&gt;
** #3. 삭제된 함수&lt;br /&gt;
** = 함수를 delete로 선언함으로써 삭제해보자.&lt;br /&gt;
** = default 정의와 delete 선언의 차이를 알아보자.&lt;br /&gt;
** = 컴파일러가 언제나 복사 제어 멤버를 구현하는 것이 아님을 알자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 12. 연산자 오버로딩&lt;br /&gt;
* Chapter 13. 객체 지향 프로그래밍과 C++&lt;br /&gt;
* Chapter 14. 템플릿&lt;br /&gt;
* Chapter 15. 예외 처리와 예외 안전성&lt;br /&gt;
&lt;br /&gt;
* 계속 작성 예정입니다.&lt;br /&gt;
&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
* 얍 - [[성훈]]&lt;br /&gt;
** 얍! 얍! 얍! - [[박인서]]&lt;br /&gt;
-----------&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=MFC%2B%2B&amp;diff=34378</id>
		<title>MFC++</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=MFC%2B%2B&amp;diff=34378"/>
		<updated>2017-01-31T09:41:10Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* &#039;&#039;&#039;M&#039;&#039;&#039;astering &#039;&#039;&#039;F&#039;&#039;&#039;urther &#039;&#039;&#039;C++&#039;&#039;&#039;&lt;br /&gt;
** --Mxxxxx Fxxxxxx C++...--&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
* 진행 방식은 과거 [[미시Cpp]]를 벤치마킹(?)해서 진행합니다.&lt;br /&gt;
** 즉, 주마다 특정 주제 내용을 소개하는 방식으로 진행됩니다.&lt;br /&gt;
* 진행 스타일은 과거 [[CS]] 스터디와 동일합니다.&lt;br /&gt;
** --템플릿도 그냥 복사해서...--&lt;br /&gt;
&lt;br /&gt;
* 2016년 2학기 시작 직후부터 시작합니다.&lt;br /&gt;
* 되도록이면 수요일 정모 직후, 7시에서 9시까지 진행합니다.&lt;br /&gt;
** 주마다 진행 요일이 불가피하게 바뀌어야 할 수도 있습니다.&lt;br /&gt;
&lt;br /&gt;
* 진행에 사용되는 소스 코드는 해당 레포지토리에 있습니다.&lt;br /&gt;
** [https://github.com/nErumin/MFCplusplusSource]&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* 기반 C++ 내용에 대해서는 거의 생략할 예정이므로, 대체적으로 이미 C++을 공부해본 경험이 있으신 편이 좋습니다.&lt;br /&gt;
* 참가하실 분은 아래 이름을 적어주세요!&lt;br /&gt;
* [[신형철]], [[박인서]], ~~프로 도강러~~[[성훈]]&lt;br /&gt;
== 목표 ==&lt;br /&gt;
* C++ 돌아보기 --돌아보는 척 하면서 더 낯설게 만들기--&lt;br /&gt;
* C++11과 C++14의 내용 숙지&lt;br /&gt;
* 흔한 C++ 프로그래밍 실수 방지하기&lt;br /&gt;
* C++에서의 동시성 활용하기&lt;br /&gt;
&lt;br /&gt;
== 참고 ==&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.lafejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788945072207&amp;amp;orderClick=LAG&amp;amp;Kc=|C++ Primer 5th Edition]&lt;br /&gt;
** 기본 바탕은 이 책을 기준으로 합니다.&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9791195444946&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956743998&amp;amp;orderClick=LAH&amp;amp;Kc=|More Effective C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788966261642&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective Modern C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956743110&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective STL]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewEng.laf?ejkGb=BNT&amp;amp;mallGb=ENG&amp;amp;barcode=9781933988771&amp;amp;orderClick=LAG&amp;amp;Kc=|C++ Concurrency In Action]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788980545063&amp;amp;orderClick=LAG&amp;amp;Kc=|Exceptional C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788955507904&amp;amp;orderClick=LAG&amp;amp;Kc=|More Exceptional C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956742618&amp;amp;orderClick=LAG&amp;amp;Kc=|Exceptional C++ Style]&lt;br /&gt;
* 그 외 위키피디아와 C++ 레퍼런스 사이트 등&lt;br /&gt;
&lt;br /&gt;
== 진행 내용 ==&lt;br /&gt;
* [[MFC++/9월7일]]&lt;br /&gt;
* [[MFC++/10월5일]]&lt;br /&gt;
* MFC++/11월2일&lt;br /&gt;
* MFC++/11월9일&lt;br /&gt;
* MFC++/11월30일&lt;br /&gt;
* MFC++/1월4일&lt;br /&gt;
* MFC++/1월11일&lt;br /&gt;
* MFC++/1월18일&lt;br /&gt;
&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* Chapter 1. 변수와 타입&lt;br /&gt;
** #1. 산술 타입&lt;br /&gt;
** = 부동소수점 연산 시에는 정밀도 손실을 항상 경계하자.&lt;br /&gt;
** = (지나가는) long long의 숨겨진 이야기&lt;br /&gt;
** #2. 문자 타입&lt;br /&gt;
** = char, signed char, unsigned char를 구분하자.&lt;br /&gt;
** = 때로는 다양한 문자 표현들을 고려하자.&lt;br /&gt;
** = 필요하다면 이스케이프 시퀀스는 무시하자.&lt;br /&gt;
** #3. 내장 타입 간 형변환&lt;br /&gt;
** = 타입의 범위를 넘어가는 값 대입은 예상처럼 작동할 수도, 그렇지 않을 수도 있다.&lt;br /&gt;
** = 부호 있는 타입과 부호 없는 타입을 섞어쓰는 표현식은 항상 경계하자.&lt;br /&gt;
** #4. 상수&lt;br /&gt;
** = 다양한 상수 표기를 활용하자.&lt;br /&gt;
** #5. 초기화와 분리 컴파일&lt;br /&gt;
** = 초기화와 대입의 의미를 구분하자.&lt;br /&gt;
** = 기존의 초기화 방식과 목록 초기화 방식의 차이점을 숙지하자.&lt;br /&gt;
** = 변수의 선언과 정의를 구분하자.&lt;br /&gt;
** #6. 복합 타입&lt;br /&gt;
** = 참조자의 의미를 돌아보자.&lt;br /&gt;
** = 포인터의 의미를 돌아보자.&lt;br /&gt;
** = 복합 타입과 바탕 타입을 형식으로써 섞어 사용하지 말자.&lt;br /&gt;
** = 널 포인터를 표현하고 싶을 때 선택할 수 있는 것은 딱 하나뿐이다.&lt;br /&gt;
** = 참조자와 포인터를 구분해서 사용하자.&lt;br /&gt;
** #7. const와 constexpr&lt;br /&gt;
** = 초기화와 const의 관계를 파악하자.&lt;br /&gt;
** = const 변수를 여러 파일에서 공유하려 할 때는 주의하자.&lt;br /&gt;
** = 상위 const와 하위 const를 구분하자.&lt;br /&gt;
** = 적합하다면, constexpr을 항상 곁에 두자.&lt;br /&gt;
** #8. auto와 decltype&lt;br /&gt;
** = auto의 동작 원리를 파악하자.&lt;br /&gt;
** = decltype의 동작 원리를 파악하자.&lt;br /&gt;
** #9. 나머지 이야기&lt;br /&gt;
** = 타입 별칭을 사용할 때는 별칭 선언을 사용하자.&lt;br /&gt;
** = 상황에 따라서는 변수도 일반화해서 정의해보자.&lt;br /&gt;
** = (지나가는) 코드를 분석해보자.&lt;br /&gt;
** = (지나가는) 키워드는 왜 식별자로 사용이 불가능할까?&lt;br /&gt;
** = (지나가는) 내장 bool 타입은 꼭 필요한걸까?&lt;br /&gt;
** = (지나가는) C 라이브러리와 C++ 버전 라이브러리의 차이는 무엇일까?&lt;br /&gt;
&lt;br /&gt;
* Chapter 2. 문자열과 배열, 벡터&lt;br /&gt;
** #1. string&lt;br /&gt;
** = 유니코드에 맞는 string을 사용하자.&lt;br /&gt;
** = string 생성자 종류와 string 연산들의 종류를 대략적으로 알아두자.&lt;br /&gt;
** = 문자 제어에 도움이 되는 함수들을 알아두자.&lt;br /&gt;
** = string을 스트림을 통해 읽어들일 때, istream/getline 간 차이를 파악하자.&lt;br /&gt;
** = size_t, size_type 등의 typedef 타입들의 의미를 파악하자.&lt;br /&gt;
** = C-Style String은 가급적이면 사용하지 말자.&lt;br /&gt;
** #2. 배열&lt;br /&gt;
** = 포인터 타입과 배열 타입 간 형식 연역 차이를 파악하자.&lt;br /&gt;
** = 포인터를 배열에 대한 반복자로 생각하자.&lt;br /&gt;
** #3. 벡터&lt;br /&gt;
** = 벡터 생성자 종류와 벡터 연산들의 종류를 대략적으로 파악하자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 3. 표현식과 문장, 함수&lt;br /&gt;
** #1. 변환과 캐스팅&lt;br /&gt;
** = (지나가는) 산술 타입 간 암시적 변환과 정수 승격 기준을 알아보자.&lt;br /&gt;
** = C++ 스타일의 캐스팅을 사용하자.&lt;br /&gt;
** #2. 함수&lt;br /&gt;
** = 자동 객체와 지역 static 객체를 돌아보자.&lt;br /&gt;
** = const와 함수 매개변수의 관계에 조심하자.&lt;br /&gt;
** = 배열 매개변수를 선언하는 다양한 방법을 파악하자.&lt;br /&gt;
** = initializer_list를 사용해서 가변 매개변수를 흉내내보자.&lt;br /&gt;
** = (지나가는) 함수에서 배열 타입을 반환해보자.&lt;br /&gt;
** = 후행 반환 타입을 통해 함수를 정의해보자.&lt;br /&gt;
** = 반환 타입 유추가 필요할 땐 auto를 사용하자.&lt;br /&gt;
** = const_cast가 함수 속에서 유용하게 쓰이는 경우를 알아두자.&lt;br /&gt;
** = 매개변수에 기본 값이 필요하다면 기본 인자를 선언해보자.&lt;br /&gt;
** = inline 지정은 만능이 아님을 알아두자.&lt;br /&gt;
** = 함수 일치 과정을 파악하자.&lt;br /&gt;
** = 함수가 예외를 던지지 않는다면 noexcept로 선언하자.&lt;br /&gt;
** = 예외 명세는 가급적 사용하지 말자.&lt;br /&gt;
** #3. 이런저런 이야기&lt;br /&gt;
** = switch 레이블에서 초기화 우회를 조심하자.&lt;br /&gt;
** = 피연산자 평가 순서에 조심하자.&lt;br /&gt;
** = sizeof 연산자를 돌아보자.&lt;br /&gt;
** = 디버깅에 도움이 되는 도구들을 알아두자.&lt;br /&gt;
** = 가급적이면 auto를 선호하자.&lt;br /&gt;
** = auto 형식 추론이 예상치 않은 타입일 경우 캐스팅을 활용하자.&lt;br /&gt;
** = 매크로보다는 상수나 inline이 낫다.&lt;br /&gt;
** = (지나가는) 캐스팅 퀴즈&lt;br /&gt;
&lt;br /&gt;
* Chapter 4. 클래스&lt;br /&gt;
** #1. 멤버 함수&lt;br /&gt;
** = this의 정체를 파악하자.&lt;br /&gt;
** = const 멤버 함수의 배경과 this의 관계를 알아두자.&lt;br /&gt;
** = 멤버 함수 정의와 inline과의 관계를 파악하자.&lt;br /&gt;
** = 클래스는 새로운 유효 범위를 형성한다.&lt;br /&gt;
** = 클래스에 대해 컴파일러가 이름 검색을 하는 과정을 알아두자.&lt;br /&gt;
** = 멤버 함수에 대해 컴파일러가 이름 검색을 하는 과정을 알아두자. &lt;br /&gt;
** #2. 생성자&lt;br /&gt;
** = 생성자와 const 객체의 관계를 파악하자.&lt;br /&gt;
** = 명시적으로 합성 멤버를 원한다면 default를 명시하자.&lt;br /&gt;
** = 멤버 변수의 초기화 값이 선택되는 순서를 알아두자.&lt;br /&gt;
** = 생성자 초기화 리스트 내에서 멤버의 초기화 순서에 주의하자.&lt;br /&gt;
** = 위임 생성자를 활용하자.&lt;br /&gt;
** = 생성자 선언 시에는 변환 생성자에 항상 주의해야 한다.&lt;br /&gt;
** #3. 다양한 클래스들&lt;br /&gt;
** = 집합 클래스에 대해 알아보자.&lt;br /&gt;
** = 상수 클래스에 대해 알아보자.&lt;br /&gt;
** #4. 클래스와 정적 멤버&lt;br /&gt;
** = 정적 멤버의 선언과 정의, 사용 방법을 알아두자.&lt;br /&gt;
** #5. 프렌드&lt;br /&gt;
** = 클래스 간의 프렌드 관계를 파악하자.&lt;br /&gt;
** = 프렌드 선언과 함수와의 관계를 파악하자.&lt;br /&gt;
** = friend 선언과 일반적인 선언은 차이가 있음을 알아두자.&lt;br /&gt;
** #5. 이런저런 이야기&lt;br /&gt;
** = 클래스 멤버의 mutable 속성에 대해서 알아두자.&lt;br /&gt;
** = const 멤버 함수가 상수성을 반드시 보장하지 않음을 명심하자.&lt;br /&gt;
** = 형식 정의 시 class와 struct 키워드의 차이를 알아두자.&lt;br /&gt;
** = 기본 생성자의 존재 여부는 가볍게 볼 것이 아니다.&lt;br /&gt;
** = 물리적인 const와 논리적인 const를 구별하자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 5. I/O와 C++&lt;br /&gt;
** #1. 라이브러리&lt;br /&gt;
** = 표준 라이브러리 I/O 객체의 종류와 구성 방식을 알아보자.&lt;br /&gt;
** = 표준 라이브러리 I/O 객체의 특징을 알아보자.&lt;br /&gt;
** #2. I/O와 조건 상태와 버퍼 관리&lt;br /&gt;
** = 스트림과 조건식과의 관계를 파악하자.&lt;br /&gt;
** = 스트림의 상태를 점검해보자!&lt;br /&gt;
** = 스트림을 서로 묶어서 버퍼를 관리해보자.&lt;br /&gt;
** #3. 파일 I/O&lt;br /&gt;
** = 파일 스트림 객체의 사용법을 다시 돌아보자.&lt;br /&gt;
** = 파일 스트림을 여는 여러가지 방식을 정리해보자.&lt;br /&gt;
** #4. 문자열 I/O&lt;br /&gt;
** = 문자열 스트림 객체의 사용법을 다시 돌아보자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 6. 순차 컨테이너&lt;br /&gt;
** #1. 순차 컨테이너 개관&lt;br /&gt;
** = 사용 가능한 순차 컨테이너의 종류를 알아보자.&lt;br /&gt;
** = 컨테이너의 공통적인 연산의 종류에 대해 알아보자.&lt;br /&gt;
** = 반복자 범위에 대해서 알아보자.&lt;br /&gt;
** #2. 순차 컨테이너 연산&lt;br /&gt;
** = 순차 컨테이너에 대한 assign과 swap 연산에 대해 알아보자.&lt;br /&gt;
** = 순차 컨테이너에 대한 요소 삽입/접근/삭제에 대해 알아보자.&lt;br /&gt;
** = 반복자 무효화에 대해 항상 조심하자.&lt;br /&gt;
** = vector/string에서의 capacity와 size를 구분하자.&lt;br /&gt;
** #3. Advanced String&lt;br /&gt;
** = string 객체를 생성하는 더 많은 방법을 알아보자.&lt;br /&gt;
** = string의 내용을 더 다양하게 조작해보자.&lt;br /&gt;
** = string 검색과 비교에 대해 알아보자.&lt;br /&gt;
** = string과 수치 변환에 대해 알아보자.&lt;br /&gt;
** #4. 컨테이너 어댑터&lt;br /&gt;
** = 컨테이너 어댑터의 공통적인 연산의 종류에 대해 알아보자.&lt;br /&gt;
** = 스택/큐 연산에 대해 알아보자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 7. 일반화 알고리즘&lt;br /&gt;
** #1. 일반화 알고리즘 개관&lt;br /&gt;
** = 알고리즘과 반복자, 알고리즘과 컨테이너 사이의 관계를 알아보자.&lt;br /&gt;
** #2. 일반화 알고리즘의 분류&lt;br /&gt;
** = 요소 읽기 알고리즘에 대해 알아보자.&lt;br /&gt;
** = 요소 기록 알고리즘에 대해 알아보자.&lt;br /&gt;
** = 요소 정렬 알고리즘에 대해 알아보자.&lt;br /&gt;
** = 수많은 알고리즘을 이름에 따라 분류해보자.&lt;br /&gt;
** = 알고리즘들의 매개변수 패턴에 대해 알아보자.&lt;br /&gt;
** #3. 람다 표현식&lt;br /&gt;
** = 알고리즘과 술어 함수와의 관계를 알아보자.&lt;br /&gt;
** = 함수 호출성 객체, 펑터(Functor)에 대해 알아보자.&lt;br /&gt;
** = 람다 표현식의 형식을 살펴보자.&lt;br /&gt;
** = 일반적 람다에 대해 알아보자.&lt;br /&gt;
** = 갈무리 목록의 사용 형식들에 대해 알아보자.&lt;br /&gt;
** #4. 함수 바인딩&lt;br /&gt;
** = 함수 어댑터 역할을 하는 bind에 대해 알아보자.&lt;br /&gt;
** = 함수 바인딩에 쓰이는 Placeholder에 대해 알아보자.&lt;br /&gt;
** = 함수 바인딩에 유용한 functional 함수들을 알아두자.&lt;br /&gt;
** #5. 반복자&lt;br /&gt;
** = 특수한 반복자의 종류에 대해 알아보자.&lt;br /&gt;
** = 삽입 반복자, inserter 반복자에 대해 알아보자.&lt;br /&gt;
** = 스트림 반복자에 대해서 알아보자.&lt;br /&gt;
** = 역방향 반복자에 대해서 알아보자.&lt;br /&gt;
** = 반복자 범주와 알고리즘과의 관계를 알아보자.&lt;br /&gt;
** #6. 컨테이너 특수화 알고리즘&lt;br /&gt;
** = 리스트에 특화되어 있는 알고리즘 함수들을 살펴보자.&lt;br /&gt;
** #7. 이런저런 이야기&lt;br /&gt;
** = 람다 내에서 암묵적으로 갈무리하는 것을 피하자.&lt;br /&gt;
** = 함수 바인딩보다는 람다를 선호하자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 8. 연관 컨테이너&lt;br /&gt;
** #1. 연관 컨테이너 개관&lt;br /&gt;
** = 연관 컨테이너의 종류에 대해 알아보자.&lt;br /&gt;
** = pair 객체에 대해 알아보자.&lt;br /&gt;
** = 연관 컨테이너의 키 타입 조건을 알아보자.&lt;br /&gt;
** #2. 연관 컨테이너 연산&lt;br /&gt;
** = 연관 컨테이너에 정의된 추가 타입 별칭들을 알아보자.&lt;br /&gt;
** = 연관 컨테이너와 반복자의 관계를 알아보자.&lt;br /&gt;
** = 연관 컨테이너와 알고리즘과의 관계를 알아보자.&lt;br /&gt;
** = 연관 컨테이너에 요소를 추가/삭제해보자.&lt;br /&gt;
** = 연관 컨테이너 요소에 접근해보자.&lt;br /&gt;
** #3. 순서 없는 컨테이너&lt;br /&gt;
** = 순서 없는 컨테이너가 요소를 저장하는 방법에 대해 알아보자.&lt;br /&gt;
** = 버킷을 관리하고 조회하는 함수들에 대해 알아보자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 9. 효율적이고 안전한 STL&lt;br /&gt;
** #1. 더 폭넓은 이해를 위해&lt;br /&gt;
** = STL 동작의 대부분은 결국 복사임을 파악하자.&lt;br /&gt;
** = string이 라이브러리마다 전부 똑같은 string은 아님을 이해하자.&lt;br /&gt;
** = bool에 대한 vector는 STL 요소가 아님을 파악하자.&lt;br /&gt;
** = 컨테이너 일반화 코드가 아닌, 캡슐화를 이용하자.&lt;br /&gt;
** = C와 vector/string의 호환성에 대해 알아보자.&lt;br /&gt;
** = STL 컨테이너와 Thread-Safety의 관계를 파악하자. (x)&lt;br /&gt;
** = 상등성과 동등성을 구분해서 생각하자. (x)&lt;br /&gt;
** = STL 속 allocator 할당자의 기원과 사용법을 알아보자. (x)&lt;br /&gt;
** #2. 더 빠른 코드를 위해&lt;br /&gt;
** = empty 멤버 함수는 괜히 있는 것이 아니다.&lt;br /&gt;
** = 요소보다는 범위에 초점을 맞추자. (x)&lt;br /&gt;
** = reserve로 잦은 메모리 할당을 피하자. (x)&lt;br /&gt;
** #3. 더 안전한 코드를 위해&lt;br /&gt;
** = 동적 배열보다는 컨테이너를 사용하자. (x)&lt;br /&gt;
** = 컨테이너 요소 삭제 시에는 항상 경계할 필요가 있다. (x)&lt;br /&gt;
** #4. 더 나은 최적화를 위해&lt;br /&gt;
** = 적합한 때에 적합한 컨테이너를 사용하자. (x)&lt;br /&gt;
** = shrink_to_fit 멤버 함수에 걸맞는 방법을 알아보자. (x)&lt;br /&gt;
** = 알고리즘 함수로 해결 가능한 문제에 대해 루프로 풀어서 작성하지 말자. (x)&lt;br /&gt;
&lt;br /&gt;
* Chapter 10. 동적 메모리 관리&lt;br /&gt;
** #1. 스마트 포인터&lt;br /&gt;
** = 스마트 포인터와 그 종류에 대해 알아보자.&lt;br /&gt;
** = shared_ptr, unique_ptr의 공통적 연산에 대해 알아보자.&lt;br /&gt;
** = shared_ptr의 연산에 대해 알아보자.&lt;br /&gt;
** = unique_ptr의 연산에 대해 알아보자.&lt;br /&gt;
** = weak_ptr의 연산에 대해 알아보자.&lt;br /&gt;
** #2. 직접적인 객체 할당과 해제&lt;br /&gt;
** = new를 통해서 자유 공간에 객체를 동적으로 할당해보자.&lt;br /&gt;
** = delete를 통해서 동적으로 할당한 객체를 해제해보자.&lt;br /&gt;
** = 스마트 포인터 초기화에 new를 사용할 수 있는 방법을 알아보자.&lt;br /&gt;
** = 스마트 포인터와 일반적인 포인터의 논리를 섞어쓰지 말자.&lt;br /&gt;
** #3. 배열의 동적 할당과 해제&lt;br /&gt;
** = new를 통해서 배열을 동적으로 할당해보자.&lt;br /&gt;
** = delete를 통해서 배열을 할당 해제해보자.&lt;br /&gt;
** = 스마트 포인터로 배열을 동적으로 관리해보자.&lt;br /&gt;
** #4. 저수준 메모리 관리&lt;br /&gt;
** = 메모리 할당을 위한 allocator 클래스에 대해 알아보자.&lt;br /&gt;
** = 미초기화 메모리에 대한 객체 생성을 도와주는 알고리즘을 알아보자.&lt;br /&gt;
** #5. 이런저런 이야기&lt;br /&gt;
** = 유용한, 때로는 필수적인 RAII 기법에 대해 알아보자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 11. 복사와 이동&lt;br /&gt;
* Chapter 12. 연산자 오버로딩&lt;br /&gt;
* Chapter 13. 객체 지향 프로그래밍과 C++&lt;br /&gt;
* Chapter 14. 템플릿&lt;br /&gt;
* Chapter 15. 예외 처리와 예외 안전성&lt;br /&gt;
&lt;br /&gt;
* 계속 작성 예정입니다.&lt;br /&gt;
&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
* 얍 - [[성훈]]&lt;br /&gt;
** 얍! 얍! 얍! - [[박인서]]&lt;br /&gt;
-----------&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=MFC%2B%2B&amp;diff=34367</id>
		<title>MFC++</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=MFC%2B%2B&amp;diff=34367"/>
		<updated>2017-01-03T12:25:23Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* &#039;&#039;&#039;M&#039;&#039;&#039;astering &#039;&#039;&#039;F&#039;&#039;&#039;urther &#039;&#039;&#039;C++&#039;&#039;&#039;&lt;br /&gt;
** --Mxxxxx Fxxxxxx C++...--&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
* 진행 방식은 과거 [[미시Cpp]]를 벤치마킹(?)해서 진행합니다.&lt;br /&gt;
** 즉, 주마다 특정 주제 내용을 소개하는 방식으로 진행됩니다.&lt;br /&gt;
* 진행 스타일은 과거 [[CS]] 스터디와 동일합니다.&lt;br /&gt;
** --템플릿도 그냥 복사해서...--&lt;br /&gt;
&lt;br /&gt;
* 2016년 2학기 시작 직후부터 시작합니다.&lt;br /&gt;
* 되도록이면 수요일 정모 직후, 7시에서 9시까지 진행합니다.&lt;br /&gt;
** 주마다 진행 요일이 불가피하게 바뀌어야 할 수도 있습니다.&lt;br /&gt;
&lt;br /&gt;
* 진행에 사용되는 소스 코드는 해당 레포지토리에 있습니다.&lt;br /&gt;
** [https://github.com/nErumin/MFCplusplusSource]&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* 기반 C++ 내용에 대해서는 거의 생략할 예정이므로, 대체적으로 이미 C++을 공부해본 경험이 있으신 편이 좋습니다.&lt;br /&gt;
* 참가하실 분은 아래 이름을 적어주세요!&lt;br /&gt;
* [[신형철]], [[박인서]], ~~프로 도강러~~[[성훈]]&lt;br /&gt;
== 목표 ==&lt;br /&gt;
* C++ 돌아보기 --돌아보는 척 하면서 더 낯설게 만들기--&lt;br /&gt;
* C++11과 C++14의 내용 숙지&lt;br /&gt;
* 흔한 C++ 프로그래밍 실수 방지하기&lt;br /&gt;
* C++에서의 동시성 활용하기&lt;br /&gt;
&lt;br /&gt;
== 참고 ==&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.lafejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788945072207&amp;amp;orderClick=LAG&amp;amp;Kc=|C++ Primer 5th Edition]&lt;br /&gt;
** 기본 바탕은 이 책을 기준으로 합니다.&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9791195444946&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956743998&amp;amp;orderClick=LAH&amp;amp;Kc=|More Effective C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788966261642&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective Modern C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956743110&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective STL]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewEng.laf?ejkGb=BNT&amp;amp;mallGb=ENG&amp;amp;barcode=9781933988771&amp;amp;orderClick=LAG&amp;amp;Kc=|C++ Concurrency In Action]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788980545063&amp;amp;orderClick=LAG&amp;amp;Kc=|Exceptional C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788955507904&amp;amp;orderClick=LAG&amp;amp;Kc=|More Exceptional C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956742618&amp;amp;orderClick=LAG&amp;amp;Kc=|Exceptional C++ Style]&lt;br /&gt;
* 그 외 위키피디아와 C++ 레퍼런스 사이트 등&lt;br /&gt;
&lt;br /&gt;
== 진행 내용 ==&lt;br /&gt;
* [[MFC++/9월7일]]&lt;br /&gt;
* [[MFC++/10월5일]]&lt;br /&gt;
* MFC++/11월2일&lt;br /&gt;
* MFC++/11월9일&lt;br /&gt;
* MFC++/11월30일&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* Chapter 1. 변수와 타입&lt;br /&gt;
** #1. 산술 타입&lt;br /&gt;
** = 부동소수점 연산 시에는 정밀도 손실을 항상 경계하자.&lt;br /&gt;
** = (지나가는) long long의 숨겨진 이야기&lt;br /&gt;
** #2. 문자 타입&lt;br /&gt;
** = char, signed char, unsigned char를 구분하자.&lt;br /&gt;
** = 때로는 다양한 문자 표현들을 고려하자.&lt;br /&gt;
** = 필요하다면 이스케이프 시퀀스는 무시하자.&lt;br /&gt;
** #3. 내장 타입 간 형변환&lt;br /&gt;
** = 타입의 범위를 넘어가는 값 대입은 예상처럼 작동할 수도, 그렇지 않을 수도 있다.&lt;br /&gt;
** = 부호 있는 타입과 부호 없는 타입을 섞어쓰는 표현식은 항상 경계하자.&lt;br /&gt;
** #4. 상수&lt;br /&gt;
** = 다양한 상수 표기를 활용하자.&lt;br /&gt;
** #5. 초기화와 분리 컴파일&lt;br /&gt;
** = 초기화와 대입의 의미를 구분하자.&lt;br /&gt;
** = 기존의 초기화 방식과 목록 초기화 방식의 차이점을 숙지하자.&lt;br /&gt;
** = 변수의 선언과 정의를 구분하자.&lt;br /&gt;
** #6. 복합 타입&lt;br /&gt;
** = 참조자의 의미를 돌아보자.&lt;br /&gt;
** = 포인터의 의미를 돌아보자.&lt;br /&gt;
** = 복합 타입과 바탕 타입을 형식으로써 섞어 사용하지 말자.&lt;br /&gt;
** = 널 포인터를 표현하고 싶을 때 선택할 수 있는 것은 딱 하나뿐이다.&lt;br /&gt;
** = 참조자와 포인터를 구분해서 사용하자.&lt;br /&gt;
** #7. const와 constexpr&lt;br /&gt;
** = 초기화와 const의 관계를 파악하자.&lt;br /&gt;
** = const 변수를 여러 파일에서 공유하려 할 때는 주의하자.&lt;br /&gt;
** = 상위 const와 하위 const를 구분하자.&lt;br /&gt;
** = 적합하다면, constexpr을 항상 곁에 두자.&lt;br /&gt;
** #8. auto와 decltype&lt;br /&gt;
** = auto의 동작 원리를 파악하자.&lt;br /&gt;
** = decltype의 동작 원리를 파악하자.&lt;br /&gt;
** #9. 나머지 이야기&lt;br /&gt;
** = 타입 별칭을 사용할 때는 별칭 선언을 사용하자.&lt;br /&gt;
** = 상황에 따라서는 변수도 일반화해서 정의해보자.&lt;br /&gt;
** = (지나가는) 코드를 분석해보자.&lt;br /&gt;
** = (지나가는) 키워드는 왜 식별자로 사용이 불가능할까?&lt;br /&gt;
** = (지나가는) 내장 bool 타입은 꼭 필요한걸까?&lt;br /&gt;
** = (지나가는) C 라이브러리와 C++ 버전 라이브러리의 차이는 무엇일까?&lt;br /&gt;
&lt;br /&gt;
* Chapter 2. 문자열과 배열, 벡터&lt;br /&gt;
** #1. string&lt;br /&gt;
** = 유니코드에 맞는 string을 사용하자.&lt;br /&gt;
** = string 생성자 종류와 string 연산들의 종류를 대략적으로 알아두자.&lt;br /&gt;
** = 문자 제어에 도움이 되는 함수들을 알아두자.&lt;br /&gt;
** = string을 스트림을 통해 읽어들일 때, istream/getline 간 차이를 파악하자.&lt;br /&gt;
** = size_t, size_type 등의 typedef 타입들의 의미를 파악하자.&lt;br /&gt;
** = C-Style String은 가급적이면 사용하지 말자.&lt;br /&gt;
** #2. 배열&lt;br /&gt;
** = 포인터 타입과 배열 타입 간 형식 연역 차이를 파악하자.&lt;br /&gt;
** = 포인터를 배열에 대한 반복자로 생각하자.&lt;br /&gt;
** #3. 벡터&lt;br /&gt;
** = 벡터 생성자 종류와 벡터 연산들의 종류를 대략적으로 파악하자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 3. 표현식과 문장, 함수&lt;br /&gt;
** #1. 변환과 캐스팅&lt;br /&gt;
** = (지나가는) 산술 타입 간 암시적 변환과 정수 승격 기준을 알아보자.&lt;br /&gt;
** = C++ 스타일의 캐스팅을 사용하자.&lt;br /&gt;
** #2. 함수&lt;br /&gt;
** = 자동 객체와 지역 static 객체를 돌아보자.&lt;br /&gt;
** = const와 함수 매개변수의 관계에 조심하자.&lt;br /&gt;
** = 배열 매개변수를 선언하는 다양한 방법을 파악하자.&lt;br /&gt;
** = initializer_list를 사용해서 가변 매개변수를 흉내내보자.&lt;br /&gt;
** = (지나가는) 함수에서 배열 타입을 반환해보자.&lt;br /&gt;
** = 후행 반환 타입을 통해 함수를 정의해보자.&lt;br /&gt;
** = 반환 타입 유추가 필요할 땐 auto를 사용하자.&lt;br /&gt;
** = const_cast가 함수 속에서 유용하게 쓰이는 경우를 알아두자.&lt;br /&gt;
** = 매개변수에 기본 값이 필요하다면 기본 인자를 선언해보자.&lt;br /&gt;
** = inline 지정은 만능이 아님을 알아두자.&lt;br /&gt;
** = 함수 일치 과정을 파악하자.&lt;br /&gt;
** = 함수가 예외를 던지지 않는다면 noexcept로 선언하자.&lt;br /&gt;
** = 예외 명세는 가급적 사용하지 말자.&lt;br /&gt;
** #3. 이런저런 이야기&lt;br /&gt;
** = switch 레이블에서 초기화 우회를 조심하자.&lt;br /&gt;
** = 피연산자 평가 순서에 조심하자.&lt;br /&gt;
** = sizeof 연산자를 돌아보자.&lt;br /&gt;
** = 디버깅에 도움이 되는 도구들을 알아두자.&lt;br /&gt;
** = 가급적이면 auto를 선호하자.&lt;br /&gt;
** = auto 형식 추론이 예상치 않은 타입일 경우 캐스팅을 활용하자.&lt;br /&gt;
** = 매크로보다는 상수나 inline이 낫다.&lt;br /&gt;
** = (지나가는) 캐스팅 퀴즈&lt;br /&gt;
&lt;br /&gt;
* Chapter 4. 클래스 Basic&lt;br /&gt;
** #1. 멤버 함수&lt;br /&gt;
** = this의 정체를 파악하자.&lt;br /&gt;
** = const 멤버 함수의 배경과 this의 관계를 알아두자.&lt;br /&gt;
** = 멤버 함수 정의와 inline과의 관계를 파악하자.&lt;br /&gt;
** = 클래스는 새로운 유효 범위를 형성한다.&lt;br /&gt;
** = 클래스에 대해 컴파일러가 이름 검색을 하는 과정을 알아두자.&lt;br /&gt;
** = 멤버 함수에 대해 컴파일러가 이름 검색을 하는 과정을 알아두자. &lt;br /&gt;
** #2. 생성자&lt;br /&gt;
** = 생성자와 const 객체의 관계를 파악하자.&lt;br /&gt;
** = 명시적으로 합성 멤버를 원한다면 default를 명시하자.&lt;br /&gt;
** = 멤버 변수의 초기화 값이 선택되는 순서를 알아두자.&lt;br /&gt;
** = 생성자 초기화 리스트 내에서 멤버의 초기화 순서에 주의하자.&lt;br /&gt;
** = 위임 생성자를 활용하자.&lt;br /&gt;
** = 생성자 선언 시에는 변환 생성자에 항상 주의해야 한다.&lt;br /&gt;
** #3. 다양한 클래스들&lt;br /&gt;
** = 집합 클래스에 대해 알아보자.&lt;br /&gt;
** = 상수 클래스에 대해 알아보자.&lt;br /&gt;
** #4. 클래스와 정적 멤버&lt;br /&gt;
** = 정적 멤버의 선언과 정의, 사용 방법을 알아두자.&lt;br /&gt;
** #5. 프렌드&lt;br /&gt;
** = 클래스 간의 프렌드 관계를 파악하자.&lt;br /&gt;
** = 프렌드 선언과 함수와의 관계를 파악하자.&lt;br /&gt;
** = friend 선언과 일반적인 선언은 차이가 있음을 알아두자.&lt;br /&gt;
** #5. 이런저런 이야기&lt;br /&gt;
** = 클래스 멤버의 mutable 속성에 대해서 알아두자.&lt;br /&gt;
** = const 멤버 함수가 상수성을 반드시 보장하지 않음을 명심하자.&lt;br /&gt;
** = 형식 정의 시 class와 struct 키워드의 차이를 알아두자.&lt;br /&gt;
** = 기본 생성자의 존재 여부는 가볍게 볼 것이 아니다.&lt;br /&gt;
** = 물리적인 const와 논리적인 const를 구별하자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 5. I/O와 C++&lt;br /&gt;
** #1. 라이브러리&lt;br /&gt;
** = 표준 라이브러리 I/O 객체의 종류와 구성 방식을 알아보자.&lt;br /&gt;
** = 표준 라이브러리 I/O 객체의 특징을 알아보자.&lt;br /&gt;
** #2. I/O와 조건 상태와 버퍼 관리&lt;br /&gt;
** = 스트림과 조건식과의 관계를 파악하자.&lt;br /&gt;
** = 스트림의 상태를 점검해보자!&lt;br /&gt;
** = 스트림을 서로 묶어서 버퍼를 관리해보자.&lt;br /&gt;
** #3. 파일 I/O&lt;br /&gt;
** = 파일 스트림 객체의 사용법을 다시 돌아보자.&lt;br /&gt;
** = 파일 스트림을 여는 여러가지 방식을 정리해보자.&lt;br /&gt;
** #4. 문자열 I/O&lt;br /&gt;
** = 문자열 스트림 객체의 사용법을 다시 돌아보자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 6. 순차 컨테이너&lt;br /&gt;
** #1. 순차 컨테이너 개관&lt;br /&gt;
** = 사용 가능한 순차 컨테이너의 종류를 알아보자.&lt;br /&gt;
** = 컨테이너의 공통적인 연산의 종류에 대해 알아보자.&lt;br /&gt;
** = 반복자 범위에 대해서 알아보자.&lt;br /&gt;
** #2. 순차 컨테이너 연산&lt;br /&gt;
** = 순차 컨테이너에 대한 assign과 swap 연산에 대해 알아보자.&lt;br /&gt;
** = 순차 컨테이너에 대한 요소 삽입/접근/삭제에 대해 알아보자.&lt;br /&gt;
** = 반복자 무효화에 대해 항상 조심하자.&lt;br /&gt;
** = vector/string에서의 capacity와 size를 구분하자.&lt;br /&gt;
** #3. Advanced String&lt;br /&gt;
** = string 객체를 생성하는 더 많은 방법을 알아보자.&lt;br /&gt;
** = string의 내용을 더 다양하게 조작해보자.&lt;br /&gt;
** = string 검색과 비교에 대해 알아보자.&lt;br /&gt;
** = string과 수치 변환에 대해 알아보자.&lt;br /&gt;
** #4. 컨테이너 어댑터&lt;br /&gt;
** = 컨테이너 어댑터의 공통적인 연산의 종류에 대해 알아보자.&lt;br /&gt;
** = 스택/큐 연산에 대해 알아보자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 7. 일반화 알고리즘&lt;br /&gt;
** #1. 일반화 알고리즘 개관&lt;br /&gt;
** = 알고리즘과 반복자, 알고리즘과 컨테이너 사이의 관계를 알아보자.&lt;br /&gt;
** #2. 일반화 알고리즘의 분류&lt;br /&gt;
** = 요소 읽기 알고리즘에 대해 알아보자.&lt;br /&gt;
** = 요소 기록 알고리즘에 대해 알아보자.&lt;br /&gt;
** = 요소 정렬 알고리즘에 대해 알아보자.&lt;br /&gt;
** = 수많은 알고리즘을 이름에 따라 분류해보자.&lt;br /&gt;
** = 알고리즘들의 매개변수 패턴에 대해 알아보자.&lt;br /&gt;
** #3. 람다 표현식&lt;br /&gt;
** = 알고리즘과 술어 함수와의 관계를 알아보자.&lt;br /&gt;
** = 함수 호출성 객체, 펑터(Functor)에 대해 알아보자.&lt;br /&gt;
** = 람다 표현식의 형식을 살펴보자.&lt;br /&gt;
** = 일반적 람다에 대해 알아보자.&lt;br /&gt;
** = 갈무리 목록의 사용 형식들에 대해 알아보자.&lt;br /&gt;
** #4. 함수 바인딩&lt;br /&gt;
** = 함수 어댑터 역할을 하는 bind에 대해 알아보자.&lt;br /&gt;
** = 함수 바인딩에 쓰이는 Placeholder에 대해 알아보자.&lt;br /&gt;
** = 함수 바인딩에 유용한 functional 함수들을 알아두자.&lt;br /&gt;
** #5. 반복자&lt;br /&gt;
** = 특수한 반복자의 종류에 대해 알아보자.&lt;br /&gt;
** = 삽입 반복자, inserter 반복자에 대해 알아보자.&lt;br /&gt;
** = 스트림 반복자에 대해서 알아보자.&lt;br /&gt;
** = 역방향 반복자에 대해서 알아보자.&lt;br /&gt;
** = 반복자 범주와 알고리즘과의 관계를 알아보자.&lt;br /&gt;
** #6. 컨테이너 특수화 알고리즘&lt;br /&gt;
** = 리스트에 특화되어 있는 알고리즘 함수들을 살펴보자.&lt;br /&gt;
** #7. 이런저런 이야기&lt;br /&gt;
* Chapter 8. 연관 컨테이너&lt;br /&gt;
** #1. 연관 컨테이너 개관&lt;br /&gt;
&lt;br /&gt;
* Chapter 9. STL의 효율성과 함정&lt;br /&gt;
&lt;br /&gt;
* 계속 작성 예정입니다.&lt;br /&gt;
&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
* 얍 - [[성훈]]&lt;br /&gt;
** 얍! 얍! 얍! - [[박인서]]&lt;br /&gt;
-----------&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=MFC%2B%2B&amp;diff=34366</id>
		<title>MFC++</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=MFC%2B%2B&amp;diff=34366"/>
		<updated>2017-01-03T12:13:52Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* &#039;&#039;&#039;M&#039;&#039;&#039;astering &#039;&#039;&#039;F&#039;&#039;&#039;urther &#039;&#039;&#039;C++&#039;&#039;&#039;&lt;br /&gt;
** --Mxxxxx Fxxxxxx C++...--&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
* 진행 방식은 과거 [[미시Cpp]]를 벤치마킹(?)해서 진행합니다.&lt;br /&gt;
** 즉, 주마다 특정 주제 내용을 소개하는 방식으로 진행됩니다.&lt;br /&gt;
* 진행 스타일은 과거 [[CS]] 스터디와 동일합니다.&lt;br /&gt;
** --템플릿도 그냥 복사해서...--&lt;br /&gt;
&lt;br /&gt;
* 2016년 2학기 시작 직후부터 시작합니다.&lt;br /&gt;
* 되도록이면 수요일 정모 직후, 7시에서 9시까지 진행합니다.&lt;br /&gt;
** 주마다 진행 요일이 불가피하게 바뀌어야 할 수도 있습니다.&lt;br /&gt;
&lt;br /&gt;
* 진행에 사용되는 소스 코드는 해당 레포지토리에 있습니다.&lt;br /&gt;
** [https://github.com/nErumin/MFCplusplusSource]&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* 기반 C++ 내용에 대해서는 거의 생략할 예정이므로, 대체적으로 이미 C++을 공부해본 경험이 있으신 편이 좋습니다.&lt;br /&gt;
* 참가하실 분은 아래 이름을 적어주세요!&lt;br /&gt;
* [[신형철]], [[박인서]], ~~프로 도강러~~[[성훈]]&lt;br /&gt;
== 목표 ==&lt;br /&gt;
* C++ 돌아보기 --돌아보는 척 하면서 더 낯설게 만들기--&lt;br /&gt;
* C++11과 C++14의 내용 숙지&lt;br /&gt;
* 흔한 C++ 프로그래밍 실수 방지하기&lt;br /&gt;
* C++에서의 동시성 활용하기&lt;br /&gt;
&lt;br /&gt;
== 참고 ==&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.lafejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788945072207&amp;amp;orderClick=LAG&amp;amp;Kc=|C++ Primer 5th Edition]&lt;br /&gt;
** 기본 바탕은 이 책을 기준으로 합니다.&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9791195444946&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956743998&amp;amp;orderClick=LAH&amp;amp;Kc=|More Effective C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788966261642&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective Modern C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956743110&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective STL]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewEng.laf?ejkGb=BNT&amp;amp;mallGb=ENG&amp;amp;barcode=9781933988771&amp;amp;orderClick=LAG&amp;amp;Kc=|C++ Concurrency In Action]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788980545063&amp;amp;orderClick=LAG&amp;amp;Kc=|Exceptional C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788955507904&amp;amp;orderClick=LAG&amp;amp;Kc=|More Exceptional C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956742618&amp;amp;orderClick=LAG&amp;amp;Kc=|Exceptional C++ Style]&lt;br /&gt;
* 그 외 위키피디아와 C++ 레퍼런스 사이트 등&lt;br /&gt;
&lt;br /&gt;
== 진행 내용 ==&lt;br /&gt;
* [[MFC++/9월7일]]&lt;br /&gt;
* [[MFC++/10월5일]]&lt;br /&gt;
* MFC++/11월2일&lt;br /&gt;
* MFC++/11월9일&lt;br /&gt;
* MFC++/11월30일&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* Chapter 1. 변수와 타입&lt;br /&gt;
** #1. 산술 타입&lt;br /&gt;
** = 부동소수점 연산 시에는 정밀도 손실을 항상 경계하자.&lt;br /&gt;
** = (지나가는) long long의 숨겨진 이야기&lt;br /&gt;
** #2. 문자 타입&lt;br /&gt;
** = char, signed char, unsigned char를 구분하자.&lt;br /&gt;
** = 때로는 다양한 문자 표현들을 고려하자.&lt;br /&gt;
** = 필요하다면 이스케이프 시퀀스는 무시하자.&lt;br /&gt;
** #3. 내장 타입 간 형변환&lt;br /&gt;
** = 타입의 범위를 넘어가는 값 대입은 예상처럼 작동할 수도, 그렇지 않을 수도 있다.&lt;br /&gt;
** = 부호 있는 타입과 부호 없는 타입을 섞어쓰는 표현식은 항상 경계하자.&lt;br /&gt;
** #4. 상수&lt;br /&gt;
** = 다양한 상수 표기를 활용하자.&lt;br /&gt;
** #5. 초기화와 분리 컴파일&lt;br /&gt;
** = 초기화와 대입의 의미를 구분하자.&lt;br /&gt;
** = 기존의 초기화 방식과 목록 초기화 방식의 차이점을 숙지하자.&lt;br /&gt;
** = 변수의 선언과 정의를 구분하자.&lt;br /&gt;
** #6. 복합 타입&lt;br /&gt;
** = 참조자의 의미를 돌아보자.&lt;br /&gt;
** = 포인터의 의미를 돌아보자.&lt;br /&gt;
** = 복합 타입과 바탕 타입을 형식으로써 섞어 사용하지 말자.&lt;br /&gt;
** = 널 포인터를 표현하고 싶을 때 선택할 수 있는 것은 딱 하나뿐이다.&lt;br /&gt;
** = 참조자와 포인터를 구분해서 사용하자.&lt;br /&gt;
** #7. const와 constexpr&lt;br /&gt;
** = 초기화와 const의 관계를 파악하자.&lt;br /&gt;
** = const 변수를 여러 파일에서 공유하려 할 때는 주의하자.&lt;br /&gt;
** = 상위 const와 하위 const를 구분하자.&lt;br /&gt;
** = 적합하다면, constexpr을 항상 곁에 두자.&lt;br /&gt;
** #8. auto와 decltype&lt;br /&gt;
** = auto의 동작 원리를 파악하자.&lt;br /&gt;
** = decltype의 동작 원리를 파악하자.&lt;br /&gt;
** #9. 나머지 이야기&lt;br /&gt;
** = 타입 별칭을 사용할 때는 별칭 선언을 사용하자.&lt;br /&gt;
** = 상황에 따라서는 변수도 일반화해서 정의해보자.&lt;br /&gt;
** = (지나가는) 코드를 분석해보자.&lt;br /&gt;
** = (지나가는) 키워드는 왜 식별자로 사용이 불가능할까?&lt;br /&gt;
** = (지나가는) 내장 bool 타입은 꼭 필요한걸까?&lt;br /&gt;
** = (지나가는) C 라이브러리와 C++ 버전 라이브러리의 차이는 무엇일까?&lt;br /&gt;
&lt;br /&gt;
* Chapter 2. 문자열과 배열, 벡터&lt;br /&gt;
** #1. string&lt;br /&gt;
** = 유니코드에 맞는 string을 사용하자.&lt;br /&gt;
** = string 생성자 종류와 string 연산들의 종류를 대략적으로 알아두자.&lt;br /&gt;
** = 문자 제어에 도움이 되는 함수들을 알아두자.&lt;br /&gt;
** = string을 스트림을 통해 읽어들일 때, istream/getline 간 차이를 파악하자.&lt;br /&gt;
** = size_t, size_type 등의 typedef 타입들의 의미를 파악하자.&lt;br /&gt;
** = C-Style String은 가급적이면 사용하지 말자.&lt;br /&gt;
** #2. 배열&lt;br /&gt;
** = 포인터 타입과 배열 타입 간 형식 연역 차이를 파악하자.&lt;br /&gt;
** = 포인터를 배열에 대한 반복자로 생각하자.&lt;br /&gt;
** #3. 벡터&lt;br /&gt;
** = 벡터 생성자 종류와 벡터 연산들의 종류를 대략적으로 파악하자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 3. 표현식과 문장, 함수&lt;br /&gt;
** #1. 변환과 캐스팅&lt;br /&gt;
** = (지나가는) 산술 타입 간 암시적 변환과 정수 승격 기준을 알아보자.&lt;br /&gt;
** = C++ 스타일의 캐스팅을 사용하자.&lt;br /&gt;
** #2. 함수&lt;br /&gt;
** = 자동 객체와 지역 static 객체를 돌아보자.&lt;br /&gt;
** = const와 함수 매개변수의 관계에 조심하자.&lt;br /&gt;
** = 배열 매개변수를 선언하는 다양한 방법을 파악하자.&lt;br /&gt;
** = initializer_list를 사용해서 가변 매개변수를 흉내내보자.&lt;br /&gt;
** = (지나가는) 함수에서 배열 타입을 반환해보자.&lt;br /&gt;
** = 후행 반환 타입을 통해 함수를 정의해보자.&lt;br /&gt;
** = 반환 타입 유추가 필요할 땐 auto를 사용하자.&lt;br /&gt;
** = const_cast가 함수 속에서 유용하게 쓰이는 경우를 알아두자.&lt;br /&gt;
** = 매개변수에 기본 값이 필요하다면 기본 인자를 선언해보자.&lt;br /&gt;
** = inline 지정은 만능이 아님을 알아두자.&lt;br /&gt;
** = 함수 일치 과정을 파악하자.&lt;br /&gt;
** = 함수가 예외를 던지지 않는다면 noexcept로 선언하자.&lt;br /&gt;
** = 예외 명세는 가급적 사용하지 말자.&lt;br /&gt;
** #3. 이런저런 이야기&lt;br /&gt;
** = switch 레이블에서 초기화 우회를 조심하자.&lt;br /&gt;
** = 피연산자 평가 순서에 조심하자.&lt;br /&gt;
** = sizeof 연산자를 돌아보자.&lt;br /&gt;
** = 디버깅에 도움이 되는 도구들을 알아두자.&lt;br /&gt;
** = 가급적이면 auto를 선호하자.&lt;br /&gt;
** = auto 형식 추론이 예상치 않은 타입일 경우 캐스팅을 활용하자.&lt;br /&gt;
** = 매크로보다는 상수나 inline이 낫다.&lt;br /&gt;
** = (지나가는) 캐스팅 퀴즈&lt;br /&gt;
&lt;br /&gt;
* Chapter 4. 클래스 Basic&lt;br /&gt;
** #1. 멤버 함수&lt;br /&gt;
** = this의 정체를 파악하자.&lt;br /&gt;
** = const 멤버 함수의 배경과 this의 관계를 알아두자.&lt;br /&gt;
** = 멤버 함수 정의와 inline과의 관계를 파악하자.&lt;br /&gt;
** = 클래스는 새로운 유효 범위를 형성한다.&lt;br /&gt;
** = 클래스에 대해 컴파일러가 이름 검색을 하는 과정을 알아두자.&lt;br /&gt;
** = 멤버 함수에 대해 컴파일러가 이름 검색을 하는 과정을 알아두자. &lt;br /&gt;
** #2. 생성자&lt;br /&gt;
** = 생성자와 const 객체의 관계를 파악하자.&lt;br /&gt;
** = 명시적으로 합성 멤버를 원한다면 default를 명시하자.&lt;br /&gt;
** = 멤버 변수의 초기화 값이 선택되는 순서를 알아두자.&lt;br /&gt;
** = 생성자 초기화 리스트 내에서 멤버의 초기화 순서에 주의하자.&lt;br /&gt;
** = 위임 생성자를 활용하자.&lt;br /&gt;
** = 생성자 선언 시에는 변환 생성자에 항상 주의해야 한다.&lt;br /&gt;
** #3. 다양한 클래스들&lt;br /&gt;
** = 집합 클래스에 대해 알아보자.&lt;br /&gt;
** = 상수 클래스에 대해 알아보자.&lt;br /&gt;
** #4. 클래스와 정적 멤버&lt;br /&gt;
** = 정적 멤버의 선언과 정의, 사용 방법을 알아두자.&lt;br /&gt;
** #5. 프렌드&lt;br /&gt;
** = 클래스 간의 프렌드 관계를 파악하자.&lt;br /&gt;
** = 프렌드 선언과 함수와의 관계를 파악하자.&lt;br /&gt;
** = friend 선언과 일반적인 선언은 차이가 있음을 알아두자.&lt;br /&gt;
** #5. 이런저런 이야기&lt;br /&gt;
** = 클래스 멤버의 mutable 속성에 대해서 알아두자.&lt;br /&gt;
** = const 멤버 함수가 상수성을 반드시 보장하지 않음을 명심하자.&lt;br /&gt;
** = 형식 정의 시 class와 struct 키워드의 차이를 알아두자.&lt;br /&gt;
** = 기본 생성자의 존재 여부는 가볍게 볼 것이 아니다.&lt;br /&gt;
** = 물리적인 const와 논리적인 const를 구별하자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 5. I/O와 C++&lt;br /&gt;
** #1. 라이브러리&lt;br /&gt;
** = 표준 라이브러리 I/O 객체의 종류와 구성 방식을 알아보자.&lt;br /&gt;
** = 표준 라이브러리 I/O 객체의 특징을 알아보자.&lt;br /&gt;
** #2. I/O와 조건 상태와 버퍼 관리&lt;br /&gt;
** = 스트림과 조건식과의 관계를 파악하자.&lt;br /&gt;
** = 스트림의 상태를 점검해보자!&lt;br /&gt;
** = 스트림을 서로 묶어서 버퍼를 관리해보자.&lt;br /&gt;
** #3. 파일 I/O&lt;br /&gt;
** = 파일 스트림 객체의 사용법을 다시 돌아보자.&lt;br /&gt;
** = 파일 스트림을 여는 여러가지 방식을 정리해보자.&lt;br /&gt;
** #4. 문자열 I/O&lt;br /&gt;
** = 문자열 스트림 객체의 사용법을 다시 돌아보자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 6. 순차 컨테이너&lt;br /&gt;
** #1. 순차 컨테이너 개관&lt;br /&gt;
** = 사용 가능한 순차 컨테이너의 종류를 알아보자.&lt;br /&gt;
** = 컨테이너의 공통적인 연산의 종류에 대해 알아보자.&lt;br /&gt;
** = 반복자 범위에 대해서 알아보자.&lt;br /&gt;
** #2. 순차 컨테이너 연산&lt;br /&gt;
** = 순차 컨테이너에 대한 assign과 swap 연산에 대해 알아보자.&lt;br /&gt;
** = 순차 컨테이너에 대한 요소 삽입/접근/삭제에 대해 알아보자.&lt;br /&gt;
** = 반복자 무효화에 대해 항상 조심하자.&lt;br /&gt;
** = vector/string에서의 capacity와 size를 구분하자.&lt;br /&gt;
** #3. Advanced String&lt;br /&gt;
** = string 객체를 생성하는 더 많은 방법을 알아보자.&lt;br /&gt;
** = string의 내용을 더 다양하게 조작해보자.&lt;br /&gt;
** = string 검색과 비교에 대해 알아보자.&lt;br /&gt;
** = string과 수치 변환에 대해 알아보자.&lt;br /&gt;
** #4. 컨테이너 어댑터&lt;br /&gt;
** = 컨테이너 어댑터의 공통적인 연산의 종류에 대해 알아보자.&lt;br /&gt;
** = 스택/큐 연산에 대해 알아보자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 7. 일반화 알고리즘&lt;br /&gt;
** #1. 일반화 알고리즘 개관&lt;br /&gt;
** = 알고리즘과 반복자, 알고리즘과 컨테이너 사이의 관계를 알아보자.&lt;br /&gt;
** #2. 일반화 알고리즘의 분류&lt;br /&gt;
** = 요소 읽기 알고리즘에 대해 알아보자.&lt;br /&gt;
** = 요소 기록 알고리즘에 대해 알아보자.&lt;br /&gt;
** = 요소 정렬 알고리즘에 대해 알아보자.&lt;br /&gt;
** = 수많은 알고리즘을 이름에 따라 분류해보자.&lt;br /&gt;
** = 알고리즘들의 매개변수 패턴에 대해 알아보자.&lt;br /&gt;
** #3. 람다 표현식&lt;br /&gt;
** = 알고리즘과 술어 함수와의 관계를 알아보자.&lt;br /&gt;
** = 함수 호출성 객체, 펑터(Functor)에 대해 알아보자.&lt;br /&gt;
** = 람다 표현식의 형식을 살펴보자.&lt;br /&gt;
** = 일반적 람다에 대해 알아보자.&lt;br /&gt;
** = 갈무리 목록의 사용 형식들에 대해 알아보자.&lt;br /&gt;
** #4. 함수 바인딩&lt;br /&gt;
** = 함수 어댑터 역할을 하는 bind에 대해 알아보자.&lt;br /&gt;
** = 함수 바인딩에 쓰이는 Placeholder에 대해 알아보자.&lt;br /&gt;
** = 함수 바인딩에 유용한 functional 함수들을 알아두자.&lt;br /&gt;
** #4. 반복자&lt;br /&gt;
** = 특수한 반복자의 종류에 대해 알아보자.&lt;br /&gt;
** = 삽입 반복자, inserter 반복자에 대해 알아보자.&lt;br /&gt;
** = 스트림 반복자에 대해서 알아보자.&lt;br /&gt;
** = 역방향 반복자에 대해서 알아보자.&lt;br /&gt;
** = 반복자 범주와 알고리즘과의 관계를 알아보자.&lt;br /&gt;
** #5. 컨테이너 특수화 알고리즘&lt;br /&gt;
** = 리스트에 특화되어 있는 알고리즘 함수들을 살펴보자.&lt;br /&gt;
** #6. 이런저런 이야기&lt;br /&gt;
* Chapter 8. 연관 컨테이너&lt;br /&gt;
** #1. 연관 컨테이너 개관&lt;br /&gt;
&lt;br /&gt;
* Chapter 9. STL의 효율성과 함정&lt;br /&gt;
&lt;br /&gt;
* 계속 작성 예정입니다.&lt;br /&gt;
&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
* 얍 - [[성훈]]&lt;br /&gt;
** 얍! 얍! 얍! - [[박인서]]&lt;br /&gt;
-----------&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=MFC%2B%2B&amp;diff=34365</id>
		<title>MFC++</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=MFC%2B%2B&amp;diff=34365"/>
		<updated>2017-01-03T10:43:50Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* &#039;&#039;&#039;M&#039;&#039;&#039;astering &#039;&#039;&#039;F&#039;&#039;&#039;urther &#039;&#039;&#039;C++&#039;&#039;&#039;&lt;br /&gt;
** --Mxxxxx Fxxxxxx C++...--&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
* 진행 방식은 과거 [[미시Cpp]]를 벤치마킹(?)해서 진행합니다.&lt;br /&gt;
** 즉, 주마다 특정 주제 내용을 소개하는 방식으로 진행됩니다.&lt;br /&gt;
* 진행 스타일은 과거 [[CS]] 스터디와 동일합니다.&lt;br /&gt;
** --템플릿도 그냥 복사해서...--&lt;br /&gt;
&lt;br /&gt;
* 2016년 2학기 시작 직후부터 시작합니다.&lt;br /&gt;
* 되도록이면 수요일 정모 직후, 7시에서 9시까지 진행합니다.&lt;br /&gt;
** 주마다 진행 요일이 불가피하게 바뀌어야 할 수도 있습니다.&lt;br /&gt;
&lt;br /&gt;
* 진행에 사용되는 소스 코드는 해당 레포지토리에 있습니다.&lt;br /&gt;
** [https://github.com/nErumin/MFCplusplusSource]&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* 기반 C++ 내용에 대해서는 거의 생략할 예정이므로, 대체적으로 이미 C++을 공부해본 경험이 있으신 편이 좋습니다.&lt;br /&gt;
* 참가하실 분은 아래 이름을 적어주세요!&lt;br /&gt;
* [[신형철]], [[박인서]], ~~프로 도강러~~[[성훈]]&lt;br /&gt;
== 목표 ==&lt;br /&gt;
* C++ 돌아보기 --돌아보는 척 하면서 더 낯설게 만들기--&lt;br /&gt;
* C++11과 C++14의 내용 숙지&lt;br /&gt;
* 흔한 C++ 프로그래밍 실수 방지하기&lt;br /&gt;
* C++에서의 동시성 활용하기&lt;br /&gt;
&lt;br /&gt;
== 참고 ==&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.lafejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788945072207&amp;amp;orderClick=LAG&amp;amp;Kc=|C++ Primer 5th Edition]&lt;br /&gt;
** 기본 바탕은 이 책을 기준으로 합니다.&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9791195444946&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956743998&amp;amp;orderClick=LAH&amp;amp;Kc=|More Effective C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788966261642&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective Modern C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956743110&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective STL]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewEng.laf?ejkGb=BNT&amp;amp;mallGb=ENG&amp;amp;barcode=9781933988771&amp;amp;orderClick=LAG&amp;amp;Kc=|C++ Concurrency In Action]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788980545063&amp;amp;orderClick=LAG&amp;amp;Kc=|Exceptional C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788955507904&amp;amp;orderClick=LAG&amp;amp;Kc=|More Exceptional C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956742618&amp;amp;orderClick=LAG&amp;amp;Kc=|Exceptional C++ Style]&lt;br /&gt;
* 그 외 위키피디아와 C++ 레퍼런스 사이트 등&lt;br /&gt;
&lt;br /&gt;
== 진행 내용 ==&lt;br /&gt;
* [[MFC++/9월7일]]&lt;br /&gt;
* [[MFC++/10월5일]]&lt;br /&gt;
* MFC++/11월2일&lt;br /&gt;
* MFC++/11월9일&lt;br /&gt;
* MFC++/11월30일&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* Chapter 1. 변수와 타입&lt;br /&gt;
** #1. 산술 타입&lt;br /&gt;
** = 부동소수점 연산 시에는 정밀도 손실을 항상 경계하자.&lt;br /&gt;
** = (지나가는) long long의 숨겨진 이야기&lt;br /&gt;
** #2. 문자 타입&lt;br /&gt;
** = char, signed char, unsigned char를 구분하자.&lt;br /&gt;
** = 때로는 다양한 문자 표현들을 고려하자.&lt;br /&gt;
** = 필요하다면 이스케이프 시퀀스는 무시하자.&lt;br /&gt;
** #3. 내장 타입 간 형변환&lt;br /&gt;
** = 타입의 범위를 넘어가는 값 대입은 예상처럼 작동할 수도, 그렇지 않을 수도 있다.&lt;br /&gt;
** = 부호 있는 타입과 부호 없는 타입을 섞어쓰는 표현식은 항상 경계하자.&lt;br /&gt;
** #4. 상수&lt;br /&gt;
** = 다양한 상수 표기를 활용하자.&lt;br /&gt;
** #5. 초기화와 분리 컴파일&lt;br /&gt;
** = 초기화와 대입의 의미를 구분하자.&lt;br /&gt;
** = 기존의 초기화 방식과 목록 초기화 방식의 차이점을 숙지하자.&lt;br /&gt;
** = 변수의 선언과 정의를 구분하자.&lt;br /&gt;
** #6. 복합 타입&lt;br /&gt;
** = 참조자의 의미를 돌아보자.&lt;br /&gt;
** = 포인터의 의미를 돌아보자.&lt;br /&gt;
** = 복합 타입과 바탕 타입을 형식으로써 섞어 사용하지 말자.&lt;br /&gt;
** = 널 포인터를 표현하고 싶을 때 선택할 수 있는 것은 딱 하나뿐이다.&lt;br /&gt;
** = 참조자와 포인터를 구분해서 사용하자.&lt;br /&gt;
** #7. const와 constexpr&lt;br /&gt;
** = 초기화와 const의 관계를 파악하자.&lt;br /&gt;
** = const 변수를 여러 파일에서 공유하려 할 때는 주의하자.&lt;br /&gt;
** = 상위 const와 하위 const를 구분하자.&lt;br /&gt;
** = 적합하다면, constexpr을 항상 곁에 두자.&lt;br /&gt;
** #8. auto와 decltype&lt;br /&gt;
** = auto의 동작 원리를 파악하자.&lt;br /&gt;
** = decltype의 동작 원리를 파악하자.&lt;br /&gt;
** #9. 나머지 이야기&lt;br /&gt;
** = 타입 별칭을 사용할 때는 별칭 선언을 사용하자.&lt;br /&gt;
** = 상황에 따라서는 변수도 일반화해서 정의해보자.&lt;br /&gt;
** = (지나가는) 코드를 분석해보자.&lt;br /&gt;
** = (지나가는) 키워드는 왜 식별자로 사용이 불가능할까?&lt;br /&gt;
** = (지나가는) 내장 bool 타입은 꼭 필요한걸까?&lt;br /&gt;
** = (지나가는) C 라이브러리와 C++ 버전 라이브러리의 차이는 무엇일까?&lt;br /&gt;
&lt;br /&gt;
* Chapter 2. 문자열과 배열, 벡터&lt;br /&gt;
** #1. string&lt;br /&gt;
** = 유니코드에 맞는 string을 사용하자.&lt;br /&gt;
** = string 생성자 종류와 string 연산들의 종류를 대략적으로 알아두자.&lt;br /&gt;
** = 문자 제어에 도움이 되는 함수들을 알아두자.&lt;br /&gt;
** = string을 스트림을 통해 읽어들일 때, istream/getline 간 차이를 파악하자.&lt;br /&gt;
** = size_t, size_type 등의 typedef 타입들의 의미를 파악하자.&lt;br /&gt;
** = C-Style String은 가급적이면 사용하지 말자.&lt;br /&gt;
** #2. 배열&lt;br /&gt;
** = 포인터 타입과 배열 타입 간 형식 연역 차이를 파악하자.&lt;br /&gt;
** = 포인터를 배열에 대한 반복자로 생각하자.&lt;br /&gt;
** #3. 벡터&lt;br /&gt;
** = 벡터 생성자 종류와 벡터 연산들의 종류를 대략적으로 파악하자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 3. 표현식과 문장, 함수&lt;br /&gt;
** #1. 변환과 캐스팅&lt;br /&gt;
** = (지나가는) 산술 타입 간 암시적 변환과 정수 승격 기준을 알아보자.&lt;br /&gt;
** = C++ 스타일의 캐스팅을 사용하자.&lt;br /&gt;
** #2. 함수&lt;br /&gt;
** = 자동 객체와 지역 static 객체를 돌아보자.&lt;br /&gt;
** = const와 함수 매개변수의 관계에 조심하자.&lt;br /&gt;
** = 배열 매개변수를 선언하는 다양한 방법을 파악하자.&lt;br /&gt;
** = initializer_list를 사용해서 가변 매개변수를 흉내내보자.&lt;br /&gt;
** = (지나가는) 함수에서 배열 타입을 반환해보자.&lt;br /&gt;
** = 후행 반환 타입을 통해 함수를 정의해보자.&lt;br /&gt;
** = 반환 타입 유추가 필요할 땐 auto를 사용하자.&lt;br /&gt;
** = const_cast가 함수 속에서 유용하게 쓰이는 경우를 알아두자.&lt;br /&gt;
** = 매개변수에 기본 값이 필요하다면 기본 인자를 선언해보자.&lt;br /&gt;
** = inline 지정은 만능이 아님을 알아두자.&lt;br /&gt;
** = 함수 일치 과정을 파악하자.&lt;br /&gt;
** = 함수가 예외를 던지지 않는다면 noexcept로 선언하자.&lt;br /&gt;
** = 예외 명세는 가급적 사용하지 말자.&lt;br /&gt;
** #3. 이런저런 이야기&lt;br /&gt;
** = switch 레이블에서 초기화 우회를 조심하자.&lt;br /&gt;
** = 피연산자 평가 순서에 조심하자.&lt;br /&gt;
** = sizeof 연산자를 돌아보자.&lt;br /&gt;
** = 디버깅에 도움이 되는 도구들을 알아두자.&lt;br /&gt;
** = 가급적이면 auto를 선호하자.&lt;br /&gt;
** = auto 형식 추론이 예상치 않은 타입일 경우 캐스팅을 활용하자.&lt;br /&gt;
** = 매크로보다는 상수나 inline이 낫다.&lt;br /&gt;
** = (지나가는) 캐스팅 퀴즈&lt;br /&gt;
&lt;br /&gt;
* Chapter 4. 클래스 Basic&lt;br /&gt;
** #1. 멤버 함수&lt;br /&gt;
** = this의 정체를 파악하자.&lt;br /&gt;
** = const 멤버 함수의 배경과 this의 관계를 알아두자.&lt;br /&gt;
** = 멤버 함수 정의와 inline과의 관계를 파악하자.&lt;br /&gt;
** = 클래스는 새로운 유효 범위를 형성한다.&lt;br /&gt;
** = 클래스에 대해 컴파일러가 이름 검색을 하는 과정을 알아두자.&lt;br /&gt;
** = 멤버 함수에 대해 컴파일러가 이름 검색을 하는 과정을 알아두자. &lt;br /&gt;
** #2. 생성자&lt;br /&gt;
** = 생성자와 const 객체의 관계를 파악하자.&lt;br /&gt;
** = 명시적으로 합성 멤버를 원한다면 default를 명시하자.&lt;br /&gt;
** = 멤버 변수의 초기화 값이 선택되는 순서를 알아두자.&lt;br /&gt;
** = 생성자 초기화 리스트 내에서 멤버의 초기화 순서에 주의하자.&lt;br /&gt;
** = 위임 생성자를 활용하자.&lt;br /&gt;
** = 생성자 선언 시에는 변환 생성자에 항상 주의해야 한다.&lt;br /&gt;
** #3. 다양한 클래스들&lt;br /&gt;
** = 집합 클래스에 대해 알아보자.&lt;br /&gt;
** = 상수 클래스에 대해 알아보자.&lt;br /&gt;
** #4. 클래스와 정적 멤버&lt;br /&gt;
** = 정적 멤버의 선언과 정의, 사용 방법을 알아두자.&lt;br /&gt;
** #5. 프렌드&lt;br /&gt;
** = 클래스 간의 프렌드 관계를 파악하자.&lt;br /&gt;
** = 프렌드 선언과 함수와의 관계를 파악하자.&lt;br /&gt;
** = friend 선언과 일반적인 선언은 차이가 있음을 알아두자.&lt;br /&gt;
** #5. 이런저런 이야기&lt;br /&gt;
** = 클래스 멤버의 mutable 속성에 대해서 알아두자.&lt;br /&gt;
** = const 멤버 함수가 상수성을 반드시 보장하지 않음을 명심하자.&lt;br /&gt;
** = 형식 정의 시 class와 struct 키워드의 차이를 알아두자.&lt;br /&gt;
** = 기본 생성자의 존재 여부는 가볍게 볼 것이 아니다.&lt;br /&gt;
** = 물리적인 const와 논리적인 const를 구별하자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 5. I/O와 C++&lt;br /&gt;
** #1. 라이브러리&lt;br /&gt;
** = 표준 라이브러리 I/O 객체의 종류와 구성 방식을 알아보자.&lt;br /&gt;
** = 표준 라이브러리 I/O 객체의 특징을 알아보자.&lt;br /&gt;
** #2. I/O와 조건 상태와 버퍼 관리&lt;br /&gt;
** = 스트림과 조건식과의 관계를 파악하자.&lt;br /&gt;
** = 스트림의 상태를 점검해보자!&lt;br /&gt;
** = 스트림을 서로 묶어서 버퍼를 관리해보자.&lt;br /&gt;
** #3. 파일 I/O&lt;br /&gt;
** = 파일 스트림 객체의 사용법을 다시 돌아보자.&lt;br /&gt;
** = 파일 스트림을 여는 여러가지 방식을 정리해보자.&lt;br /&gt;
** #4. 문자열 I/O&lt;br /&gt;
** = 문자열 스트림 객체의 사용법을 다시 돌아보자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 6. 순차 컨테이너&lt;br /&gt;
** #1. 순차 컨테이너 개관&lt;br /&gt;
** = 사용 가능한 순차 컨테이너의 종류를 알아보자.&lt;br /&gt;
** = 컨테이너의 공통적인 연산의 종류에 대해 알아보자.&lt;br /&gt;
** = 반복자 범위에 대해서 알아보자.&lt;br /&gt;
** #2. 순차 컨테이너 연산&lt;br /&gt;
** = 순차 컨테이너에 대한 assign과 swap 연산에 대해 알아보자.&lt;br /&gt;
** = 순차 컨테이너에 대한 요소 삽입/접근/삭제에 대해 알아보자.&lt;br /&gt;
** = 반복자 무효화에 대해 항상 조심하자.&lt;br /&gt;
** = vector/string에서의 capacity와 size를 구분하자.&lt;br /&gt;
** #3. Advanced String&lt;br /&gt;
** = string 객체를 생성하는 더 많은 방법을 알아보자.&lt;br /&gt;
** = string의 내용을 더 다양하게 조작해보자.&lt;br /&gt;
** = string 검색과 비교에 대해 알아보자.&lt;br /&gt;
** = string과 수치 변환에 대해 알아보자.&lt;br /&gt;
** #4. 컨테이너 어댑터&lt;br /&gt;
** = 컨테이너 어댑터의 공통적인 연산의 종류에 대해 알아보자.&lt;br /&gt;
** = 스택/큐 연산에 대해 알아보자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 7. 일반화 알고리즘&lt;br /&gt;
** #1. 일반화 알고리즘 개관&lt;br /&gt;
** = 알고리즘과 반복자, 알고리즘과 컨테이너 사이의 관계를 알아보자.&lt;br /&gt;
** #2. 일반화 알고리즘의 분류&lt;br /&gt;
** = 요소 읽기 알고리즘에 대해 알아보자.&lt;br /&gt;
** = 요소 기록 알고리즘에 대해 알아보자.&lt;br /&gt;
** = 요소 정렬 알고리즘에 대해 알아보자.&lt;br /&gt;
** = 수많은 알고리즘을 이름에 따라 분류해보자.&lt;br /&gt;
** = 알고리즘들의 매개변수 패턴에 대해 알아보자.&lt;br /&gt;
** #3. 람다 표현식&lt;br /&gt;
** = 알고리즘과 술어 함수와의 관계를 알아보자.&lt;br /&gt;
** = 함수 호출성 객체, 펑터(Functor)에 대해 알아보자.&lt;br /&gt;
** = 람다 표현식의 형식을 살펴보자.&lt;br /&gt;
** = 일반적 람다에 대해 알아보자.&lt;br /&gt;
** = 갈무리 목록의 사용 형식들에 대해 알아보자.&lt;br /&gt;
** #4. 함수 바인딩&lt;br /&gt;
** = 함수 어댑터 역할을 하는 bind에 대해 알아보자.&lt;br /&gt;
** = 함수 바인딩에 쓰이는 Placeholder에 대해 알아보자.&lt;br /&gt;
** = 함수 바인딩에 유용한 functional 함수들을 알아두자.&lt;br /&gt;
** #4. 반복자&lt;br /&gt;
** = 특수한 반복자의 종류에 대해 알아보자.&lt;br /&gt;
** = 삽입 반복자, inserter 반복자에 대해 알아보자.&lt;br /&gt;
** #5. 컨테이너 특수화 알고리즘&lt;br /&gt;
&lt;br /&gt;
* Chapter 8. 연관 컨테이너&lt;br /&gt;
** #1. 연관 컨테이너 개관&lt;br /&gt;
&lt;br /&gt;
* Chapter 9. STL의 효율성과 함정&lt;br /&gt;
&lt;br /&gt;
* 계속 작성 예정입니다.&lt;br /&gt;
&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
* 얍 - [[성훈]]&lt;br /&gt;
** 얍! 얍! 얍! - [[박인서]]&lt;br /&gt;
-----------&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=MFC%2B%2B&amp;diff=34356</id>
		<title>MFC++</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=MFC%2B%2B&amp;diff=34356"/>
		<updated>2016-11-07T14:56:55Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* &#039;&#039;&#039;M&#039;&#039;&#039;astering &#039;&#039;&#039;F&#039;&#039;&#039;urther &#039;&#039;&#039;C++&#039;&#039;&#039;&lt;br /&gt;
** --Mxxxxx Fxxxxxx C++...--&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
* 진행 방식은 과거 [[미시Cpp]]를 벤치마킹(?)해서 진행합니다.&lt;br /&gt;
** 즉, 주마다 특정 주제 내용을 소개하는 방식으로 진행됩니다.&lt;br /&gt;
* 진행 스타일은 과거 [[CS]] 스터디와 동일합니다.&lt;br /&gt;
** --템플릿도 그냥 복사해서...--&lt;br /&gt;
&lt;br /&gt;
* 2016년 2학기 시작 직후부터 시작합니다.&lt;br /&gt;
* 되도록이면 수요일 정모 직후, 7시에서 9시까지 진행합니다.&lt;br /&gt;
** 주마다 진행 요일이 불가피하게 바뀌어야 할 수도 있습니다.&lt;br /&gt;
&lt;br /&gt;
* 진행에 사용되는 소스 코드는 해당 레포지토리에 있습니다.&lt;br /&gt;
** [https://github.com/nErumin/MFCplusplusSource]&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* 기반 C++ 내용에 대해서는 거의 생략할 예정이므로, 대체적으로 이미 C++을 공부해본 경험이 있으신 편이 좋습니다.&lt;br /&gt;
* 참가하실 분은 아래 이름을 적어주세요!&lt;br /&gt;
* [[신형철]], [[박인서]], ~~프로 도강러~~[[성훈]]&lt;br /&gt;
== 목표 ==&lt;br /&gt;
* C++ 돌아보기 --돌아보는 척 하면서 더 낯설게 만들기--&lt;br /&gt;
* C++11과 C++14의 내용 숙지&lt;br /&gt;
* 흔한 C++ 프로그래밍 실수 방지하기&lt;br /&gt;
* C++에서의 동시성 활용하기&lt;br /&gt;
&lt;br /&gt;
== 참고 ==&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.lafejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788945072207&amp;amp;orderClick=LAG&amp;amp;Kc=|C++ Primer 5th Edition]&lt;br /&gt;
** 기본 바탕은 이 책을 기준으로 합니다.&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9791195444946&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956743998&amp;amp;orderClick=LAH&amp;amp;Kc=|More Effective C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788966261642&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective Modern C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956743110&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective STL]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewEng.laf?ejkGb=BNT&amp;amp;mallGb=ENG&amp;amp;barcode=9781933988771&amp;amp;orderClick=LAG&amp;amp;Kc=|C++ Concurrency In Action]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788980545063&amp;amp;orderClick=LAG&amp;amp;Kc=|Exceptional C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788955507904&amp;amp;orderClick=LAG&amp;amp;Kc=|More Exceptional C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956742618&amp;amp;orderClick=LAG&amp;amp;Kc=|Exceptional C++ Style]&lt;br /&gt;
* 그 외 위키피디아와 C++ 레퍼런스 사이트 등&lt;br /&gt;
&lt;br /&gt;
== 진행 내용 ==&lt;br /&gt;
* [[MFC++/9월7일]]&lt;br /&gt;
* [[MFC++/10월5일]]&lt;br /&gt;
* [[MFC++/11월2일]]&lt;br /&gt;
&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* Chapter 1. 변수와 타입&lt;br /&gt;
** #1. 산술 타입&lt;br /&gt;
** = 부동소수점 연산 시에는 정밀도 손실을 항상 경계하자.&lt;br /&gt;
** = (지나가는) long long의 숨겨진 이야기&lt;br /&gt;
** #2. 문자 타입&lt;br /&gt;
** = char, signed char, unsigned char를 구분하자.&lt;br /&gt;
** = 때로는 다양한 문자 표현들을 고려하자.&lt;br /&gt;
** = 필요하다면 이스케이프 시퀀스는 무시하자.&lt;br /&gt;
** #3. 내장 타입 간 형변환&lt;br /&gt;
** = 타입의 범위를 넘어가는 값 대입은 예상처럼 작동할 수도, 그렇지 않을 수도 있다.&lt;br /&gt;
** = 부호 있는 타입과 부호 없는 타입을 섞어쓰는 표현식은 항상 경계하자.&lt;br /&gt;
** #4. 상수&lt;br /&gt;
** = 다양한 상수 표기를 활용하자.&lt;br /&gt;
** #5. 초기화와 분리 컴파일&lt;br /&gt;
** = 초기화와 대입의 의미를 구분하자.&lt;br /&gt;
** = 기존의 초기화 방식과 목록 초기화 방식의 차이점을 숙지하자.&lt;br /&gt;
** = 변수의 선언과 정의를 구분하자.&lt;br /&gt;
** #6. 복합 타입&lt;br /&gt;
** = 참조자의 의미를 돌아보자.&lt;br /&gt;
** = 포인터의 의미를 돌아보자.&lt;br /&gt;
** = 복합 타입과 바탕 타입을 형식으로써 섞어 사용하지 말자.&lt;br /&gt;
** = 널 포인터를 표현하고 싶을 때 선택할 수 있는 것은 딱 하나뿐이다.&lt;br /&gt;
** = 참조자와 포인터를 구분해서 사용하자.&lt;br /&gt;
** #7. const와 constexpr&lt;br /&gt;
** = 초기화와 const의 관계를 파악하자.&lt;br /&gt;
** = const 변수를 여러 파일에서 공유하려 할 때는 주의하자.&lt;br /&gt;
** = 상위 const와 하위 const를 구분하자.&lt;br /&gt;
** = 적합하다면, constexpr을 항상 곁에 두자.&lt;br /&gt;
** #8. auto와 decltype&lt;br /&gt;
** = auto의 동작 원리를 파악하자.&lt;br /&gt;
** = decltype의 동작 원리를 파악하자.&lt;br /&gt;
** #9. 나머지 이야기&lt;br /&gt;
** = 타입 별칭을 사용할 때는 별칭 선언을 사용하자.&lt;br /&gt;
** = 상황에 따라서는 변수도 일반화해서 정의해보자.&lt;br /&gt;
** = (지나가는) 코드를 분석해보자.&lt;br /&gt;
** = (지나가는) 키워드는 왜 식별자로 사용이 불가능할까?&lt;br /&gt;
** = (지나가는) 내장 bool 타입은 꼭 필요한걸까?&lt;br /&gt;
** = (지나가는) C 라이브러리와 C++ 버전 라이브러리의 차이는 무엇일까?&lt;br /&gt;
&lt;br /&gt;
* Chapter 2. 문자열과 배열, 벡터&lt;br /&gt;
** #1. string&lt;br /&gt;
** = 유니코드에 맞는 string을 사용하자.&lt;br /&gt;
** = string 생성자 종류와 string 연산들의 종류를 대략적으로 알아두자.&lt;br /&gt;
** = 문자 제어에 도움이 되는 함수들을 알아두자.&lt;br /&gt;
** = string을 스트림을 통해 읽어들일 때, istream/getline 간 차이를 파악하자.&lt;br /&gt;
** = size_t, size_type 등의 typedef 타입들의 의미를 파악하자.&lt;br /&gt;
** = C-Style String은 가급적이면 사용하지 말자.&lt;br /&gt;
** #2. 배열&lt;br /&gt;
** = 포인터 타입과 배열 타입 간 형식 연역 차이를 파악하자.&lt;br /&gt;
** = 포인터를 배열에 대한 반복자로 생각하자.&lt;br /&gt;
** #3. 벡터&lt;br /&gt;
** = 벡터 생성자 종류와 벡터 연산들의 종류를 대략적으로 파악하자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 3. 표현식과 문장, 함수&lt;br /&gt;
** #1. 변환과 캐스팅&lt;br /&gt;
** = (지나가는) 산술 타입 간 암시적 변환과 정수 승격 기준을 알아보자.&lt;br /&gt;
** = C++ 스타일의 캐스팅을 사용하자.&lt;br /&gt;
** #2. 함수&lt;br /&gt;
** = 자동 객체와 지역 static 객체를 돌아보자.&lt;br /&gt;
** = const와 함수 매개변수의 관계에 조심하자.&lt;br /&gt;
** = 배열 매개변수를 선언하는 다양한 방법을 파악하자.&lt;br /&gt;
** = initializer_list를 사용해서 가변 매개변수를 흉내내보자.&lt;br /&gt;
** = (지나가는) 함수에서 배열 타입을 반환해보자.&lt;br /&gt;
** = 후행 반환 타입을 통해 함수를 정의해보자.&lt;br /&gt;
** = 반환 타입 유추가 필요할 땐 auto를 사용하자.&lt;br /&gt;
** = const_cast가 함수 속에서 유용하게 쓰이는 경우를 알아두자.&lt;br /&gt;
** = 매개변수에 기본 값이 필요하다면 기본 인자를 선언해보자.&lt;br /&gt;
** = inline 지정은 만능이 아님을 알아두자.&lt;br /&gt;
** = 함수 일치 과정을 파악하자.&lt;br /&gt;
** = 함수가 예외를 던지지 않는다면 noexcept로 선언하자.&lt;br /&gt;
** = 예외 명세는 가급적 사용하지 말자.&lt;br /&gt;
** #3. 이런저런 이야기&lt;br /&gt;
** = switch 레이블에서 초기화 우회를 조심하자.&lt;br /&gt;
** = 피연산자 평가 순서에 조심하자.&lt;br /&gt;
** = sizeof 연산자를 돌아보자.&lt;br /&gt;
** = 디버깅에 도움이 되는 도구들을 알아두자.&lt;br /&gt;
** = 가급적이면 auto를 선호하자.&lt;br /&gt;
** = auto 형식 추론이 예상치 않은 타입일 경우 캐스팅을 활용하자.&lt;br /&gt;
** = 매크로보다는 상수나 inline이 낫다.&lt;br /&gt;
** = (지나가는) 캐스팅 퀴즈&lt;br /&gt;
&lt;br /&gt;
* Chapter 4. 클래스 Basic&lt;br /&gt;
** #1. 멤버 함수&lt;br /&gt;
** = this의 정체를 파악하자.&lt;br /&gt;
** = const 멤버 함수의 배경과 this의 관계를 알아두자.&lt;br /&gt;
** = 멤버 함수 정의와 inline과의 관계를 파악하자.&lt;br /&gt;
** = 클래스는 새로운 유효 범위를 형성한다.&lt;br /&gt;
** = 클래스에 대해 컴파일러가 이름 검색을 하는 과정을 알아두자.&lt;br /&gt;
** = 멤버 함수에 대해 컴파일러가 이름 검색을 하는 과정을 알아두자. &lt;br /&gt;
** #2. 생성자&lt;br /&gt;
** = 생성자와 const 객체의 관계를 파악하자.&lt;br /&gt;
** = 명시적으로 합성 멤버를 원한다면 default를 명시하자.&lt;br /&gt;
** = 멤버 변수의 초기화 값이 선택되는 순서를 알아두자.&lt;br /&gt;
** = 생성자 초기화 리스트 내에서 멤버의 초기화 순서에 주의하자.&lt;br /&gt;
** = 위임 생성자를 활용하자.&lt;br /&gt;
** = 생성자 선언 시에는 변환 생성자에 항상 주의해야 한다.&lt;br /&gt;
** #3. 다양한 클래스들&lt;br /&gt;
** = 집합 클래스에 대해 알아보자.&lt;br /&gt;
** = 상수 클래스에 대해 알아보자.&lt;br /&gt;
** #4. 클래스와 정적 멤버&lt;br /&gt;
** = 정적 멤버의 선언과 정의, 사용 방법을 알아두자.&lt;br /&gt;
** #5. 프렌드&lt;br /&gt;
** = 클래스 간의 프렌드 관계를 파악하자.&lt;br /&gt;
** = 프렌드 선언과 함수와의 관계를 파악하자.&lt;br /&gt;
** = friend 선언과 일반적인 선언은 차이가 있음을 알아두자.&lt;br /&gt;
** #5. 이런저런 이야기&lt;br /&gt;
** = 클래스 멤버의 mutable 속성에 대해서 알아두자.&lt;br /&gt;
** = const 멤버 함수가 상수성을 반드시 보장하지 않음을 명심하자.&lt;br /&gt;
** = 형식 정의 시 class와 struct 키워드의 차이를 알아두자.&lt;br /&gt;
** = 기본 생성자의 존재 여부는 가볍게 볼 것이 아니다.&lt;br /&gt;
** = 물리적인 const와 논리적인 const를 구별하자.&lt;br /&gt;
&lt;br /&gt;
* Chapter 5. I/O와 C++&lt;br /&gt;
** #1. 라이브러리&lt;br /&gt;
** = 표준 라이브러리 I/O 객체의 종류와 구성 방식을 알아보자.&lt;br /&gt;
** = 표준 라이브러리 I/O 객체의 속성을 알아보자.&lt;br /&gt;
** #2. I/O와 조건 상태&lt;br /&gt;
** #3. I/O와 출력 버퍼&lt;br /&gt;
* Chapter 6. STL 속 순차 컨테이너&lt;br /&gt;
* Chapter 7. STL 속 일반화 알고리즘&lt;br /&gt;
* Chapter 8. STL 속 연관 컨테이너&lt;br /&gt;
* Chapter 9. C++과 동적 할당&lt;br /&gt;
* 계속 작성 예정입니다.&lt;br /&gt;
&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
* 얍 - [[성훈]]&lt;br /&gt;
** 얍! 얍! 얍! - [[박인서]]&lt;br /&gt;
-----------&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=MFC%2B%2B&amp;diff=34348</id>
		<title>MFC++</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=MFC%2B%2B&amp;diff=34348"/>
		<updated>2016-09-11T16:41:33Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* &#039;&#039;&#039;M&#039;&#039;&#039;astering &#039;&#039;&#039;F&#039;&#039;&#039;urther &#039;&#039;&#039;C++&#039;&#039;&#039;&lt;br /&gt;
** --Mxxxxx Fxxxxxx C++...--&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
* 진행 방식은 과거 [[미시Cpp]]를 벤치마킹(?)해서 진행합니다.&lt;br /&gt;
** 즉, 주마다 특정 주제 내용을 소개하는 방식으로 진행됩니다.&lt;br /&gt;
* 진행 스타일은 과거 [[CS]] 스터디와 동일합니다.&lt;br /&gt;
** --템플릿도 그냥 복사해서...--&lt;br /&gt;
&lt;br /&gt;
* 2016년 2학기 시작 직후부터 시작합니다.&lt;br /&gt;
* 되도록이면 수요일 정모 직후, 7시에서 9시까지 진행합니다.&lt;br /&gt;
** 주마다 진행 요일이 불가피하게 바뀌어야 할 수도 있습니다.&lt;br /&gt;
&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* 기반 C++ 내용에 대해서는 거의 생략할 예정이므로, 대체적으로 이미 C++을 공부해본 경험이 있으신 편이 좋습니다.&lt;br /&gt;
* 참가하실 분은 아래 이름을 적어주세요!&lt;br /&gt;
* [[신형철]], [[박인서]], ~~프로 도강러~~[[성훈]], [[강민승]],&lt;br /&gt;
&lt;br /&gt;
== 목표 ==&lt;br /&gt;
* C++ 돌아보기 --돌아보는 척 하면서 더 낯설게 만들기--&lt;br /&gt;
* C++11과 C++14의 내용 숙지&lt;br /&gt;
* 흔한 C++ 프로그래밍 실수 방지하기&lt;br /&gt;
* C++에서의 동시성 활용하기&lt;br /&gt;
&lt;br /&gt;
== 참고 ==&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.lafejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788945072207&amp;amp;orderClick=LAG&amp;amp;Kc=|C++ Primer 5th Edition]&lt;br /&gt;
** 기본 바탕은 이 책을 기준으로 합니다.&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9791195444946&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956743998&amp;amp;orderClick=LAH&amp;amp;Kc=|More Effective C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788966261642&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective Modern C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956743110&amp;amp;orderClick=LAH&amp;amp;Kc=|Effective STL]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewEng.laf?ejkGb=BNT&amp;amp;mallGb=ENG&amp;amp;barcode=9781933988771&amp;amp;orderClick=LAG&amp;amp;Kc=|C++ Concurrency In Action]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788980545063&amp;amp;orderClick=LAG&amp;amp;Kc=|Exceptional C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788955507904&amp;amp;orderClick=LAG&amp;amp;Kc=|More Exceptional C++]&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788956742618&amp;amp;orderClick=LAG&amp;amp;Kc=|Exceptional C++ Style]&lt;br /&gt;
* 그 외 위키피디아와 C++ 레퍼런스 사이트 등&lt;br /&gt;
&lt;br /&gt;
== 진행 내용 ==&lt;br /&gt;
* [[MFC++/9월7일]]&lt;br /&gt;
&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* Chapter 1. 변수와 타입&lt;br /&gt;
** #1. 산술 타입&lt;br /&gt;
** = 부동소수점 연산 시에는 정밀도 손실을 항상 경계하자.&lt;br /&gt;
** = (지나가는) long long의 숨겨진 이야기&lt;br /&gt;
** #2. 문자 타입&lt;br /&gt;
** = char, signed char, unsigned char를 구분하자.&lt;br /&gt;
** = 때로는 다양한 문자 표현들을 고려하자.&lt;br /&gt;
** = 필요하다면 이스케이프 시퀀스는 무시하자.&lt;br /&gt;
** #3. 내장 타입 간 형변환&lt;br /&gt;
** = 타입의 범위를 넘어가는 값 대입은 예상처럼 작동할 수도, 그렇지 않을 수도 있다.&lt;br /&gt;
** = 부호 있는 타입과 부호 없는 타입을 섞어쓰는 표현식은 항상 경계하자.&lt;br /&gt;
** #4. 상수&lt;br /&gt;
** = 다양한 상수 표기를 활용하자.&lt;br /&gt;
** #5. 초기화와 분리 컴파일&lt;br /&gt;
** = 초기화와 대입의 의미를 구분하자.&lt;br /&gt;
** = 기존의 초기화 방식과 목록 초기화 방식의 차이점을 숙지하자.&lt;br /&gt;
** = 변수의 선언과 정의를 구분하자.&lt;br /&gt;
** #6. 복합 타입&lt;br /&gt;
** = 참조자의 의미를 돌아보자.&lt;br /&gt;
** = 포인터의 의미를 돌아보자.&lt;br /&gt;
** = 복합 타입과 바탕 타입을 형식으로써 섞어 사용하지 말자.&lt;br /&gt;
** = 널 포인터를 표현하고 싶을 때 선택할 수 있는 것은 딱 하나뿐이다.&lt;br /&gt;
** = 참조자와 포인터를 구분해서 사용하자.&lt;br /&gt;
** #7. const와 constexpr&lt;br /&gt;
** = 초기화와 const의 관계를 파악하자.&lt;br /&gt;
** = const 변수를 여러 파일에서 공유하려 할 때는 주의하자.&lt;br /&gt;
** = 상위 const와 하위 const를 구분하자.&lt;br /&gt;
** = 적합하다면, constexpr을 항상 곁에 두자.&lt;br /&gt;
** #8. auto와 decltype&lt;br /&gt;
** = auto의 동작 원리를 파악하자.&lt;br /&gt;
** = decltype의 동작 원리를 파악하자.&lt;br /&gt;
** #9. 나머지 이야기&lt;br /&gt;
** = 타입 별칭을 사용할 때는 별칭 선언을 사용하자.&lt;br /&gt;
** = 상황에 따라서는 변수도 일반화해서 정의해보자.&lt;br /&gt;
** = (지나가는) 코드를 분석해보자.&lt;br /&gt;
** = (지나가는) 키워드는 왜 식별자로 사용이 불가능할까?&lt;br /&gt;
** = (지나가는) 내장 bool 타입은 꼭 필요한걸까?&lt;br /&gt;
** = (지나가는) C 라이브러리와 C++ 버전 라이브러리의 차이는 무엇일까?&lt;br /&gt;
&lt;br /&gt;
* Chapter 2. 문자열과 배열, 벡터&lt;br /&gt;
** #1. string&lt;br /&gt;
** = 유니코드에 맞는 string을 사용하자.&lt;br /&gt;
** = string 생성자 종류와 string 연산들의 종류를 대략적으로 알아두자.&lt;br /&gt;
** = 문자 제어에 도움이 되는 함수들을 알아두자.&lt;br /&gt;
** = string을 스트림을 통해 읽어들일 때, istream/getline 간 차이를 파악하자.&lt;br /&gt;
** = size_t, size_type 등의 typedef 타입들의 의미를 파악하자.&lt;br /&gt;
** = C-Style String은 가급적이면 사용하지 말자.&lt;br /&gt;
** #2. 배열&lt;br /&gt;
** = 포인터 타입과 배열 타입 간 형식 연역 차이를 파악하자.&lt;br /&gt;
** = 포인터를 배열에 대한 반복자로 생각하자.&lt;br /&gt;
** #3. 벡터&lt;br /&gt;
** = 벡터 생성자 종류와 벡터 연산들의 종류를 대략적으로 파악하자.&lt;br /&gt;
** #4. 반복자&lt;br /&gt;
&lt;br /&gt;
* Chapter 3. 표현식과 문장&lt;br /&gt;
* Chapter 4. 함수&lt;br /&gt;
&lt;br /&gt;
* 계속 작성 예정입니다.&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
* 얍 - [[성훈]]&lt;br /&gt;
** 얍! 얍! 얍! - [[박인서]]&lt;br /&gt;
-----------&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CS/7%EC%9B%9413%EC%9D%BC&amp;diff=29828</id>
		<title>CS/7월13일</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CS/7%EC%9B%9413%EC%9D%BC&amp;diff=29828"/>
		<updated>2016-07-17T14:04:16Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* 점점 끝이 보이나요?&lt;br /&gt;
&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* [[신형철]], [[이승현]], [[박인서]], [[성훈]], [[홍성현]]&lt;br /&gt;
&lt;br /&gt;
== 진행 시간 ==&lt;br /&gt;
* 2시 30분 ~ 5시&lt;br /&gt;
* 6시 ~ 7시 30분&lt;br /&gt;
** ~~2부제~~&lt;br /&gt;
&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* 다소 중요하다고 생각된 내용은 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;보라색 볼드(굵게)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93; 처리하였습니다.&lt;br /&gt;
&lt;br /&gt;
* #11. C# 3.0으로 올라서기&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;타입 추론(Type Inference), var 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자동 구현 속성(Auto-Implemented Property)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 객체 초기화, 컬렉션 초기화&lt;br /&gt;
** 익명 타입&lt;br /&gt;
** 부분 메서드&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;확장 메서드(Extension Method)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;람다 식(Lambda Expression)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 람다 지원 델리게이트, Action, Func, Predicate&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Enumerable 정적 클래스와 람다 식, 컬렉션&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 식 트리로 사용되는 람다 식&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;LINQ(Language-integrated Query)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;LINQ와 from-in, where, group-by&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;지연 연산(Lazy Evaluation)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #12. BCL Part.2&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;메타데이터와 리플렉션&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;AppDomain&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;리플렉션을 통한 어셈블리/모듈/타입/메서드 접근&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 리플렉션과 코드 결합&lt;br /&gt;
** 리플렉션과 플러그인(Plug-in)&lt;br /&gt;
&lt;br /&gt;
* #13. C# 4.0으로 올라서기&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭 타입 매개변수에 대한 Covariance/Contravariance&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;선택적 매개변수(Optional Parameter)와 명명된 인자(Named Argument)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 닷넷 프레임워크 속 DLR&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;dynamic 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;dynamic과 리플렉션&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;덕 타이핑(Duck typing)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #14. C# 6.0으로 올라서기&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;널 조건 연산자 (Null-conditional operator)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;문자열 내삽(String interpolation)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;인덱서 Dictionary 초기자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** nameof 연산자&lt;br /&gt;
** using static 키워드&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Exception Filtering&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자동 구현 속성 초기자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;읽기 전용 자동 구현 속성&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Expression-bodied member&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
=== 내용 요약 ===&lt;br /&gt;
==== 11. C# 3.0으로 올라서기 ====&lt;br /&gt;
* var를 통해 타입을 정의하면 컴파일러가 타입을 유추하도록 할 수 있다.&lt;br /&gt;
* 단순 접근/설정자 설정을 위해서는 자동 구현 속성 기능을 통해 편리하게 구현할 수 있다.&lt;br /&gt;
* 객체 초기화 기능을 통해, 클라이언트가 인스턴스의 공용 속성을 생성 시 설정하도록 할 수 있다.&lt;br /&gt;
* 컬렉션 초기화 기능을 통해, 컬렉션의 초기 구성 요소를 생성 시 구성할 수 있다.&lt;br /&gt;
* 익명 타입을 통해, 일시적으로 데이터를 담아놓을 타입을 생성할 수 있다.&lt;br /&gt;
* 부분 메서드 기능을 이용하면 메서드를 여러 곳에 분산하여 작성할 수 있다.&lt;br /&gt;
* 확장 메서드 기능을 통해 상속 없이도 클래스의 지원 메서드를 확장할 수 있다.&lt;br /&gt;
* 람다 식은 익명 메서드 대용이나 식 자체로 사용된다.&lt;br /&gt;
* BCL에는 람다 식 이용에 필요한 델리게이트들이 미리 선언되어 있다.&lt;br /&gt;
* Enumerable 정적 클래스에는 컬렉션 지원을 위한 확장 메서드가 여러 정의되어 있고, 대개는 람다 식을 이용한다.&lt;br /&gt;
* 람다 식을 식 트리 용도로 사용하면 동적으로 코드를 생성하는 등의 기능이 가능하다.&lt;br /&gt;
* LINQ 기능이 지원된 이후로 컬렉션 개체에 쿼리 문을 사용할 수 있다.&lt;br /&gt;
* LINQ 쿼리 반환 타입을 이용하여 쿼리 문에 대한 지연 연산을 이끌어 낼 수도 있다.&lt;br /&gt;
&lt;br /&gt;
==== 12. BCL Part.2 ====&lt;br /&gt;
* 리플렉션을 이용하면 닷넷 프로세스 내에 저장된 메타데이터를 이용할 수 있다.&lt;br /&gt;
* AppDomain은 CLR이 만들어낸 격리 공간으로, 안에는 로드된 어셈블리들이 존재한다.&lt;br /&gt;
* 리플렉션을 통해, AppDomain - Module - Type - Method 계층 구조에 접근할 수 있다.&lt;br /&gt;
* 리플렉션을 통해 타입에 간접적으로 접근하여 메서드를 호출하거나 인스턴스를 생성하는 것을 느슨한 코드 결합이라고 한다.&lt;br /&gt;
* 리플렉션을 이용하여 플러그인등의 기능을 지원할 수 있다.&lt;br /&gt;
&lt;br /&gt;
==== 13. C# 4.0으로 올라서기 ====&lt;br /&gt;
* 제네릭 타입 매개변수에 out/in의 키워드를 이용하여 제네릭 타입 간 형변환을 지원할 수 있다.&lt;br /&gt;
* 선택적 매개변수를 통해 매개변수에 기본값을 할당할 수 있으며, 명명된 인자를 통해 선택적으로 인자에 값을 넣을 수 있다.&lt;br /&gt;
* dynamic 예약어를 이용하면 C#에서 동적 타입을 이용하듯이 사용할 수 있다.&lt;br /&gt;
* dynamic을 이용하면 리플렉션 관련 코드를 깔끔하게 줄여 사용할 수 있다.&lt;br /&gt;
* 어느 한 기능이 지원될 때, 두 인스턴스가 같은 종류의 인스턴스로 보는 관점을 덕 타이핑이라 한다.&lt;br /&gt;
&lt;br /&gt;
==== 14. C# 6.0으로 올라서기 ====&lt;br /&gt;
* 널 조건 연산자를 통해 Null 값에 대한 조건 처리 후 코드 실행 과정을 간략화시킬 수 있다.&lt;br /&gt;
* 문자열 내삽 기능을 통해 formatting이나 문자열 연결 없이도 변수값을 문자열 내에 넣을 수 있다.&lt;br /&gt;
* 인덱서를 구현한 개체에 대해 객체 초기화 시 인덱서 초기자 기법을 사용할 수 있다.&lt;br /&gt;
* nameof 연산자를 통해 어떤 필드, 클래스등의 이름을 하드코딩하지 않고도 알아낼 수 있다.&lt;br /&gt;
* using static 키워드를 통해 정적 필드 사용 시 클래스 이름을 생략하도록 할 수 있따.&lt;br /&gt;
* Exception Filtering 기능을 통해 특정 상황에서만 예외를 처리하도록 제한할 수 있다.&lt;br /&gt;
* C# 6.0부터는 자동 구현 속성에도 초기 값을 설정할 수 있으며, 읽기 전용으로 구성하는 것도 가능하다.&lt;br /&gt;
* 클래스 내 길이가 짧은 속성, 메서드들은 하나의 람다 표현식으로 정의가 가능하다.&lt;br /&gt;
&lt;br /&gt;
=== 그 외 ===&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
--------------------------------&lt;br /&gt;
[[CS]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CS&amp;diff=29776</id>
		<title>CS</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CS&amp;diff=29776"/>
		<updated>2016-07-15T14:10:36Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* CS(CSharp)에 대해 공부하는 스터디입니다. ~~Creep Score~~ ~~회사 이름~~ ~~Customer Satisfaction~~ ~~학교종합정보관리시스템~~ ~~Communication Satellite~~&lt;br /&gt;
** ~~사실 CSS(CSharp Study)로 하고 싶었어요..~~&lt;br /&gt;
&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* [[신형철]], [[이승현]], [[홍성현]], [[박인서]], [[김상렬]], [[유성현]], [[강민승]], [[성훈]]&lt;br /&gt;
== 준비물 ==&lt;br /&gt;
* 스터디는 윈도우 환경에서 진행할 예정입니다.&lt;br /&gt;
* Visual Studio 2015가 필요합니다.&lt;br /&gt;
** 2013 버전에서도 가능은 합니다만, 추후에 다룰 기능에 대해서 패키지 형식으로 별도로 설치해야하는 번거로움이 존재할 수 있습니다.&lt;br /&gt;
* .NET Framework 4.6.1 버전이 필요합니다.&lt;br /&gt;
** [https://www.microsoft.com/en-us/download/details.aspx?id=49978|다운로드 링크]&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
* ~~별 일이 없는한 매주 화요일 저녁 or 수요일 저녁에 진행합니다.~~&lt;br /&gt;
** &#039;되도록&#039;이면 수요일 정모 끝난 직후에 진행하기로 결정했습니다.&lt;br /&gt;
** 참가 인원 중 한 명이 고정적인 시간을 잡을 수가 없어서 그런 것이니 양해해주세요 Orz...&lt;br /&gt;
** 상황이 여의치 않으면 스터디 시간은 상시로 바뀔 수 있습니다.&lt;br /&gt;
* ~~대략 1시간에서 2시간 정도 진행할 예정입니다.~~&lt;br /&gt;
** 진행하다보니 2시간 꽉 채워서 밖에 안되더군요...&lt;br /&gt;
&lt;br /&gt;
== 목표 ==&lt;br /&gt;
* C# 언어에 대한 기본 문법 이해와 적용&lt;br /&gt;
* C# 1.0에서 최신인 C# 6.0까지의 내용 숙지!&lt;br /&gt;
* C#에서의 Threading, Network, DBMS와의 연동까지!&lt;br /&gt;
&lt;br /&gt;
== 참고 ==&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9791158390075&amp;amp;orderClick=LEB&amp;amp;Kc=|시작하세요! C# 6.0 프로그래밍]&lt;br /&gt;
** 진행 내용 목차도 중간에 약간씩 조정된 것 빼고는 거의 대부분 이 책과 동일합니다.&lt;br /&gt;
&lt;br /&gt;
== 진행 내용 ==&lt;br /&gt;
* [[CS/5월11일]]&lt;br /&gt;
** [[CS/5월11일/부록]]&lt;br /&gt;
* [[CS/5월25일]]&lt;br /&gt;
* [[CS/6월1일]]&lt;br /&gt;
* [[CS/6월21일]]&lt;br /&gt;
* [[CS/6월28일]]&lt;br /&gt;
* [[CS/7월5일]]&lt;br /&gt;
* [[CS/7월13일]]&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* 다소 중요하다고 생각된 내용은 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;보라색 볼드(굵게)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93; 처리하였습니다.&lt;br /&gt;
** ~~중요한 게 중요하지 않은 것보다 많게 보이는 건 착각입니다.~~&lt;br /&gt;
** ~~사실 딱히 강조처리 하는게 의미가 없을수도..~~&lt;br /&gt;
&lt;br /&gt;
* #1. 닷넷 프레임워크 살펴보기 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 11일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;닷넷 응용 프로그램의 기본 구조&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;CLR과 IL/MSIL(CIL)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 닷넷 호환 언어&lt;br /&gt;
** CTS와 CLS&lt;br /&gt;
** 메타데이터, 닷넷 응용 프로그램 속의 메타데이터&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리, 모듈&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** CLI와 CTS, CLI와 닷넷 프레임워크&lt;br /&gt;
** 닷넷 프레임워크 구성 요소&lt;br /&gt;
** 기존 윈도우 프로그램과 닷넷 응용 프로그램의 대응 관계&lt;br /&gt;
** 모노(Mono) 프레임워크&lt;br /&gt;
** C#과 닷넷 프레임워크&lt;br /&gt;
** Naming Convention&lt;br /&gt;
&lt;br /&gt;
* #2. C#의 타입과 문장(Statement), 배열 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 11일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자료형과 기본 자료형&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 정수 타입, 실수 타입, 문자 타입. 상수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** C#에서의 변수 초기화&lt;br /&gt;
** C#에서의 Escape Sequence&lt;br /&gt;
** 형변환&lt;br /&gt;
** 예약어와 식별자&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;값 형식과 참조 형식&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;배열, 다차원 배열, 가변 배열&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;논리 연산자, 관계 연산자, 조건 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#의 조건문과 반복문, 점프문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #3. 클래스와 객체지향 Part.#1 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 25일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스와 인스턴스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;new 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;데이터 멤버와 메서드 정의&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;생성자와 소멸자, 기본 생성자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** GC와 소멸자&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;정적 데이터 멤버와 정적 메서드&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;정적 생성자(Static Constructor)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 네임스페이스와 클래스, using을 통한 네임스페이스 선언&lt;br /&gt;
** C#에서의 FQDN&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 접근 제한자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;접근자 메서드와 설정자 메서드, 그리고 속성(Property)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 문맥 예약어&lt;br /&gt;
** 가변 객체와 불변 객체&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스 내 데이터 멤버로써의 상수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;readonly 데이터 변수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;메서드 오버로딩&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;연산자 오버로딩&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 중첩 클래스&lt;br /&gt;
&lt;br /&gt;
* #4. 클래스와 객체지향 Part.#2 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 25일 ~ 6월 1일에 걸쳐 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 클래스 상속&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 봉인된 클래스(Sealed class)&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스 상속 관계에서의 형변환&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;as 연산자와 is 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;enum 클래스 타입&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** enum과 Flag 특성&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;this 예약어와 base 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;인덱서 구문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;virtual 예약어와 가상 함수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;메서드 오버라이딩과 new 예약어를 통한 메서드 정의&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스 간의 형변환&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;추상 메서드와 추상 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #5. 클래스와 객체지향 Part.#3 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(6월 1일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;델리게이트(delegate)의 정의&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;델리게이트의 특성, C#과 1급 함수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** System.MulticastDelegate&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;델리게이트 인스턴스와 산술 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;콜백 메서드&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;인터페이스, 추상 클래스와 인터페이스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;인터페이스의 구현&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;구조체(Struct), 구조체와 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;깊은 복사와 얕은 복사, PBV(CBV)와 PBR(CBR)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;ref와 out 예약어를 통한 PBR&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #5.5. 자투리 객체지향 ~~분량과 순서 조절로 인해 남은 것~~ &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(6월 21일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 강력한 결합과 느슨한 결합&lt;br /&gt;
** System.Object와 System.ValueType&lt;br /&gt;
** 배열과 System.Array&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;열거자와 IEnumerator, IEnumerable&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;이벤트&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* #6. 마무리하는 C# 1.0 Part.1 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(6월 21일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#의 전처리기 지시문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;변수의 유효범위&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;특성(Attribute) 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;특성(Attribute)과 속성(Property)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;특성(Attribute)와 리플렉션(Reflection)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;System.AttributeUsage&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;System.AttributeTargets, 특성에서의 대상 명시&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리 정보 수정&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 시프트 연산자&lt;br /&gt;
** 연산자 간의 우선순위&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;오버플로(Overflow), 언더플로(Underflow)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** checked 예약어와 unchecked 예약어&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;가변 인자, params 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 플랫폼 호출(Platform Invocation)&lt;br /&gt;
** extern 예약어와 비관리 코드&lt;br /&gt;
** unsafe 예약어와 포인터, 포인터 연산&lt;br /&gt;
** fixed 예약어와 참조 형식 인스턴스에 대한 포인터 연산&lt;br /&gt;
** stackalloc 예약어&lt;br /&gt;
&lt;br /&gt;
* #7. 마무리하는 C# 1.0 Part.2 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(6월 28일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;예외(Exception)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** System.Exception&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;try/catch를 통한 예외 처리기&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;finally 블록&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;throw 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** Swallowing Exception 피하기&lt;br /&gt;
** 스택과 Stack Overflow&lt;br /&gt;
** 관리 힙과 GC&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;박싱(Boxing)과 언박싱(Unboxing)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 가비지 수집&lt;br /&gt;
** 루트 참조(Root reference)&lt;br /&gt;
** 대용량 객체 힙(LOH, Large Object Heap)&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;IDisposable 인터페이스와 using 블록&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 소멸자와 비관리 메모리&lt;br /&gt;
** 다시 보는 GC와 소멸자, 종료 큐&lt;br /&gt;
&lt;br /&gt;
* #8. Visual Studio와 C# &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(6월 28일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 프로젝트 파일 설정(csproj)&lt;br /&gt;
** 솔루션 파일 설정(sln)&lt;br /&gt;
** csc에서의 다중 소스 컴파일, 라이브러리 생성과 참조&lt;br /&gt;
** Visual Studio에서의 라이브러리 생성&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;CLR과 app.config&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;supportedRuntime 태그&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;config 파일과 닷넷 응용 프로그램 실행 과정&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;appSettings 태그&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;System.ObsoleteAttribute&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;디버그 빌드와 릴리즈 빌드&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 각 빌드에서의 전처리 상수 정의, Conditional 특성&lt;br /&gt;
** System.Diagnotics.Debug, System.Diagnotics.Trace&lt;br /&gt;
** 플랫폼 설정을 통한 응용 프로그램 빌드&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리 이름과 DLL 지옥&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;PKI와 강력한 이름의 어셈블리(서명된 어셈블리)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;전용 어셈블리와 XCopy 배포&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;GAC와 전역 어셈블리&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #9. BCL Part.1 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(7월 5일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;닷넷 BCL 속의 컬렉션&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** BCL을 통한 시간 처리&lt;br /&gt;
** BCL 속 유용한 문자열 메서드&lt;br /&gt;
** Encoding&lt;br /&gt;
** Regex&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;직렬화(Serailization)와 역직렬화(Deserialization)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Stream과 MemoryStream&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;StreamReader/StreamWriter와 BinaryReader/BinaryWriter&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** BinaryFormatter를 이용한 직렬화&lt;br /&gt;
** XmlSerializer를 이용한 직렬화&lt;br /&gt;
** DataContractJsonSerializer를 이용한 직렬화&lt;br /&gt;
** BigInteger와 IntPtr, Tuple&lt;br /&gt;
&lt;br /&gt;
* #10. C# 2.0으로 올라서기 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(7월 5일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭, 제네릭 메서드와 제네릭 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭과 박싱/언박싱&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭 형식 매개변수와 where 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** BCL의 컬렉션 속 제네릭&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;?? 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭과 default 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;열거와 yield return/yield break&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;값 형식과 Nullable&amp;amp;lt;T&amp;amp;gt; 구조체&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;익명 메서드와 델리게이트&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;정적 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 부분 클래스&lt;br /&gt;
&lt;br /&gt;
* #11. C# 3.0으로 올라서기 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(7월 13일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;타입 추론(Type Inference), var 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자동 구현 속성(Auto-Implemented Property)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 객체 초기화, 컬렉션 초기화&lt;br /&gt;
** 익명 타입&lt;br /&gt;
** 부분 메서드&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;확장 메서드(Extension Method)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;람다 식(Lambda Expression)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 람다 지원 델리게이트, Action, Func, Predicate&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Enumerable 정적 클래스와 람다 식, 컬렉션&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 식 트리로 사용되는 람다 식&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;LINQ(Language-integrated Query)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;LINQ와 from-in, where, group-by&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;지연 연산(Lazy Evaluation)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #12. BCL Part.2 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(7월 13일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;메타데이터와 리플렉션&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;AppDomain&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;리플렉션을 통한 어셈블리/모듈/타입/메서드 접근&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 리플렉션과 코드 결합&lt;br /&gt;
** 리플렉션과 플러그인(Plug-in)&lt;br /&gt;
&lt;br /&gt;
* #13. C# 4.0으로 올라서기 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(7월 13일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭 타입 매개변수에 대한 Covariance/Contravariance&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;선택적 매개변수(Optional Parameter)와 명명된 인자(Named Argument)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 닷넷 프레임워크 속 DLR&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;dynamic 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;dynamic과 리플렉션&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;덕 타이핑(Duck typing)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #14. C# 6.0으로 올라서기 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(7월 13일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;널 조건 연산자 (Null-conditional operator)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;문자열 내삽(String interpolation)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;인덱서 Dictionary 초기자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** nameof 연산자&lt;br /&gt;
** using static 키워드&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Exception Filtering&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자동 구현 속성 초기자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;읽기 전용 자동 구현 속성&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Expression-bodied member&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #15. BCL Part.3&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;FileStream, FileMode&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;File 클래스와 FileInfo 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Directory 클래스와 DirectoryInfo 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Path 타입&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #16. BCL Part.4&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Thread&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Thread 상태 제어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;전경 스레드와 배경 스레드&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Thread 동기화 처리 - Monitor를 통한 객체 잠금&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Thread 동기화 처리 - lock 예약어를 통한 객체 잠금&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;원자적 연산과 Interlocked 타입&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;ThreadPool&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Thread 동기화 처리 - EventWaitHandle을 통한 동기화&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;동기 호출과 비동기 호출&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #17. C# 5.0으로 올라서기&lt;br /&gt;
** 호출자 정보(Caller Information)&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;async/await 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Task 타입 (C# 4.0)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** Task와 ThreadPool의 QueueUserWorkItem (C# 4.0)&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;await와 병렬 처리&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;catch 블록에서의 await (C# 6.0)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
 &lt;br /&gt;
* 종료!&lt;br /&gt;
&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
* 몇시쯤에 스터디가 진행되나요? - [[송준호]]&lt;br /&gt;
** 확실하진 않지만 저녁 6시에서 7시 사이에 시작하지 않을까요? ~~사실 이것도 장담은 못합니다만~~ - [[신형철]]&lt;br /&gt;
** 수요일 6~7시면 그 시간은 정모 시간이에요. 화욜이면 6시 쯤 부터일 것 같고 수욜이면 7시 쯤 부터이지 않을까요 ~~사실 이것도 장담은 못합니다만~~ - [[홍성현]]&lt;br /&gt;
* 필요한 지식(ex. C언어 등)이 있어야 되나요? - [[박인서]]&lt;br /&gt;
** 아마 C언어는 기본적으로 필요할 듯 싶고, 객체 지향 언어(특히 Java)을 조금이라도 아신다면 괜찮을 것 같습니다. 객체 지향 개념같은 것들은 진행 도중 언급은 하겠지만, 그렇게 비중있게 다루지는 않을 것 같아요. - [[신형철]]&lt;br /&gt;
* 엇! 단군력이 있는 CS 스터디군 - [[유재범]]&lt;br /&gt;
** System.Globalization! - [[신형철]]&lt;br /&gt;
* 안녕하세요 청강생~~도강생~~입니다. - [[성훈]]&lt;br /&gt;
** 정식적으로 등록을?! - [[신형철]]&lt;br /&gt;
** 정식인원으로 진화!~~인연도 없는 시샵을...~~ - [[성훈]]&lt;br /&gt;
** 정식으로! 인사! 드리겠! 습니다! - [[박인서]]&lt;br /&gt;
* 닷넷신이다! 닷넷신이야! - [[김정민]]&lt;br /&gt;
** !? - [[신형철]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CS&amp;diff=29771</id>
		<title>CS</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CS&amp;diff=29771"/>
		<updated>2016-07-11T11:09:18Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* CS(CSharp)에 대해 공부하는 스터디입니다. ~~Creep Score~~ ~~회사 이름~~ ~~Customer Satisfaction~~ ~~학교종합정보관리시스템~~ ~~Communication Satellite~~&lt;br /&gt;
** ~~사실 CSS(CSharp Study)로 하고 싶었어요..~~&lt;br /&gt;
&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* [[신형철]], [[이승현]], [[홍성현]], [[박인서]], [[김상렬]], [[유성현]], [[강민승]], [[성훈]]&lt;br /&gt;
== 준비물 ==&lt;br /&gt;
* 스터디는 윈도우 환경에서 진행할 예정입니다.&lt;br /&gt;
* Visual Studio 2015가 필요합니다.&lt;br /&gt;
** 2013 버전에서도 가능은 합니다만, 추후에 다룰 기능에 대해서 패키지 형식으로 별도로 설치해야하는 번거로움이 존재할 수 있습니다.&lt;br /&gt;
* .NET Framework 4.6.1 버전이 필요합니다.&lt;br /&gt;
** [https://www.microsoft.com/en-us/download/details.aspx?id=49978|다운로드 링크]&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
* ~~별 일이 없는한 매주 화요일 저녁 or 수요일 저녁에 진행합니다.~~&lt;br /&gt;
** &#039;되도록&#039;이면 수요일 정모 끝난 직후에 진행하기로 결정했습니다.&lt;br /&gt;
** 참가 인원 중 한 명이 고정적인 시간을 잡을 수가 없어서 그런 것이니 양해해주세요 Orz...&lt;br /&gt;
** 상황이 여의치 않으면 스터디 시간은 상시로 바뀔 수 있습니다.&lt;br /&gt;
* ~~대략 1시간에서 2시간 정도 진행할 예정입니다.~~&lt;br /&gt;
** 진행하다보니 2시간 꽉 채워서 밖에 안되더군요...&lt;br /&gt;
&lt;br /&gt;
== 목표 ==&lt;br /&gt;
* C# 언어에 대한 기본 문법 이해와 적용&lt;br /&gt;
* C# 1.0에서 최신인 C# 6.0까지의 내용 숙지!&lt;br /&gt;
* C#에서의 Threading, Network, DBMS와의 연동까지!&lt;br /&gt;
&lt;br /&gt;
== 참고 ==&lt;br /&gt;
* [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9791158390075&amp;amp;orderClick=LEB&amp;amp;Kc=|시작하세요! C# 6.0 프로그래밍]&lt;br /&gt;
** 진행 내용 목차도 중간에 약간씩 조정된 것 빼고는 거의 대부분 이 책과 동일합니다.&lt;br /&gt;
&lt;br /&gt;
== 진행 내용 ==&lt;br /&gt;
* [[CS/5월11일]]&lt;br /&gt;
** [[CS/5월11일/부록]]&lt;br /&gt;
* [[CS/5월25일]]&lt;br /&gt;
* [[CS/6월1일]]&lt;br /&gt;
* [[CS/6월21일]]&lt;br /&gt;
* [[CS/6월28일]]&lt;br /&gt;
* [[CS/7월5일]]&lt;br /&gt;
* [[CS/7월13일]]&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* 다소 중요하다고 생각된 내용은 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;보라색 볼드(굵게)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93; 처리하였습니다.&lt;br /&gt;
** ~~중요한 게 중요하지 않은 것보다 많게 보이는 건 착각입니다.~~&lt;br /&gt;
** ~~사실 딱히 강조처리 하는게 의미가 없을수도..~~&lt;br /&gt;
&lt;br /&gt;
* #1. 닷넷 프레임워크 살펴보기 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 11일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;닷넷 응용 프로그램의 기본 구조&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;CLR과 IL/MSIL(CIL)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 닷넷 호환 언어&lt;br /&gt;
** CTS와 CLS&lt;br /&gt;
** 메타데이터, 닷넷 응용 프로그램 속의 메타데이터&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리, 모듈&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** CLI와 CTS, CLI와 닷넷 프레임워크&lt;br /&gt;
** 닷넷 프레임워크 구성 요소&lt;br /&gt;
** 기존 윈도우 프로그램과 닷넷 응용 프로그램의 대응 관계&lt;br /&gt;
** 모노(Mono) 프레임워크&lt;br /&gt;
** C#과 닷넷 프레임워크&lt;br /&gt;
** Naming Convention&lt;br /&gt;
&lt;br /&gt;
* #2. C#의 타입과 문장(Statement), 배열 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 11일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자료형과 기본 자료형&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 정수 타입, 실수 타입, 문자 타입. 상수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** C#에서의 변수 초기화&lt;br /&gt;
** C#에서의 Escape Sequence&lt;br /&gt;
** 형변환&lt;br /&gt;
** 예약어와 식별자&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;값 형식과 참조 형식&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;배열, 다차원 배열, 가변 배열&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;논리 연산자, 관계 연산자, 조건 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#의 조건문과 반복문, 점프문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #3. 클래스와 객체지향 Part.#1 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 25일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스와 인스턴스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;new 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;데이터 멤버와 메서드 정의&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;생성자와 소멸자, 기본 생성자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** GC와 소멸자&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;정적 데이터 멤버와 정적 메서드&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;정적 생성자(Static Constructor)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 네임스페이스와 클래스, using을 통한 네임스페이스 선언&lt;br /&gt;
** C#에서의 FQDN&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 접근 제한자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;접근자 메서드와 설정자 메서드, 그리고 속성(Property)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 문맥 예약어&lt;br /&gt;
** 가변 객체와 불변 객체&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스 내 데이터 멤버로써의 상수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;readonly 데이터 변수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;메서드 오버로딩&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;연산자 오버로딩&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 중첩 클래스&lt;br /&gt;
&lt;br /&gt;
* #4. 클래스와 객체지향 Part.#2 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 25일 ~ 6월 1일에 걸쳐 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 클래스 상속&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 봉인된 클래스(Sealed class)&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스 상속 관계에서의 형변환&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;as 연산자와 is 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;enum 클래스 타입&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** enum과 Flag 특성&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;this 예약어와 base 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;인덱서 구문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;virtual 예약어와 가상 함수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;메서드 오버라이딩과 new 예약어를 통한 메서드 정의&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스 간의 형변환&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;추상 메서드와 추상 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #5. 클래스와 객체지향 Part.#3 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(6월 1일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;델리게이트(delegate)의 정의&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;델리게이트의 특성, C#과 1급 함수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** System.MulticastDelegate&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;델리게이트 인스턴스와 산술 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;콜백 메서드&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;인터페이스, 추상 클래스와 인터페이스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;인터페이스의 구현&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;구조체(Struct), 구조체와 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;깊은 복사와 얕은 복사, PBV(CBV)와 PBR(CBR)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;ref와 out 예약어를 통한 PBR&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #5.5. 자투리 객체지향 ~~분량과 순서 조절로 인해 남은 것~~ &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(6월 21일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 강력한 결합과 느슨한 결합&lt;br /&gt;
** System.Object와 System.ValueType&lt;br /&gt;
** 배열과 System.Array&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;열거자와 IEnumerator, IEnumerable&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;이벤트&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* #6. 마무리하는 C# 1.0 Part.1 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(6월 21일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#의 전처리기 지시문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;변수의 유효범위&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;특성(Attribute) 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;특성(Attribute)과 속성(Property)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;특성(Attribute)와 리플렉션(Reflection)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;System.AttributeUsage&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;System.AttributeTargets, 특성에서의 대상 명시&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리 정보 수정&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 시프트 연산자&lt;br /&gt;
** 연산자 간의 우선순위&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;오버플로(Overflow), 언더플로(Underflow)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** checked 예약어와 unchecked 예약어&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;가변 인자, params 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 플랫폼 호출(Platform Invocation)&lt;br /&gt;
** extern 예약어와 비관리 코드&lt;br /&gt;
** unsafe 예약어와 포인터, 포인터 연산&lt;br /&gt;
** fixed 예약어와 참조 형식 인스턴스에 대한 포인터 연산&lt;br /&gt;
** stackalloc 예약어&lt;br /&gt;
&lt;br /&gt;
* #7. 마무리하는 C# 1.0 Part.2 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(6월 28일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;예외(Exception)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** System.Exception&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;try/catch를 통한 예외 처리기&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;finally 블록&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;throw 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** Swallowing Exception 피하기&lt;br /&gt;
** 스택과 Stack Overflow&lt;br /&gt;
** 관리 힙과 GC&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;박싱(Boxing)과 언박싱(Unboxing)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 가비지 수집&lt;br /&gt;
** 루트 참조(Root reference)&lt;br /&gt;
** 대용량 객체 힙(LOH, Large Object Heap)&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;IDisposable 인터페이스와 using 블록&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 소멸자와 비관리 메모리&lt;br /&gt;
** 다시 보는 GC와 소멸자, 종료 큐&lt;br /&gt;
&lt;br /&gt;
* #8. Visual Studio와 C# &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(6월 28일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 프로젝트 파일 설정(csproj)&lt;br /&gt;
** 솔루션 파일 설정(sln)&lt;br /&gt;
** csc에서의 다중 소스 컴파일, 라이브러리 생성과 참조&lt;br /&gt;
** Visual Studio에서의 라이브러리 생성&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;CLR과 app.config&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;supportedRuntime 태그&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;config 파일과 닷넷 응용 프로그램 실행 과정&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;appSettings 태그&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;System.ObsoleteAttribute&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;디버그 빌드와 릴리즈 빌드&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 각 빌드에서의 전처리 상수 정의, Conditional 특성&lt;br /&gt;
** System.Diagnotics.Debug, System.Diagnotics.Trace&lt;br /&gt;
** 플랫폼 설정을 통한 응용 프로그램 빌드&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리 이름과 DLL 지옥&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;PKI와 강력한 이름의 어셈블리(서명된 어셈블리)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;전용 어셈블리와 XCopy 배포&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;GAC와 전역 어셈블리&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #9. BCL Part.1 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(7월 5일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;닷넷 BCL 속의 컬렉션&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** BCL을 통한 시간 처리&lt;br /&gt;
** BCL 속 유용한 문자열 메서드&lt;br /&gt;
** Encoding&lt;br /&gt;
** Regex&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;직렬화(Serailization)와 역직렬화(Deserialization)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Stream과 MemoryStream&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;StreamReader/StreamWriter와 BinaryReader/BinaryWriter&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** BinaryFormatter를 이용한 직렬화&lt;br /&gt;
** XmlSerializer를 이용한 직렬화&lt;br /&gt;
** DataContractJsonSerializer를 이용한 직렬화&lt;br /&gt;
** BigInteger와 IntPtr, Tuple&lt;br /&gt;
&lt;br /&gt;
* #10. C# 2.0으로 올라서기 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(7월 5일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭, 제네릭 메서드와 제네릭 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭과 박싱/언박싱&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭 형식 매개변수와 where 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** BCL의 컬렉션 속 제네릭&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;?? 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭과 default 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;열거와 yield return/yield break&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;값 형식과 Nullable&amp;amp;lt;T&amp;amp;gt; 구조체&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;익명 메서드와 델리게이트&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;정적 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 부분 클래스&lt;br /&gt;
&lt;br /&gt;
* #11. C# 3.0으로 올라서기&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;타입 추론(Type Inference), var 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자동 구현 속성(Auto-Implemented Property)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 객체 초기화, 컬렉션 초기화&lt;br /&gt;
** 익명 타입&lt;br /&gt;
** 부분 메서드&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;확장 메서드(Extension Method)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;람다 식(Lambda Expression)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 람다 지원 델리게이트, Action, Func, Predicate&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Enumerable 정적 클래스와 람다 식, 컬렉션&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 식 트리로 사용되는 람다 식&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;LINQ(Language-integrated Query)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;LINQ와 from-in, where, group-by&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;지연 연산(Lazy Evaluation)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #12. BCL Part.2&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;메타데이터와 리플렉션&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;AppDomain&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;리플렉션을 통한 어셈블리/모듈/타입/메서드 접근&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 리플렉션과 코드 결합&lt;br /&gt;
** 리플렉션과 플러그인(Plug-in)&lt;br /&gt;
&lt;br /&gt;
* #13. C# 4.0으로 올라서기&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭 타입 매개변수에 대한 Covariance/Contravariance&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;선택적 매개변수(Optional Parameter)와 명명된 인자(Named Argument)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 닷넷 프레임워크 속 DLR&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;dynamic 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;dynamic과 리플렉션&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;덕 타이핑(Duck typing)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* 아래는 보류 중인 작성 목록입니다.&lt;br /&gt;
* #14. BCL Part.3&lt;br /&gt;
* #15. C# 5.0으로 올라서기&lt;br /&gt;
* #16. C# 6.0으로 올라서기&lt;br /&gt;
* #17. BCL Part.4&lt;br /&gt;
&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
* 몇시쯤에 스터디가 진행되나요? - [[송준호]]&lt;br /&gt;
** 확실하진 않지만 저녁 6시에서 7시 사이에 시작하지 않을까요? ~~사실 이것도 장담은 못합니다만~~ - [[신형철]]&lt;br /&gt;
** 수요일 6~7시면 그 시간은 정모 시간이에요. 화욜이면 6시 쯤 부터일 것 같고 수욜이면 7시 쯤 부터이지 않을까요 ~~사실 이것도 장담은 못합니다만~~ - [[홍성현]]&lt;br /&gt;
* 필요한 지식(ex. C언어 등)이 있어야 되나요? - [[박인서]]&lt;br /&gt;
** 아마 C언어는 기본적으로 필요할 듯 싶고, 객체 지향 언어(특히 Java)을 조금이라도 아신다면 괜찮을 것 같습니다. 객체 지향 개념같은 것들은 진행 도중 언급은 하겠지만, 그렇게 비중있게 다루지는 않을 것 같아요. - [[신형철]]&lt;br /&gt;
* 엇! 단군력이 있는 CS 스터디군 - [[유재범]]&lt;br /&gt;
** System.Globalization! - [[신형철]]&lt;br /&gt;
* 안녕하세요 청강생~~도강생~~입니다. - [[성훈]]&lt;br /&gt;
** 정식적으로 등록을?! - [[신형철]]&lt;br /&gt;
** 정식인원으로 진화!~~인연도 없는 시샵을...~~ - [[성훈]]&lt;br /&gt;
** 정식으로! 인사! 드리겠! 습니다! - [[박인서]]&lt;br /&gt;
* 닷넷신이다! 닷넷신이야! - [[김정민]]&lt;br /&gt;
** !? - [[신형철]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CS/7%EC%9B%945%EC%9D%BC&amp;diff=29832</id>
		<title>CS/7월5일</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CS/7%EC%9B%945%EC%9D%BC&amp;diff=29832"/>
		<updated>2016-07-03T16:30:38Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: {CREATE}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* 유용한 방향으로!&lt;br /&gt;
&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* 진행 예정&lt;br /&gt;
&lt;br /&gt;
== 진행 시간 ==&lt;br /&gt;
* 진행 예정&lt;br /&gt;
&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* 다소 중요하다고 생각된 내용은 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;보라색 볼드(굵게)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93; 처리하였습니다.&lt;br /&gt;
&lt;br /&gt;
* #9. BCL Part.1&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;닷넷 BCL 속의 컬렉션&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** BCL을 통한 시간 처리&lt;br /&gt;
** BCL 속 유용한 문자열 메서드&lt;br /&gt;
** Encoding&lt;br /&gt;
** Regex&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;직렬화(Serailization)와 역직렬화(Deserialization)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Stream과 MemoryStream&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;StreamReader/StreamWriter와 BinaryReader/BinaryWriter&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** BinaryFormatter를 이용한 직렬화&lt;br /&gt;
** XmlSerializer를 이용한 직렬화&lt;br /&gt;
** DataContractJsonSerializer를 이용한 직렬화&lt;br /&gt;
** BigInteger와 IntPtr, Tuple&lt;br /&gt;
&lt;br /&gt;
* #10. C# 2.0으로 올라서기&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭, 제네릭 메서드와 제네릭 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭과 박싱/언박싱&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭 형식 매개변수와 where 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** BCL의 컬렉션 속 제네릭&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;?? 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭과 default 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;열거와 yield return/yield break&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;값 형식과 Nullable&amp;amp;lt;T&amp;amp;gt; 구조체&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;익명 메서드와 델리게이트&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;정적 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 부분 클래스&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
=== 내용 요약 ===&lt;br /&gt;
==== 9. BCL Part.1 ====&lt;br /&gt;
==== 10. C# 2.0으로 올라서기 ====&lt;br /&gt;
=== 그 외 ===&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
--------------------------------&lt;br /&gt;
[[CS]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CS&amp;diff=29768</id>
		<title>CS</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CS&amp;diff=29768"/>
		<updated>2016-07-03T16:28:07Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* CS(CSharp)에 대해 공부하는 스터디입니다. ~~Creep Score~~ ~~회사 이름~~ ~~Customer Satisfaction~~ ~~학교종합정보관리시스템~~ ~~Communication Satellite~~&lt;br /&gt;
** ~~사실 CSS(CSharp Study)로 하고 싶었어요..~~&lt;br /&gt;
&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* [[신형철]], [[이승현]], [[홍성현]], [[박인서]], [[김상렬]], [[유성현]], [[강민승]], [[성훈]]&lt;br /&gt;
== 준비물 ==&lt;br /&gt;
* 스터디는 윈도우 환경에서 진행할 예정입니다.&lt;br /&gt;
* Visual Studio 2015가 필요합니다.&lt;br /&gt;
** 2013 버전에서도 가능은 합니다만, 추후에 다룰 기능에 대해서 패키지 형식으로 별도로 설치해야하는 번거로움이 존재할 수 있습니다.&lt;br /&gt;
* .NET Framework 4.6.1 버전이 필요합니다.&lt;br /&gt;
** [https://www.microsoft.com/en-us/download/details.aspx?id=49978|다운로드 링크]&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
* ~~별 일이 없는한 매주 화요일 저녁 or 수요일 저녁에 진행합니다.~~&lt;br /&gt;
** &#039;되도록&#039;이면 수요일 정모 끝난 직후에 진행하기로 결정했습니다.&lt;br /&gt;
** 참가 인원 중 한 명이 고정적인 시간을 잡을 수가 없어서 그런 것이니 양해해주세요 Orz...&lt;br /&gt;
** 상황이 여의치 않으면 스터디 시간은 상시로 바뀔 수 있습니다.&lt;br /&gt;
* ~~대략 1시간에서 2시간 정도 진행할 예정입니다.~~&lt;br /&gt;
** 진행하다보니 2시간 꽉 채워서 밖에 안되더군요...&lt;br /&gt;
&lt;br /&gt;
== 목표 ==&lt;br /&gt;
* C# 언어에 대한 기본 문법 이해와 적용&lt;br /&gt;
* C# 1.0에서 최신인 C# 6.0까지의 내용 숙지!&lt;br /&gt;
* C#에서의 Threading, Network, DBMS와의 연동까지!&lt;br /&gt;
&lt;br /&gt;
== 진행 내용 ==&lt;br /&gt;
* [[CS/5월11일]]&lt;br /&gt;
** [[CS/5월11일/부록]]&lt;br /&gt;
* [[CS/5월25일]]&lt;br /&gt;
* [[CS/6월1일]]&lt;br /&gt;
* [[CS/6월21일]]&lt;br /&gt;
* [[CS/6월28일]]&lt;br /&gt;
* [[CS/7월5일]]&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* 다소 중요하다고 생각된 내용은 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;보라색 볼드(굵게)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93; 처리하였습니다.&lt;br /&gt;
** ~~중요한 게 중요하지 않은 것보다 많게 보이는 건 착각입니다.~~&lt;br /&gt;
** ~~사실 딱히 강조처리 하는게 의미가 없을수도..~~&lt;br /&gt;
&lt;br /&gt;
* #1. 닷넷 프레임워크 살펴보기 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 11일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;닷넷 응용 프로그램의 기본 구조&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;CLR과 IL/MSIL(CIL)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 닷넷 호환 언어&lt;br /&gt;
** CTS와 CLS&lt;br /&gt;
** 메타데이터, 닷넷 응용 프로그램 속의 메타데이터&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리, 모듈&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** CLI와 CTS, CLI와 닷넷 프레임워크&lt;br /&gt;
** 닷넷 프레임워크 구성 요소&lt;br /&gt;
** 기존 윈도우 프로그램과 닷넷 응용 프로그램의 대응 관계&lt;br /&gt;
** 모노(Mono) 프레임워크&lt;br /&gt;
** C#과 닷넷 프레임워크&lt;br /&gt;
** Naming Convention&lt;br /&gt;
&lt;br /&gt;
* #2. C#의 타입과 문장(Statement), 배열 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 11일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자료형과 기본 자료형&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 정수 타입, 실수 타입, 문자 타입. 상수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** C#에서의 변수 초기화&lt;br /&gt;
** C#에서의 Escape Sequence&lt;br /&gt;
** 형변환&lt;br /&gt;
** 예약어와 식별자&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;값 형식과 참조 형식&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;배열, 다차원 배열, 가변 배열&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;논리 연산자, 관계 연산자, 조건 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#의 조건문과 반복문, 점프문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #3. 클래스와 객체지향 Part.#1 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 25일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스와 인스턴스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;new 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;데이터 멤버와 메서드 정의&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;생성자와 소멸자, 기본 생성자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** GC와 소멸자&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;정적 데이터 멤버와 정적 메서드&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;정적 생성자(Static Constructor)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 네임스페이스와 클래스, using을 통한 네임스페이스 선언&lt;br /&gt;
** C#에서의 FQDN&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 접근 제한자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;접근자 메서드와 설정자 메서드, 그리고 속성(Property)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 문맥 예약어&lt;br /&gt;
** 가변 객체와 불변 객체&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스 내 데이터 멤버로써의 상수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;readonly 데이터 변수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;메서드 오버로딩&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;연산자 오버로딩&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 중첩 클래스&lt;br /&gt;
&lt;br /&gt;
* #4. 클래스와 객체지향 Part.#2 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 25일 ~ 6월 1일에 걸쳐 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 클래스 상속&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 봉인된 클래스(Sealed class)&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스 상속 관계에서의 형변환&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;as 연산자와 is 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;enum 클래스 타입&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** enum과 Flag 특성&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;this 예약어와 base 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;인덱서 구문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;virtual 예약어와 가상 함수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;메서드 오버라이딩과 new 예약어를 통한 메서드 정의&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스 간의 형변환&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;추상 메서드와 추상 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #5. 클래스와 객체지향 Part.#3 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(6월 1일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;델리게이트(delegate)의 정의&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;델리게이트의 특성, C#과 1급 함수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** System.MulticastDelegate&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;델리게이트 인스턴스와 산술 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;콜백 메서드&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;인터페이스, 추상 클래스와 인터페이스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;인터페이스의 구현&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;구조체(Struct), 구조체와 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;깊은 복사와 얕은 복사, PBV(CBV)와 PBR(CBR)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;ref와 out 예약어를 통한 PBR&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #5.5. 자투리 객체지향 ~~분량과 순서 조절로 인해 남은 것~~ &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(6월 21일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 강력한 결합과 느슨한 결합&lt;br /&gt;
** System.Object와 System.ValueType&lt;br /&gt;
** 배열과 System.Array&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;열거자와 IEnumerator, IEnumerable&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;이벤트&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* #6. 마무리하는 C# 1.0 Part.1 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(6월 21일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#의 전처리기 지시문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;변수의 유효범위&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;특성(Attribute) 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;특성(Attribute)과 속성(Property)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;특성(Attribute)와 리플렉션(Reflection)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;System.AttributeUsage&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;System.AttributeTargets, 특성에서의 대상 명시&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리 정보 수정&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 시프트 연산자&lt;br /&gt;
** 연산자 간의 우선순위&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;오버플로(Overflow), 언더플로(Underflow)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** checked 예약어와 unchecked 예약어&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;가변 인자, params 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 플랫폼 호출(Platform Invocation)&lt;br /&gt;
** extern 예약어와 비관리 코드&lt;br /&gt;
** unsafe 예약어와 포인터, 포인터 연산&lt;br /&gt;
** fixed 예약어와 참조 형식 인스턴스에 대한 포인터 연산&lt;br /&gt;
** stackalloc 예약어&lt;br /&gt;
&lt;br /&gt;
* #7. 마무리하는 C# 1.0 Part.2 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(6월 28일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;예외(Exception)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** System.Exception&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;try/catch를 통한 예외 처리기&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;finally 블록&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;throw 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** Swallowing Exception 피하기&lt;br /&gt;
** 스택과 Stack Overflow&lt;br /&gt;
** 관리 힙과 GC&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;박싱(Boxing)과 언박싱(Unboxing)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 가비지 수집&lt;br /&gt;
** 루트 참조(Root reference)&lt;br /&gt;
** 대용량 객체 힙(LOH, Large Object Heap)&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;IDisposable 인터페이스와 using 블록&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 소멸자와 비관리 메모리&lt;br /&gt;
** 다시 보는 GC와 소멸자, 종료 큐&lt;br /&gt;
&lt;br /&gt;
* #8. Visual Studio와 C# &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(6월 28일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 프로젝트 파일 설정(csproj)&lt;br /&gt;
** 솔루션 파일 설정(sln)&lt;br /&gt;
** csc에서의 다중 소스 컴파일, 라이브러리 생성과 참조&lt;br /&gt;
** Visual Studio에서의 라이브러리 생성&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;CLR과 app.config&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;supportedRuntime 태그&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;config 파일과 닷넷 응용 프로그램 실행 과정&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;appSettings 태그&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;System.ObsoleteAttribute&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;디버그 빌드와 릴리즈 빌드&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 각 빌드에서의 전처리 상수 정의, Conditional 특성&lt;br /&gt;
** System.Diagnotics.Debug, System.Diagnotics.Trace&lt;br /&gt;
** 플랫폼 설정을 통한 응용 프로그램 빌드&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리 이름과 DLL 지옥&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;PKI와 강력한 이름의 어셈블리(서명된 어셈블리)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;전용 어셈블리와 XCopy 배포&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;GAC와 전역 어셈블리&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #9. BCL Part.1&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;닷넷 BCL 속의 컬렉션&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** BCL을 통한 시간 처리&lt;br /&gt;
** BCL 속 유용한 문자열 메서드&lt;br /&gt;
** Encoding&lt;br /&gt;
** Regex&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;직렬화(Serailization)와 역직렬화(Deserialization)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Stream과 MemoryStream&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;StreamReader/StreamWriter와 BinaryReader/BinaryWriter&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** BinaryFormatter를 이용한 직렬화&lt;br /&gt;
** XmlSerializer를 이용한 직렬화&lt;br /&gt;
** DataContractJsonSerializer를 이용한 직렬화&lt;br /&gt;
** BigInteger와 IntPtr, Tuple&lt;br /&gt;
&lt;br /&gt;
* #10. C# 2.0으로 올라서기&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭, 제네릭 메서드와 제네릭 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭과 박싱/언박싱&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭 형식 매개변수와 where 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** BCL의 컬렉션 속 제네릭&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;?? 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;제네릭과 default 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;열거와 yield return/yield break&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;값 형식과 Nullable&amp;amp;lt;T&amp;amp;gt; 구조체&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;익명 메서드와 델리게이트&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;정적 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 부분 클래스&lt;br /&gt;
&lt;br /&gt;
* #11. C# 3.0으로 올라서기&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;타입 추론(Type Inference), var 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자동 구현 속성(Auto-Implemented Property)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 객체 초기화, 컬렉션 초기화&lt;br /&gt;
** 익명 타입&lt;br /&gt;
** 부분 메서드&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;확장 메서드(Extension Method)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;람다 식(Lambda Expression)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 람다 지원 델리게이트, Action, Func, Predicate&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;Enumerable 정적 클래스와 람다 식, 컬렉션&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 식 트리로 사용되는 람다 식&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;LINQ(Language-integrated Query)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;LINQ와 from-in, where, group-by&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;지연 연산(Lazy Evaluation)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* 아래는 보류 중인 작성 목록입니다.&lt;br /&gt;
* #12. BCL Part.2&lt;br /&gt;
* #13. C# 4.0으로 올라서기&lt;br /&gt;
* #14. BCL Part.3&lt;br /&gt;
* #15. C# 5.0으로 올라서기&lt;br /&gt;
* #16. C# 6.0으로 올라서기&lt;br /&gt;
* #17. BCL Part.4&lt;br /&gt;
&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
* 몇시쯤에 스터디가 진행되나요? - [[송준호]]&lt;br /&gt;
** 확실하진 않지만 저녁 6시에서 7시 사이에 시작하지 않을까요? ~~사실 이것도 장담은 못합니다만~~ - [[신형철]]&lt;br /&gt;
** 수요일 6~7시면 그 시간은 정모 시간이에요. 화욜이면 6시 쯤 부터일 것 같고 수욜이면 7시 쯤 부터이지 않을까요 ~~사실 이것도 장담은 못합니다만~~ - [[홍성현]]&lt;br /&gt;
* 필요한 지식(ex. C언어 등)이 있어야 되나요? - [[박인서]]&lt;br /&gt;
** 아마 C언어는 기본적으로 필요할 듯 싶고, 객체 지향 언어(특히 Java)을 조금이라도 아신다면 괜찮을 것 같습니다. 객체 지향 개념같은 것들은 진행 도중 언급은 하겠지만, 그렇게 비중있게 다루지는 않을 것 같아요. - [[신형철]]&lt;br /&gt;
* 엇! 단군력이 있는 CS 스터디군 - [[유재범]]&lt;br /&gt;
** System.Globalization! - [[신형철]]&lt;br /&gt;
* 안녕하세요 청강생~~도강생~~입니다. - [[성훈]]&lt;br /&gt;
** 정식적으로 등록을?! - [[신형철]]&lt;br /&gt;
** 정식인원으로 진화!~~인연도 없는 시샵을...~~ - [[성훈]]&lt;br /&gt;
** 정식으로! 인사! 드리겠! 습니다! - [[박인서]]&lt;br /&gt;
* 닷넷신이다! 닷넷신이야! - [[김정민]]&lt;br /&gt;
** !? - [[신형철]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CS&amp;diff=29752</id>
		<title>CS</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CS&amp;diff=29752"/>
		<updated>2016-05-29T17:38:28Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* CS(CSharp)에 대해 공부하는 스터디입니다. ~~Creep Score~~ ~~회사 이름~~ ~~Customer Satisfaction~~ ~~학교종합정보관리시스템~~ ~~Communication Satellite~~&lt;br /&gt;
** ~~사실 CSS(CSharp Study)로 하고 싶었어요..~~&lt;br /&gt;
&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* [[신형철]], [[이승현]], [[홍성현]], [[박인서]], [[김상렬]], [[유성현]], [[강민승]]&lt;br /&gt;
&lt;br /&gt;
== 준비물 ==&lt;br /&gt;
* 스터디는 윈도우 환경에서 진행할 예정입니다.&lt;br /&gt;
* Visual Studio 2015가 필요합니다.&lt;br /&gt;
** 2013 버전에서도 가능은 합니다만, 추후에 다룰 기능에 대해서 패키지 형식으로 별도로 설치해야하는 번거로움이 존재할 수 있습니다.&lt;br /&gt;
* .NET Framework 4.6.1 버전이 필요합니다.&lt;br /&gt;
** [https://www.microsoft.com/en-us/download/details.aspx?id=49978|다운로드 링크]&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
* ~~별 일이 없는한 매주 화요일 저녁 or 수요일 저녁에 진행합니다.~~&lt;br /&gt;
** &#039;되도록&#039;이면 수요일 정모 끝난 직후에 진행하기로 결정했습니다.&lt;br /&gt;
** 참가 인원 중 한 명이 고정적인 시간을 잡을 수가 없어서 그런 것이니 양해해주세요 Orz...&lt;br /&gt;
** 상황이 여의치 않으면 스터디 시간은 상시로 바뀔 수 있습니다.&lt;br /&gt;
* 대략 1시간에서 2시간 정도 진행할 예정입니다.&lt;br /&gt;
&lt;br /&gt;
== 목표 ==&lt;br /&gt;
* C# 언어에 대한 기본 문법 이해와 적용&lt;br /&gt;
* C# 1.0에서 최신인 C# 6.0까지의 내용 숙지!&lt;br /&gt;
* C#에서의 Threading, Network, DBMS와의 연동까지!&lt;br /&gt;
&lt;br /&gt;
== 진행 내용 ==&lt;br /&gt;
* [[CS/5월11일]]&lt;br /&gt;
** [[CS/5월11일/부록]]&lt;br /&gt;
* [[CS/5월25일]]&lt;br /&gt;
* [[CS/6월1일]]&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* 다소 중요하다고 생각된 내용은 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;보라색 볼드(굵게)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93; 처리하였습니다.&lt;br /&gt;
** ~~중요한 게 중요하지 않은 것보다 많게 보이는 건 착각입니다.~~&lt;br /&gt;
** ~~사실 딱히 강조처리 하는게 의미가 없을수도..~~&lt;br /&gt;
&lt;br /&gt;
* #1. 닷넷 프레임워크 살펴보기 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 11일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;닷넷 응용 프로그램의 기본 구조&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;CLR과 IL/MSIL(CIL)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 닷넷 호환 언어&lt;br /&gt;
** CTS와 CLS&lt;br /&gt;
** 메타데이터, 닷넷 응용 프로그램 속의 메타데이터&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리, 모듈&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** CLI와 CTS, CLI와 닷넷 프레임워크&lt;br /&gt;
** 닷넷 프레임워크 구성 요소&lt;br /&gt;
** 기존 윈도우 프로그램과 닷넷 응용 프로그램의 대응 관계&lt;br /&gt;
** 모노(Mono) 프레임워크&lt;br /&gt;
** C#과 닷넷 프레임워크&lt;br /&gt;
** Naming Convention&lt;br /&gt;
&lt;br /&gt;
* #2. C#의 타입과 문장(Statement), 배열 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 11일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자료형과 기본 자료형&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 정수 타입, 실수 타입, 문자 타입. 상수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** C#에서의 변수 초기화&lt;br /&gt;
** C#에서의 Escape Sequence&lt;br /&gt;
** 형변환&lt;br /&gt;
** 예약어와 식별자&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;값 형식과 참조 형식&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;배열, 다차원 배열, 가변 배열&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;논리 연산자, 관계 연산자, 조건 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#의 조건문과 반복문, 점프문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #3. 클래스와 객체지향 Part.#1 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 25일에 완료)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스와 인스턴스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;new 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;데이터 멤버와 메서드 정의&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;생성자와 소멸자, 기본 생성자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** GC와 소멸자&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;정적 데이터 멤버와 정적 메서드&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;정적 생성자(Static Constructor)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 네임스페이스와 클래스, using을 통한 네임스페이스 선언&lt;br /&gt;
** C#에서의 FQDN&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 접근 제한자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;접근자 메서드와 설정자 메서드, 그리고 속성(Property)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 문맥 예약어&lt;br /&gt;
** 가변 객체와 불변 객체&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스 내 데이터 멤버로써의 상수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;readonly 데이터 변수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;메서드 오버로딩&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;연산자 오버로딩&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 중첩 클래스&lt;br /&gt;
&lt;br /&gt;
* #4. 클래스와 객체지향 Part.#2 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#287a63&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(5월 25일부터 아직 진행중)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 클래스 상속&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 봉인된 클래스(Sealed class)&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스 상속 관계에서의 형변환&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;as 연산자와 is 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** System.Object와 System.ValueType&lt;br /&gt;
** 배열과 System.Array&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;enum 클래스 타입&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** enum과 Flag 특성&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;this 예약어와 base 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;인덱서 구문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;virtual 예약어와 가상 함수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;메서드 오버라이딩과 new 예약어를 통한 메서드 정의&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;클래스 간의 형변환&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;추상 메서드와 추상 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #5. 클래스와 객체지향 Part.#3&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;델리게이트(delegate)의 정의&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;델리게이트의 특성, C#과 1급 함수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** System.MulticastDelegate&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;델리게이트 인스턴스와 산술 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;콜백 메서드&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;인터페이스, 추상 클래스와 인터페이스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;인터페이스의 구현&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;열거자와 IEnumerator, IEnumerable&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 강력한 결합과 느슨한 결합&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;구조체(Struct), 구조체와 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;깊은 복사와 얕은 복사, PBV(CBV)와 PBR(CBR)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;ref와 out 예약어를 통한 PBR&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;이벤트&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #6. Visual Studio와 C#&lt;br /&gt;
** 프로젝트 파일 설정(csproj)&lt;br /&gt;
** 솔루션 파일 설정(sln)&lt;br /&gt;
** csc에서의 다중 소스 컴파일, 라이브러리 생성과 참조&lt;br /&gt;
** Visual Studio에서의 라이브러리 생성&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;CLR과 app.config&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;supportedRuntime 태그&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;config 파일과 닷넷 응용 프로그램 실행 과정&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;appSettings 태그&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;System.ObsoleteAttribute&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;디버그 빌드와 릴리즈 빌드&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 각 빌드에서의 전처리 상수 정의, Conditional 특성&lt;br /&gt;
** System.Diagnotics.Debug, System.Diagnotics.Trace&lt;br /&gt;
** 플랫폼 설정을 통한 응용 프로그램 빌드&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리 이름과 DLL 지옥&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;PKI와 강력한 이름의 어셈블리(서명된 어셈블리)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;전용 어셈블리와 XCopy 배포&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;GAC와 전역 어셈블리&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* #7. 마무리하는 C# 1.0 Part.1&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#의 전처리기 지시문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;변수의 유효범위&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;특성(Attribute) 클래스&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;특성(Attribute)과 속성(Property)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;특성(Attribute)와 리플렉션(Reflection)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;System.AttributeUsage&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;System.AttributeTargets, 특성에서의 대상 명시&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리 정보 수정&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 시프트 연산자&lt;br /&gt;
** 연산자 간의 우선순위&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;오버플로(Overflow), 언더플로(Underflow)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** checked 예약어와 unchecked 예약어&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;가변 인자, params 예약어&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 플랫폼 호출(Platform Invocation)&lt;br /&gt;
** extern 예약어와 비관리 코드&lt;br /&gt;
** unsafe 예약어와 포인터, 포인터 연산&lt;br /&gt;
** fixed 예약어와 참조 형식 인스턴스에 대한 포인터 연산&lt;br /&gt;
** stackalloc 예약어&lt;br /&gt;
&lt;br /&gt;
* 나머지는 작성중이에요!&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
* 몇시쯤에 스터디가 진행되나요? - [[송준호]]&lt;br /&gt;
** 확실하진 않지만 저녁 6시에서 7시 사이에 시작하지 않을까요? ~~사실 이것도 장담은 못합니다만~~ - [[신형철]]&lt;br /&gt;
** 수요일 6~7시면 그 시간은 정모 시간이에요. 화욜이면 6시 쯤 부터일 것 같고 수욜이면 7시 쯤 부터이지 않을까요 ~~사실 이것도 장담은 못합니다만~~ - [[홍성현]]&lt;br /&gt;
* 필요한 지식(ex. C언어 등)이 있어야 되나요? - [[박인서]]&lt;br /&gt;
** 아마 C언어는 기본적으로 필요할 듯 싶고, 객체 지향 언어(특히 Java)을 조금이라도 아신다면 괜찮을 것 같습니다. 객체 지향 개념같은 것들은 진행 도중 언급은 하겠지만, 그렇게 비중있게 다루지는 않을 것 같아요. - [[신형철]]&lt;br /&gt;
* 엇! 단군력이 있는 CS 스터디군 - [[유재범]]&lt;br /&gt;
** System.Globalization! - [[신형철]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC/%EB%B6%80%EB%A1%9D&amp;diff=29805</id>
		<title>CS/5월11일/부록</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC/%EB%B6%80%EB%A1%9D&amp;diff=29805"/>
		<updated>2016-05-11T16:29:42Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* 미처 스터디 시간에 전달하지 못한 내용을 정리한 페이지입니다.&lt;br /&gt;
&lt;br /&gt;
== 내용 ==&lt;br /&gt;
* 닷넷 응용 프로그램은 기존의 모든 윈도우 응용 프로그램에 대응해서 만들 수 있습니다.&lt;br /&gt;
** 웹 응용 프로그램의 경우 ASP는 ASP.NET에 대응됩니다.&lt;br /&gt;
** 콘솔 응용 프로그램의 경우 Win32 Console은 Console에 대응됩니다.&lt;br /&gt;
** 윈도우 응용 프로그램의 경우 Win32 Windows, MFC는 Windows Forms, WPF에 대응됩니다.&lt;br /&gt;
** COM+ 응용 프로그램의 경우 COM+가 Enterprise Services에 대응됩니다.&lt;br /&gt;
** 윈도우 서비스의 경우 NT 서비스가 윈도우 서비스에 대응됩니다.&lt;br /&gt;
&lt;br /&gt;
* 유니코드(Unicode)는 다국어 지원을 위한 문자 집합입니다. 전 세계의 모든 문자를 표현하기 위해 설계된 산업 표준으로, 프로그램을 유니코드 기반으로 만들면 운영체제의 언어 설정에 상관없이 동일한 문자를 출력할 수 있습니다.&lt;br /&gt;
** 물론, 대상 운영체제에 유니코드에 대응되는 폰트(Font)가 설치되어 있어야합니다.&lt;br /&gt;
&lt;br /&gt;
* 콘솔에 메시지를 출력하려면 다음의 메서드를 사용합니다. 인자는 문자열, 정수형, 실수형, 논리형 무엇이든 올 수 있습니다.&lt;br /&gt;
** Console.Write은 개행이 없는 버전입니다.&lt;br /&gt;
** Console.WriteLine은 개행이 있는 버전입니다.&lt;br /&gt;
&lt;br /&gt;
* string 타입은 &#039;+&#039; 연산자를 제공하기 때문에, 문자열을 서로 연결할 수 있습니다.&lt;br /&gt;
** ex) string s = &amp;quot;Hello&amp;quot; + &amp;quot;World&amp;quot;; // s는 HelloWorld&lt;br /&gt;
 &lt;br /&gt;
* switch 문에서 default는 C#에서도 강제 사항은 아닙니다.&lt;br /&gt;
* C#에서도 복합 대입 연산자인 &#039;+=&#039;, &#039;-=&#039;, &#039;*=&#039;, &#039;/=&#039;, &#039;%=&#039;를 제공합니다.&lt;br /&gt;
&lt;br /&gt;
* 컴파일러가 값을 컴파일 시에 계산할 수 있는 상수 표현식이면 상수에 대입할 수 있습니다.&lt;br /&gt;
 &lt;br /&gt;
* 변수끼리 대입을 했을 때 값 형식은 각각 다른 위치에 동일한 값이 복사되어 개별 값을 가리키는 반면에, 참조 형식은 힙 메모리에 하나의 값만 위치한 상태에서 스택의 변수 값이 같은 힙 위치를 가리키게 됩니다.&lt;br /&gt;
&lt;br /&gt;
* 각 자료형은 서로 변환하는 것이 가능합니다. 부가적인 코드를 지정하지 않고 자연스럽게 형변환(Type Conversion)되는 것을 &#039;암시적 변환&#039;이라 하고, 개발자가 명시적으로 형변환임을 알리는 것을 &#039;명시적 변환&#039;이라고 합니다.&lt;br /&gt;
&lt;br /&gt;
* 범위가 작은 데이터 타입에서 그 값을 충분히 담을 수 있는 큰 타입으로 형변환하는 것은 컴파일러가 &#039;암시적 변환(Implicit conversion)&#039;으로 간주해서 오류 없이 컴파일 과정을 완료할 수 있습니다.&lt;br /&gt;
* 큰 값을 표현할 수 있는 데이터에서 작은 타입으로 대입하는 경우나 숫자와 문자 간 변환은 암시적으로 변환할 수 없고, 명시적으로 변환해야 합니다.&lt;br /&gt;
&lt;br /&gt;
* 예약어(Reserved word) 또는 키워드(Keyword)는 C# 언어에서 문법을 표현하기 위해 미리 예약된 단어를 의미합니다.&lt;br /&gt;
* 식별자(Identifier)는 임의로 선택해서 이름지을 수 있는 단어를 말합니다.&lt;br /&gt;
&lt;br /&gt;
* Main 메서드도 결국 Main이라는 이름의 식별자가 포함되어 있으나, 닷넷 응용 프로그램 구조 정의에 따라 반드시 이 메서드가 있어야만 프로그램을 실행할 수 있으므로 변경해서는 안 됩니다.&lt;br /&gt;
* 식별자의 시작 문자는 숫자로 시작할 수 없고, 반드시 문자여야만 합니다.&lt;br /&gt;
&lt;br /&gt;
* 특수 문자 중에서 유일하게 &#039;_&#039; 문자만이 시작 문자로 사용될 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
== 예제 코드 ==&lt;br /&gt;
 class Program&lt;br /&gt;
     {&lt;br /&gt;
         static void Main(string[] args)&lt;br /&gt;
         {&lt;br /&gt;
             int number = 0;&lt;br /&gt;
 &lt;br /&gt;
             if (number &amp;amp;gt; 20)&lt;br /&gt;
             {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Number is greater than 20.&amp;quot;);&lt;br /&gt;
             }&lt;br /&gt;
             else if (number &amp;amp;lt; 20)&lt;br /&gt;
             {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Number is less than 20.&amp;quot;);&lt;br /&gt;
             }&lt;br /&gt;
             else&lt;br /&gt;
             {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Number is equal to 20.&amp;quot;);&lt;br /&gt;
             }&lt;br /&gt;
 &lt;br /&gt;
             // Switch - case&lt;br /&gt;
             string text = &amp;quot;C#&amp;quot;;&lt;br /&gt;
             string textConcat = &amp;quot;C#&amp;quot; + &amp;quot;VB.NET&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
             Console.WriteLine(textConcat); // Output : C#VB.NET&lt;br /&gt;
 &lt;br /&gt;
             switch (text)&lt;br /&gt;
             {&lt;br /&gt;
                 case &amp;quot;VB.NET&amp;quot;:&lt;br /&gt;
                 case &amp;quot;C#&amp;quot;:&lt;br /&gt;
                     {&lt;br /&gt;
                         Console.WriteLine(&amp;quot;.NET Compliant Language.&amp;quot;);&lt;br /&gt;
                         break;&lt;br /&gt;
                     }&lt;br /&gt;
                 case &amp;quot;Java&amp;quot;:&lt;br /&gt;
                     {&lt;br /&gt;
                         Console.WriteLine(&amp;quot;Java&amp;quot;);&lt;br /&gt;
                         break;&lt;br /&gt;
                     }&lt;br /&gt;
                 default:&lt;br /&gt;
                     {&lt;br /&gt;
                         Console.WriteLine(&amp;quot;What is this?&amp;quot;);&lt;br /&gt;
                         break;&lt;br /&gt;
                     }&lt;br /&gt;
             }&lt;br /&gt;
 &lt;br /&gt;
             // 삼항 연산자. (Conditional Statement)&lt;br /&gt;
             bool isJava = (text == &amp;quot;Java&amp;quot;) ? true : false;&lt;br /&gt;
 &lt;br /&gt;
             // While loop&lt;br /&gt;
             int loop = 5;&lt;br /&gt;
 &lt;br /&gt;
             while (loop &amp;amp;gt; 0)&lt;br /&gt;
             {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;While Loop!&amp;quot;);&lt;br /&gt;
                 loop--;&lt;br /&gt;
             }&lt;br /&gt;
 &lt;br /&gt;
             loop = 5;&lt;br /&gt;
 &lt;br /&gt;
             // do-while loop&lt;br /&gt;
             do&lt;br /&gt;
             {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Do-While Loop!&amp;quot;);&lt;br /&gt;
                 loop--;&lt;br /&gt;
             } while (loop &amp;amp;gt; 0);&lt;br /&gt;
 &lt;br /&gt;
             // for-loop&lt;br /&gt;
             for (int i = 0; i &amp;amp;lt; 40; i++)&lt;br /&gt;
             {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;For loop!&amp;quot;);&lt;br /&gt;
             }&lt;br /&gt;
 &lt;br /&gt;
             // foreach&lt;br /&gt;
             int[] arr = new int[] { 0, 1, 2, 3 };&lt;br /&gt;
 &lt;br /&gt;
             foreach (int item in arr)&lt;br /&gt;
             {&lt;br /&gt;
                 Console.WriteLine(item);&lt;br /&gt;
             }&lt;br /&gt;
 &lt;br /&gt;
             // multi-dimension array&lt;br /&gt;
             int[,] twoDimArray = new int[2, 3];&lt;br /&gt;
             twoDimArray[0, 2] = 10;&lt;br /&gt;
             int num = twoDimArray[0, 1];&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
[[CS]], [[CS/5월11일]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC/%EB%B6%80%EB%A1%9D&amp;diff=29804</id>
		<title>CS/5월11일/부록</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC/%EB%B6%80%EB%A1%9D&amp;diff=29804"/>
		<updated>2016-05-11T16:15:02Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* 미처 스터디 시간에 전달하지 못한 내용을 정리한 페이지입니다.&lt;br /&gt;
&lt;br /&gt;
== 내용 ==&lt;br /&gt;
* 닷넷 응용 프로그램은 기존의 모든 윈도우 응용 프로그램에 대응해서 만들 수 있습니다.&lt;br /&gt;
** 웹 응용 프로그램의 경우 ASP는 ASP.NET에 대응됩니다.&lt;br /&gt;
** 콘솔 응용 프로그램의 경우 Win32 Console은 Console에 대응됩니다.&lt;br /&gt;
** 윈도우 응용 프로그램의 경우 Win32 Windows, MFC는 Windows Forms, WPF에 대응됩니다.&lt;br /&gt;
** COM+ 응용 프로그램의 경우 COM+가 Enterprise Services에 대응됩니다.&lt;br /&gt;
** 윈도우 서비스의 경우 NT 서비스가 윈도우 서비스에 대응됩니다.&lt;br /&gt;
&lt;br /&gt;
* 유니코드(Unicode)는 다국어 지원을 위한 문자 집합입니다. 전 세계의 모든 문자를 표현하기 위해 설계된 산업 표준으로, 프로그램을 유니코드 기반으로 만들면 운영체제의 언어 설정에 상관없이 동일한 문자를 출력할 수 있습니다.&lt;br /&gt;
** 물론, 대상 운영체제에 유니코드에 대응되는 폰트(Font)가 설치되어 있어야합니다.&lt;br /&gt;
&lt;br /&gt;
* 콘솔에 메시지를 출력하려면 다음의 메서드를 사용합니다. 인자는 문자열, 정수형, 실수형, 논리형 무엇이든 올 수 있습니다.&lt;br /&gt;
** Console.Write은 개행이 없는 버전입니다.&lt;br /&gt;
** Console.WriteLine은 개행이 있는 버전입니다.&lt;br /&gt;
&lt;br /&gt;
* string 타입은 &#039;+&#039; 연산자를 제공하기 때문에, 문자열을 서로 연결할 수 있습니다.&lt;br /&gt;
** ex) string s = &amp;quot;Hello&amp;quot; + &amp;quot;World&amp;quot;; // s는 HelloWorld&lt;br /&gt;
 &lt;br /&gt;
* switch 문에서 default는 C#에서도 강제 사항은 아닙니다.&lt;br /&gt;
* C#에서도 복합 대입 연산자인 &#039;+=&#039;, &#039;-=&#039;, &#039;*=&#039;, &#039;/=&#039;, &#039;%=&#039;를 제공합니다.&lt;br /&gt;
&lt;br /&gt;
* 컴파일러가 값을 컴파일 시에 계산할 수 있는 상수 표현식이면 상수에 대입할 수 있습니다.&lt;br /&gt;
 &lt;br /&gt;
* 변수끼리 대입을 했을 때 값 형식은 각각 다른 위치에 동일한 값이 복사되어 개별 값을 가리키는 반면에, 참조 형식은 힙 메모리에 하나의 값만 위치한 상태에서 스택의 변수 값이 같은 힙 위치를 가리키게 됩니다.&lt;br /&gt;
&lt;br /&gt;
* 각 자료형은 서로 변환하는 것이 가능합니다. 부가적인 코드를 지정하지 않고 자연스럽게 형변환(Type Conversion)되는 것을 &#039;암시적 변환&#039;이라 하고, 개발자가 명시적으로 형변환임을 알리는 것을 &#039;명시적 변환&#039;이라고 합니다.&lt;br /&gt;
&lt;br /&gt;
* 범위가 작은 데이터 타입에서 그 값을 충분히 담을 수 있는 큰 타입으로 형변환하는 것은 컴파일러가 &#039;암시적 변환(Implicit conversion)&#039;으로 간주해서 오류 없이 컴파일 과정을 완료할 수 있습니다.&lt;br /&gt;
* 큰 값을 표현할 수 있는 데이터에서 작은 타입으로 대입하는 경우나 숫자와 문자 간 변환은 암시적으로 변환할 수 없고, 명시적으로 변환해야 합니다.&lt;br /&gt;
&lt;br /&gt;
* 예약어(Reserved word) 또는 키워드(Keyword)는 C# 언어에서 문법을 표현하기 위해 미리 예약된 단어를 의미합니다.&lt;br /&gt;
* 식별자(Identifier)는 임의로 선택해서 이름지을 수 있는 단어를 말합니다.&lt;br /&gt;
&lt;br /&gt;
* Main 메서드도 결국 Main이라는 이름의 식별자가 포함되어 있으나, 닷넷 응용 프로그램 구조 정의에 따라 반드시 이 메서드가 있어야만 프로그램을 실행할 수 있으므로 변경해서는 안 됩니다.&lt;br /&gt;
* 식별자의 시작 문자는 숫자로 시작할 수 없고, 반드시 문자여야만 합니다.&lt;br /&gt;
&lt;br /&gt;
* 특수 문자 중에서 유일하게 &#039;_&#039; 문자만이 시작 문자로 사용될 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
[[CS]], [[CS/5월11일]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC&amp;diff=29797</id>
		<title>CS/5월11일</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC&amp;diff=29797"/>
		<updated>2016-05-11T16:05:28Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* 시작합니다!&lt;br /&gt;
&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* [[신형철]], [[이승현]], [[홍성현]], [[박인서]], [[김상렬]], [[유성현]], [[강민승]]&lt;br /&gt;
&lt;br /&gt;
== 진행 시간 ==&lt;br /&gt;
* 수요일 오후 7시 ~ 오후 9시&lt;br /&gt;
** ~~역시 이 스터디에는 고정된 시간이란 없는 것 같아요.~~&lt;br /&gt;
&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* 다소 중요하다고 생각된 내용은 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;보라색 볼드(굵게)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93; 처리하였습니다.&lt;br /&gt;
&lt;br /&gt;
* #1. 닷넷 프레임워크 살펴보기&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;닷넷 응용 프로그램의 기본 구조&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;CLR과 IL/MSIL(CIL)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 닷넷 호환 언어&lt;br /&gt;
** CTS와 CLS&lt;br /&gt;
** 메타데이터, 닷넷 응용 프로그램 속의 메타데이터&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리, 모듈&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** CLI와 CTS, CLI와 닷넷 프레임워크&lt;br /&gt;
** 닷넷 프레임워크 구성 요소&lt;br /&gt;
** 기존 윈도우 프로그램과 닷넷 응용 프로그램의 대응 관계&lt;br /&gt;
** 모노(Mono) 프레임워크&lt;br /&gt;
** C#과 닷넷 프레임워크&lt;br /&gt;
** Naming Convention&lt;br /&gt;
&lt;br /&gt;
* #2. C#의 타입과 문장(Statement), 배열&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자료형과 기본 자료형&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 정수 타입, 실수 타입, 문자 타입. 상수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** C#에서의 변수 초기화&lt;br /&gt;
** C#에서의 Escape Sequence&lt;br /&gt;
** 형변환&lt;br /&gt;
** 예약어와 식별자&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;값 형식과 참조 형식&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;배열, 다차원 배열, 가변 배열&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;논리 연산자, 관계 연산자, 조건 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#의 조건문과 반복문, 점프문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* 만약 시간이 된다면 #3까지도 예정중입니다.&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
=== 내용 요약 ===&lt;br /&gt;
==== #1. 닷넷 프레임워크 살펴보기 ====&lt;br /&gt;
* C#을 쓰기 위해서는 .NET Framework가 필요합니다.&lt;br /&gt;
* .NET Framework는 일종의 Process Virtual Machine(가상머신) 입니다.&lt;br /&gt;
* 일반적인 네이티브 언어로 만들어진 프로그램들이 기계어를 통해 곧바로 운영체제에서 실행될 수 있는 것과 달리, C# 프로그램은 C# 컴파일러에 의해 중간에 어떤 코드(IL)로 바뀌었다가 .NET Framework(정확히는 CLR)가 대신 실행해줍니다.&lt;br /&gt;
&lt;br /&gt;
* .NET을 깔면 자동으로 CLR(Common Language Runtime)이 설치됩니다. 사실 C#소스를 컴파일한뒤 CLR에 던져서 실행하는 구조입니다.&lt;br /&gt;
* 중간에 거쳐가는 파일은 IL(Intermediate Language:중간언어)로 작성된 파일입니다.&lt;br /&gt;
* 즉, C# 컴파일러는 C# Source를 IL로 바꿔주는 것 뿐이고, 실행 시 CLR이 IL을 기계어로 바꾸면서 실행을 하게 됩니다.&lt;br /&gt;
* IL 역시 하나의 언어에 속하기 때문에, 별도로 ILASM.exe라는 컴파일러도 존재합니다.&lt;br /&gt;
&lt;br /&gt;
* 일반적인 exe와는 다르게 .NET exe/dll(닷넷 응용 프로그램)에는 CLR 로더가 포함되어 있습니다.(생각해보면 CLR이 없으면 프로그램이 굴러가지 않겠죠?)&lt;br /&gt;
&lt;br /&gt;
* CLR은 프로세스가 실행되면 로더에 의해 메모리에 함께 적재되어 실행됩니다.&lt;br /&gt;
&lt;br /&gt;
* .NET Compliant Language (.NET 호환언어) : 어떤 언어든지 IL코드로만 바꿀 수 있다면 CLR에서 작동하지 않을까? 라는 생각에서, 컴파일러가 소스 코드의 결과물을 IL코드로 바꿀 수 있는 언어를 말합니다.&lt;br /&gt;
&lt;br /&gt;
* 대표적인 .NET CL의 공식적인 종류로는 C++/CLI, F#, VB.NET C# 등이 있습니다. (Ruby, Python, Lisp, COBOL, PHP들도 비공식적으론 읍읍..)&lt;br /&gt;
&lt;br /&gt;
* 닷넷 IL은 CIL이라 부르기도 하고, MSIL이라고 부르기도 합니다. (자바 IL은 바이트 코드라고 하죠?)&lt;br /&gt;
* IL 코드는 CPU에 독립적이기 때문에, 모든 닷넷 호환 언어는 소스 코드를 IL 코드로 컴파일한 뒤 CLR이 실핻될 때 IL 코드를 CPU의 기계어로 최종 번역하게 됩니다.&lt;br /&gt;
&lt;br /&gt;
* CTS(Common Type System, 공용 타입 시스템)은 .NET호환언어가 지켜야할 표준 규격을 정의한 것입니다.&lt;br /&gt;
* .NET 호환 언어는 CTS를 넘어서서 구현할 수 없지만, 꼭 CTS를 전부다 구현해야 할 필요도 없습니다.&lt;br /&gt;
** 예를 들어, CTS에서는 클래스 상속을 하나만 허용하기 때문에, 클래스 다중 상속을 지원하도록 만들 수는 없습니다.&lt;br /&gt;
** CTS에서는 접근 제한자로 public, private 등을 지원하지만 필요에 따라 public만 지원하도록 만들 수도 있습니다.&lt;br /&gt;
&lt;br /&gt;
* CLS(Common Language Specification)은 CTS와는 다르게 .NET 호환 언어가 지켜야 할 최소한의 언어 사양을 정의한 것입니다.&lt;br /&gt;
&lt;br /&gt;
* 서로 다른 닷넷 호환 언어끼리 호출해야 하는 경우에는, 그 기능에 한해서 CLS를 만족시키도록 작성해야 합니다.&lt;br /&gt;
** 예를 들어, C#에서는 unsigned 를 지원하지만, CLS에서는 unsigned 타입을 강제화하지 않으므로 만약 다른 닷넷호환언어에서 unsigned를 지원하지 않는다면 문제가 생깁니다.&lt;br /&gt;
&lt;br /&gt;
* 메타데이터(metadata)는 데이터를 위한 데이터로써, 예를 들면 그림의 속성을 나타내고 있는 데이터들이 메타데이터입니다.&lt;br /&gt;
* 프로그래밍 언어에서는 개발자가 구현한 코드가 데이터에 해당하고, 해당 코드의 성격을 설명해주는 클래스, 메서드 등을 메타데이터라고 합니다.&lt;br /&gt;
&lt;br /&gt;
* exe 또는 dll을 만들게 되면 CLR에서는 자기서술적인 데이터(META data)로써 프로그램의 함수, 클래스들의 목록을 기록합니다. (즉, 그에 대한 메타데이터를 생성합니다.)&lt;br /&gt;
* Reflection 기술을 활용하면 exe이나 dll안에 서술된 메타데이터를 읽어 어떤 클래스나 메서드가 제공되는지 확인할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* CLI(Common Language Infrastructure)는 MS가 ECMA에 제출한 표준형식으로, CTS 명세나 중간 언어(IL)에 대한 코드 정의, 메타데이터와 그것을 포함하는 바이너리 파일들의 구조가 명세되어 있습니다.&lt;br /&gt;
* 따라서 CLR은 CLI를 구현하고 있으며, CLI를 구현한다면 .NET과 호환됩니다. (ex) Mono는 CLI의 구현체&lt;br /&gt;
&lt;br /&gt;
* 어셈블리(Assembly): .NET에서는 exe나 dll 같은 실행 파일을 어셈블리라고 합니다.&lt;br /&gt;
* 모듈(Module): 하나의 어셈블리를 여러개의 모듈(Module)(.netmodule)로 쪼갤 수 있습니다. 모듈 하나당 한 개의 파일이 대응됩니다. 단, 어셈블리안에 존재하는 모듈 중 하나는 반드시 다른 모듈들의 위치를 기술(기능은 없고, 단순히 위치를 기술함)하고 있어야 하는데, 이 모듈의 확장자가 바로 exe 또는 dll이 됩니다. ~~하지만 Visual Studio에서도 지원하지 않습니다(개념적인 내용)~~&lt;br /&gt;
&lt;br /&gt;
* CLR(Common Language Runtime)에는 중간 언어를 기계어로 변환해주는 JIT(Just-In-Time)컴파일러와 GC(Garbage Collector)가 들어가있습니다.&lt;br /&gt;
&lt;br /&gt;
* .NET 호환 언어를 Managed(관리)언어라고도 합니다.&lt;br /&gt;
* CLR 자체를 관리 환경(Managed Environment)라고도 하고, CLR이 로드되는 프로세스를 관리 프로세스라고도 합니다.&lt;br /&gt;
&lt;br /&gt;
* 기존 프로그램에 CLR loader를 넣어주면 .NET호환언어를 구동시킬 수 있는 프로그램이 됩니다.&lt;br /&gt;
** 예를 들어, IE(Internet Explorer)안에는 CLR loader가 들어가 있어서, .NET 호환 언어로 만들어진 컨트롤을 웹 브라우저에서 실행시킬 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* MS에서는 CLR, BCL(Base Class Library, 표준라이브러리), GAC(Global Assembly Cache)를 묶어서 &#039;.NET Framework&#039;라고 배포합니다.&lt;br /&gt;
* GAC는 컴퓨터에서 실행되는 닷넷 응용 프로그램이 어셈블리 파일을 공통적으로 찾을 수 있는 전역 저장소입니다.&lt;br /&gt;
&lt;br /&gt;
* C#은 .NET Framework의 발전에 빠르게 대응해줍니다.&lt;br /&gt;
&lt;br /&gt;
* .NET Framework를 설치하면 기본적으로 CSC(C# Compiler)가 설치됩니다.&lt;br /&gt;
** 요즈음의 MS는 CSC를 따로 배포하므로 C# 6.0을 컴파일하려면 설치해서 쓰세요. ~~하지만 VS를 쓴다면?~~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 주로 프로그래밍 언어에서 변수명 이름을 지을 때는 Camel Case. Pascal Case, Snake Case, Screaming Snake Case를 주로 사용합니다. C#에서는 Snake Case와 Screaming Snake Case를 관례적으로 사용하지 않습니다.&lt;br /&gt;
** Camel Case  : intValue&lt;br /&gt;
** Pascal Case : IntValue&lt;br /&gt;
** Snake Case  : int_value&lt;br /&gt;
** Screaming Snake Case : INT_VALUE&lt;br /&gt;
 &lt;br /&gt;
* C#에서 변수는 Camel Case로 작성하고, 그 외(함수, 클래스, 메소드)에는 Pascal Case로 작성하는 것이 관례입니다.&lt;br /&gt;
&lt;br /&gt;
==== #2. C#의 타입과 문장, 배열 ====&lt;br /&gt;
&lt;br /&gt;
* 숫자형 sbyte(부호 있는 8비트), byte(부호 없는 8비트), short, ushort, int, uint, long, ulong&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 예약어&lt;br /&gt;
| 크기&lt;br /&gt;
| 대응되는 닷넷 프레임워크 내 타입&lt;br /&gt;
|-&lt;br /&gt;
| sbyte&lt;br /&gt;
| 부호 있는 8비트&lt;br /&gt;
| System.SByte&lt;br /&gt;
|-&lt;br /&gt;
| byte&lt;br /&gt;
| 부호 없는 8비트&lt;br /&gt;
| System.Byte&lt;br /&gt;
|-&lt;br /&gt;
| short&lt;br /&gt;
| 부호 있는 16비트&lt;br /&gt;
| System.Int16&lt;br /&gt;
|-&lt;br /&gt;
| ushort&lt;br /&gt;
| 부호 없는 16비트&lt;br /&gt;
| System.UInt16&lt;br /&gt;
|-&lt;br /&gt;
| int&lt;br /&gt;
| 부호 있는 32비트&lt;br /&gt;
| System.Int32&lt;br /&gt;
|-&lt;br /&gt;
| uint&lt;br /&gt;
| 부호 없는 32비트&lt;br /&gt;
| System.UInt32&lt;br /&gt;
|-&lt;br /&gt;
| long&lt;br /&gt;
| 부호 있는 64비트&lt;br /&gt;
| System.Int64&lt;br /&gt;
|-&lt;br /&gt;
| ulong&lt;br /&gt;
| 부호 없는 64비트&lt;br /&gt;
| System.UInt64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* int a = 10000000000; 이런거하면 Compile Error 납니다.&lt;br /&gt;
** 즉, 범위를 넘어가는 값을 대입할 수 없습니다.&lt;br /&gt;
&lt;br /&gt;
* C#은 Value type과 Reference type이 나눠져있습니다.&lt;br /&gt;
&lt;br /&gt;
* 실수형&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 예약어&lt;br /&gt;
| 크기&lt;br /&gt;
| 대응되는 닷넷 프레임워크 내 타입&lt;br /&gt;
|-&lt;br /&gt;
| float&lt;br /&gt;
| 4바이트&lt;br /&gt;
| System.Single&lt;br /&gt;
|-&lt;br /&gt;
| double&lt;br /&gt;
| 8바이트&lt;br /&gt;
| System.Double&lt;br /&gt;
|-&lt;br /&gt;
| decimal&lt;br /&gt;
| 16바이트&lt;br /&gt;
| System.Decimal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 리터럴에 U를 붙이면 uint, UL을 붙이면 ulong, L을 붙이면 long, m을 붙이면 decimal, f를 붙이면 float가 됩니다.&lt;br /&gt;
&lt;br /&gt;
* 문자형&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 예약어&lt;br /&gt;
| 크기&lt;br /&gt;
| 대응되는 닷넷 프레임워크 내 타입&lt;br /&gt;
|-&lt;br /&gt;
| char&lt;br /&gt;
| 유니코드 4바이트&lt;br /&gt;
| System.Char&lt;br /&gt;
|-&lt;br /&gt;
| string&lt;br /&gt;
| 유니코드 문자열&lt;br /&gt;
| System.String&lt;br /&gt;
|}&lt;br /&gt;
** ex) char a = &#039;빵&#039;; ( sizeof(a) = 4, 유니코드이기 때문에 )&lt;br /&gt;
** string b = &amp;quot;Hello!&amp;quot;; &lt;br /&gt;
 // b[3] =&amp;amp;gt; &#039;l&#039; 처럼 직접접근도 가능합니다.&lt;br /&gt;
&lt;br /&gt;
* char c = &#039;\u2023&#039; 같은것도 가능&lt;br /&gt;
* 반대로 char \u2023 = &#039;c&#039; 도 가능합니다. (char 빵 = &#039;빵&#039; 되듯이..)&lt;br /&gt;
&lt;br /&gt;
* uint와 char는 바이트 크기는 같지만, uint는 수를 담기 위한 타입으로 정해져 있고 char는 문자를 담기 위한 타입으로 약속되어있습니다.&lt;br /&gt;
** 이 때문에, char에 사칙연산을 적용하려고 하면 오류가 발생합니다.&lt;br /&gt;
&lt;br /&gt;
* string str = &amp;quot;\tHello World\n!&amp;quot;; Console.WriteLine(str); 이라 하면 콘솔에 &#039;Hello World!&amp;quot;라고 뜨지만&lt;br /&gt;
* string str = @&amp;quot;\tHello World\n!&amp;quot;; 이렇게 하면 Escape Sequence를 따지지 않고 콘솔에 &amp;quot;\tHello World\n!&amp;quot;라고 뜹니다.&lt;br /&gt;
** 즉, 이스케이프 시퀀스로 간주하지 않고 순수한 문자로 취급할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* 예약어를 식별자로 사용할 수 없지만, 식별자로 사용해야 한다면 &#039;@&#039; 문자를 접두어로 사용하여 C# 컴파일러가 예약어가 아닌 식별자로 인식하게 할 수 있습니다.&lt;br /&gt;
** char int = &#039;a&#039;;   // int는 예약어라서 못쓰지만&lt;br /&gt;
** char @int = &#039;a&#039;;  // 이렇게하면 가능합니다.&lt;br /&gt;
&lt;br /&gt;
* 논리형에는 bool이 존재하며, System.Boolean을 줄인 예약어 입니다.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* C#에는 값형식과 참조형식이 존재합니다.&lt;br /&gt;
** 값 형식(Value Type)은 스택(Stack)에 저장되고&lt;br /&gt;
** 참조 형식(Reference Type)은 힙(Heap)에 저장됩니다.&lt;br /&gt;
&lt;br /&gt;
* 윈도우 프로그램은 기본적으로 하나의 스레드를 갖습니다. 이 때, 개별 스레드마다 전용으로 사용할 수 있는 저장소가 메모리에 할당되는데, 그 영역을 스택이라고 합니다.&lt;br /&gt;
* 힙은 프로그램에서 필요에 의해 메모리를 사용하겠다고 요청했을 때 사용할 수 있는 저장소로, 특별히 닷넷에서는 CLR이 직접 프로그램에서 사용될 힙을 관리한다.&lt;br /&gt;
* Heap에 저장된 데이터는 원래 자동으로 해제되지 않습니다. 하지만 C#에는 GC가 있으므로, 자동으로 할당 해제합니다.&lt;br /&gt;
&lt;br /&gt;
* C#의 값형식은 정수형,실수형, char, bool, struct 등이 있습니다.&lt;br /&gt;
* C#의 참조형식은 배열, 클래스, string, object 등이 있으며, 값 형식과는 달리 변수의 타입에 해당하는 값을 별도의 힙 메모리를 할당하여 담고 스택의 변수 값은 그 힙의 데이터 주소를 가리키게 됩니다.&lt;br /&gt;
&lt;br /&gt;
* int b; 이렇게 선언만 해놓고 초기화를 안하면 b에는 0이 들어갑니다. 하지만 C#은 오류로 판단하여 못쓰게 합니다. 따라서 int b = 0; 이런식으로 명시적으로 초기화를 하세요.&lt;br /&gt;
* C#에서는 항상 자료형에 대한 메모리를 할당하면 해당 영역을 0으로 초기화합니다. (bool형은 false)&lt;br /&gt;
&lt;br /&gt;
* 상수는 const int b = 5; 이런식으로 합니다. 즉, 변수 정의시 const 예약어를 붙여줍니다.&lt;br /&gt;
** 상수는 반드시 컴파일 시에 값이 결정되어야 합니다.&lt;br /&gt;
&lt;br /&gt;
* string s = &amp;quot;a&amp;quot;; 하게 되면 stack에는 &#039;s&#039;변수가 할당되고, heap에는 실제 데이터가 할당됩니다.&lt;br /&gt;
&lt;br /&gt;
* C#에서 참조형은 &#039;new&#039;키워드를 사용하여 할당합니다.&lt;br /&gt;
&lt;br /&gt;
* 배열은 동일한 타입의 공간을 지정된 수만큼 힙 메모리에 연속적으로 할당합니다. 배열도 참조 타입이기 때문이다.&lt;br /&gt;
* 한번 정해진 배열의 크기는 고정됩니다. 참조 변수의 특성상 가리키는 대상이 변할 수 있기 때문에 변경된 크기의 배열을 다시 가리키는 것은 가능하나, 처음에 있었던 배열의 크기가 변경되는 것은 아닙니다.&lt;br /&gt;
&lt;br /&gt;
* 배열을 선언하는 경우 기본적으로 모든 값은 타입에 따른 초기화 값을 갖습니다. 즉, 값 형식 배열일 경우 기본값인 0에 준하는 값을 가지며 참조 형식 배열이라면 개별 요소가 null로 초기화가 됩니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 배열&lt;br /&gt;
   int[] arr1 = new int[5] { 0, 1, 2, 3, 4 }; // 배열의 수를 명시적으로 지정했으므로 초기화 시 반드시 그 수만큼 요소를 나열해야 한다.&lt;br /&gt;
   int[] arr2 = new int[] { 0, 1, 2, 3, 4 }; // 컴파일러가 배열의 수를 자동으로 계산한다.&lt;br /&gt;
 &lt;br /&gt;
* 다차원 배열&lt;br /&gt;
   int arr[2][3] (C style)&lt;br /&gt;
   int[][] arr = new int[2][3]; (Java style)&lt;br /&gt;
   int[,] arr = new int[2,3]; (C# sytle)&lt;br /&gt;
 &lt;br /&gt;
   // 이것도 가능하겠죠?&lt;br /&gt;
 int[,,] arr2 = new int[2, 3, 4]&lt;br /&gt;
             {&lt;br /&gt;
                 { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } },&lt;br /&gt;
                 { { 13, 14, 15, 16 }, { 17, 18, 19, 20 }, { 21, 22, 23, 24 } }&lt;br /&gt;
             };&lt;br /&gt;
&lt;br /&gt;
* 가변배열&lt;br /&gt;
   int[][] arr = new int[5][];  // 가변배열이면 반드시 &#039;[][]&#039;로 써야됩니다.&lt;br /&gt;
   arr[0] = new int[4];&lt;br /&gt;
   arr[1] = new int[5];&lt;br /&gt;
&lt;br /&gt;
* 논리연산자 (C랑 동일합니다)&lt;br /&gt;
* 관계연산자 : &amp;lt; &amp;gt; &amp;lt;= &amp;gt;= != ==&lt;br /&gt;
* 비트연산자 : &amp;amp; | ^ !&lt;br /&gt;
&lt;br /&gt;
* 삼항 연산자도 존재합니다.&lt;br /&gt;
** (condition) ? (true): (false)&lt;br /&gt;
&lt;br /&gt;
* switch/case구문&lt;br /&gt;
** break가 강제 입니다. (단, caase 레이블에 아무 내용이 없다면 break를 생략할 수도 있습니다.)&lt;br /&gt;
** case에는 정수 상수, Enum 열거값, String 값이 들어올 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* 전치,후치연산 가능합니다 (++, --)&lt;br /&gt;
&lt;br /&gt;
* int n = 50;&lt;br /&gt;
  int x = 100;&lt;br /&gt;
  if( x &amp;gt; 10 || n++ &amp;gt; 0 ) 이런식으로 하면, 절대 n++은 되지않습니다.&lt;br /&gt;
&lt;br /&gt;
* while, for, do-while, foreach 가능합니다.&lt;br /&gt;
* foreach (타입 변수명 in 표현식 ) : 표현식에 들어올 수 있는 변수는 IEnumerator 인터페이스를 구현해야 합니다. &lt;br /&gt;
&lt;br /&gt;
* break, continue, throw, goto 가능합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 그 외 ===&lt;br /&gt;
* 자기소개, 강사소개 및 각자 C#을 배우고 싶은 이유에 대해서 말했습니다.&lt;br /&gt;
* 다음 주에는 강사님이 훈련을 갑니다 =&amp;gt; 휴강으로 결정&lt;br /&gt;
* 미처 전달하지 못한 내용은 다음을 참고해주세요.&lt;br /&gt;
** [[CS/5월11일/부록]]&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
--------------------------------&lt;br /&gt;
[[CS]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC&amp;diff=29796</id>
		<title>CS/5월11일</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC&amp;diff=29796"/>
		<updated>2016-05-11T16:03:55Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* 시작합니다!&lt;br /&gt;
&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* [[신형철]], [[이승현]], [[홍성현]], [[박인서]], [[김상렬]], [[유성현]], [[강민승]]&lt;br /&gt;
&lt;br /&gt;
== 진행 시간 ==&lt;br /&gt;
* 수요일 오후 7시 ~ 오후 9시&lt;br /&gt;
** ~~역시 이 스터디에는 고정된 시간이란 없는 것 같아요.~~&lt;br /&gt;
&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* 다소 중요하다고 생각된 내용은 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;보라색 볼드(굵게)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93; 처리하였습니다.&lt;br /&gt;
&lt;br /&gt;
* #1. 닷넷 프레임워크 살펴보기&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;닷넷 응용 프로그램의 기본 구조&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;CLR과 IL/MSIL(CIL)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 닷넷 호환 언어&lt;br /&gt;
** CTS와 CLS&lt;br /&gt;
** 메타데이터, 닷넷 응용 프로그램 속의 메타데이터&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리, 모듈&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** CLI와 CTS, CLI와 닷넷 프레임워크&lt;br /&gt;
** 닷넷 프레임워크 구성 요소&lt;br /&gt;
** 기존 윈도우 프로그램과 닷넷 응용 프로그램의 대응 관계&lt;br /&gt;
** 모노(Mono) 프레임워크&lt;br /&gt;
** C#과 닷넷 프레임워크&lt;br /&gt;
** Naming Convention&lt;br /&gt;
&lt;br /&gt;
* #2. C#의 타입과 문장(Statement), 배열&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자료형과 기본 자료형&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 정수 타입, 실수 타입, 문자 타입. 상수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** C#에서의 변수 초기화&lt;br /&gt;
** C#에서의 Escape Sequence&lt;br /&gt;
** 형변환&lt;br /&gt;
** 예약어와 식별자&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;값 형식과 참조 형식&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;배열, 다차원 배열, 가변 배열&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;논리 연산자, 관계 연산자, 조건 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#의 조건문과 반복문, 점프문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* 만약 시간이 된다면 #3까지도 예정중입니다.&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
=== 내용 요약 ===&lt;br /&gt;
==== #1. 닷넷 프레임워크 살펴보기 ====&lt;br /&gt;
* C#을 쓰기 위해서는 .NET Framework가 필요합니다.&lt;br /&gt;
* .NET Framework는 일종의 Process Virtual Machine(가상머신) 입니다.&lt;br /&gt;
* 일반적인 네이티브 언어로 만들어진 프로그램들이 기계어를 통해 곧바로 운영체제에서 실행될 수 있는 것과 달리, C# 프로그램은 C# 컴파일러에 의해 중간에 어떤 코드(IL)로 바뀌었다가 .NET Framework(정확히는 CLR)가 대신 실행해줍니다.&lt;br /&gt;
&lt;br /&gt;
* .NET을 깔면 자동으로 CLR(Common Language Runtime)이 설치됩니다. 사실 C#소스를 컴파일한뒤 CLR에 던져서 실행하는 구조입니다.&lt;br /&gt;
* 중간에 거쳐가는 파일은 IL(Intermediate Language:중간언어)로 작성된 파일입니다.&lt;br /&gt;
* 즉, C# 컴파일러는 C# Source를 IL로 바꿔주는 것 뿐이고, 실행 시 CLR이 IL을 기계어로 바꾸면서 실행을 하게 됩니다.&lt;br /&gt;
* IL 역시 하나의 언어에 속하기 때문에, 별도로 ILASM.exe라는 컴파일러도 존재합니다.&lt;br /&gt;
&lt;br /&gt;
* 일반적인 exe와는 다르게 .NET exe/dll(닷넷 응용 프로그램)에는 CLR 로더가 포함되어 있습니다.(생각해보면 CLR이 없으면 프로그램이 굴러가지 않겠죠?)&lt;br /&gt;
&lt;br /&gt;
* CLR은 프로세스가 실행되면 로더에 의해 메모리에 함께 적재되어 실행됩니다.&lt;br /&gt;
&lt;br /&gt;
* .NET Compliant Language (.NET 호환언어) : 어떤 언어든지 IL코드로만 바꿀 수 있다면 CLR에서 작동하지 않을까? 라는 생각에서, 컴파일러가 소스 코드의 결과물을 IL코드로 바꿀 수 있는 언어를 말합니다.&lt;br /&gt;
&lt;br /&gt;
* 대표적인 .NET CL의 공식적인 종류로는 C++/CLI, F#, VB.NET C# 등이 있습니다. (Ruby, Python, Lisp, COBOL, PHP들도 비공식적으론 읍읍..)&lt;br /&gt;
&lt;br /&gt;
* 닷넷 IL은 CIL이라 부르기도 하고, MSIL이라고 부르기도 합니다. (자바 IL은 바이트 코드라고 하죠?)&lt;br /&gt;
* IL 코드는 CPU에 독립적이기 때문에, 모든 닷넷 호환 언어는 소스 코드를 IL 코드로 컴파일한 뒤 CLR이 실핻될 때 IL 코드를 CPU의 기계어로 최종 번역하게 됩니다.&lt;br /&gt;
&lt;br /&gt;
* CTS(Common Type System, 공용 타입 시스템)은 .NET호환언어가 지켜야할 표준 규격을 정의한 것입니다.&lt;br /&gt;
* .NET 호환 언어는 CTS를 넘어서서 구현할 수 없지만, 꼭 CTS를 전부다 구현해야 할 필요도 없습니다.&lt;br /&gt;
** 예를 들어, CTS에서는 클래스 상속을 하나만 허용하기 때문에, 클래스 다중 상속을 지원하도록 만들 수는 없습니다.&lt;br /&gt;
** CTS에서는 접근 제한자로 public, private 등을 지원하지만 필요에 따라 public만 지원하도록 만들 수도 있습니다.&lt;br /&gt;
&lt;br /&gt;
* CLS(Common Language Specification)은 CTS와는 다르게 .NET 호환 언어가 지켜야 할 최소한의 언어 사양을 정의한 것입니다.&lt;br /&gt;
&lt;br /&gt;
* 서로 다른 닷넷 호환 언어끼리 호출해야 하는 경우에는, 그 기능에 한해서 CLS를 만족시키도록 작성해야 합니다.&lt;br /&gt;
** 예를 들어, C#에서는 unsigned 를 지원하지만, CLS에서는 unsigned 타입을 강제화하지 않으므로 만약 다른 닷넷호환언어에서 unsigned를 지원하지 않는다면 문제가 생깁니다.&lt;br /&gt;
&lt;br /&gt;
* 메타데이터(metadata)는 데이터를 위한 데이터로써, 예를 들면 그림의 속성을 나타내고 있는 데이터들이 메타데이터입니다.&lt;br /&gt;
* 프로그래밍 언어에서는 개발자가 구현한 코드가 데이터에 해당하고, 해당 코드의 성격을 설명해주는 클래스, 메서드 등을 메타데이터라고 합니다.&lt;br /&gt;
&lt;br /&gt;
* exe 또는 dll을 만들게 되면 CLR에서는 자기서술적인 데이터(META data)로써 프로그램의 함수, 클래스들의 목록을 기록합니다. (즉, 그에 대한 메타데이터를 생성합니다.)&lt;br /&gt;
* Reflection 기술을 활용하면 exe이나 dll안에 서술된 메타데이터를 읽어 어떤 클래스나 메서드가 제공되는지 확인할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* CLI(Common Language Infrastructure)는 MS가 ECMA에 제출한 표준형식으로, CTS 명세나 중간 언어(IL)에 대한 코드 정의, 메타데이터와 그것을 포함하는 바이너리 파일들의 구조가 명세되어 있습니다.&lt;br /&gt;
* 따라서 CLR은 CLI를 구현하고 있으며, CLI를 구현한다면 .NET과 호환됩니다. (ex) Mono는 CLI의 구현체&lt;br /&gt;
&lt;br /&gt;
* 어셈블리(Assembly): .NET에서는 exe나 dll 같은 실행 파일을 어셈블리라고 합니다.&lt;br /&gt;
* 모듈(Module): 하나의 어셈블리를 여러개의 모듈(Module)(.netmodule)로 쪼갤 수 있습니다. 모듈 하나당 한 개의 파일이 대응됩니다. 단, 어셈블리안에 존재하는 모듈 중 하나는 반드시 다른 모듈들의 위치를 기술(기능은 없고, 단순히 위치를 기술함)하고 있어야 하는데, 이 모듈의 확장자가 바로 exe 또는 dll이 됩니다. ~~하지만 Visual Studio에서도 지원하지 않습니다(개념적인 내용)~~&lt;br /&gt;
&lt;br /&gt;
* CLR(Common Language Runtime)에는 중간 언어를 기계어로 변환해주는 JIT(Just-In-Time)컴파일러와 GC(Garbage Collector)가 들어가있습니다.&lt;br /&gt;
&lt;br /&gt;
* .NET 호환 언어를 Managed(관리)언어라고도 합니다.&lt;br /&gt;
* CLR 자체를 관리 환경(Managed Environment)라고도 하고, CLR이 로드되는 프로세스를 관리 프로세스라고도 합니다.&lt;br /&gt;
&lt;br /&gt;
* 기존 프로그램에 CLR loader를 넣어주면 .NET호환언어를 구동시킬 수 있는 프로그램이 됩니다.&lt;br /&gt;
** 예를 들어, IE(Internet Explorer)안에는 CLR loader가 들어가 있어서, .NET 호환 언어로 만들어진 컨트롤을 웹 브라우저에서 실행시킬 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* MS에서는 CLR, BCL(Base Class Library, 표준라이브러리), GAC(Global Assembly Cache)를 묶어서 &#039;.NET Framework&#039;라고 배포합니다.&lt;br /&gt;
* GAC는 컴퓨터에서 실행되는 닷넷 응용 프로그램이 어셈블리 파일을 공통적으로 찾을 수 있는 전역 저장소입니다.&lt;br /&gt;
&lt;br /&gt;
* C#은 .NET Framework의 발전에 빠르게 대응해줍니다.&lt;br /&gt;
&lt;br /&gt;
* .NET Framework를 설치하면 기본적으로 CSC(C# Compiler)가 설치됩니다.&lt;br /&gt;
** 요즈음의 MS는 CSC를 따로 배포하므로 C# 6.0을 컴파일하려면 설치해서 쓰세요. ~~하지만 VS를 쓴다면?~~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 주로 프로그래밍 언어에서 변수명 이름을 지을 때는 Camel Case. Pascal Case, Snake Case, Screaming Snake Case를 주로 사용합니다. C#에서는 Snake Case와 Screaming Snake Case를 관례적으로 사용하지 않습니다.&lt;br /&gt;
** Camel Case  : intValue&lt;br /&gt;
** Pascal Case : IntValue&lt;br /&gt;
** Snake Case  : int_value&lt;br /&gt;
** Screaming Snake Case : INT_VALUE&lt;br /&gt;
 &lt;br /&gt;
* C#에서 변수는 Camel Case로 작성하고, 그 외(함수, 클래스, 메소드)에는 Pascal Case로 작성하는 것이 관례입니다.&lt;br /&gt;
&lt;br /&gt;
==== #2. C#의 타입과 문장, 배열 ====&lt;br /&gt;
&lt;br /&gt;
* 숫자형 sbyte(부호 있는 8비트), byte(부호 없는 8비트), short, ushort, int, uint, long, ulong&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 예약어&lt;br /&gt;
| 크기&lt;br /&gt;
| 대응되는 닷넷 프레임워크 내 타입&lt;br /&gt;
|-&lt;br /&gt;
| sbyte&lt;br /&gt;
| 부호 있는 8비트&lt;br /&gt;
| System.SByte&lt;br /&gt;
|-&lt;br /&gt;
| byte&lt;br /&gt;
| 부호 없는 8비트&lt;br /&gt;
| System.Byte&lt;br /&gt;
|-&lt;br /&gt;
| short&lt;br /&gt;
| 부호 있는 16비트&lt;br /&gt;
| System.Int16&lt;br /&gt;
|-&lt;br /&gt;
| ushort&lt;br /&gt;
| 부호 없는 16비트&lt;br /&gt;
| System.UInt16&lt;br /&gt;
|-&lt;br /&gt;
| int&lt;br /&gt;
| 부호 있는 32비트&lt;br /&gt;
| System.Int32&lt;br /&gt;
|-&lt;br /&gt;
| uint&lt;br /&gt;
| 부호 없는 32비트&lt;br /&gt;
| System.UInt32&lt;br /&gt;
|-&lt;br /&gt;
| long&lt;br /&gt;
| 부호 있는 64비트&lt;br /&gt;
| System.Int64&lt;br /&gt;
|-&lt;br /&gt;
| ulong&lt;br /&gt;
| 부호 없는 64비트&lt;br /&gt;
| System.UInt64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* int a = 10000000000; 이런거하면 Compile Error 납니다.&lt;br /&gt;
** 즉, 범위를 넘어가는 값을 대입할 수 없습니다.&lt;br /&gt;
&lt;br /&gt;
* C#은 Value type과 Reference type이 나눠져있습니다.&lt;br /&gt;
&lt;br /&gt;
* 실수형&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 예약어&lt;br /&gt;
| 크기&lt;br /&gt;
| 대응되는 닷넷 프레임워크 내 타입&lt;br /&gt;
|-&lt;br /&gt;
| float&lt;br /&gt;
| 4바이트&lt;br /&gt;
| System.Single&lt;br /&gt;
|-&lt;br /&gt;
| double&lt;br /&gt;
| 8바이트&lt;br /&gt;
| System.Double&lt;br /&gt;
|-&lt;br /&gt;
| decimal&lt;br /&gt;
| 16바이트&lt;br /&gt;
| System.Decimal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 리터럴에 U를 붙이면 uint, UL을 붙이면 ulong, L을 붙이면 long, m을 붙이면 decimal, f를 붙이면 float가 됩니다.&lt;br /&gt;
&lt;br /&gt;
* 문자형&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 예약어&lt;br /&gt;
| 크기&lt;br /&gt;
| 대응되는 닷넷 프레임워크 내 타입&lt;br /&gt;
|-&lt;br /&gt;
| char&lt;br /&gt;
| 유니코드 4바이트&lt;br /&gt;
| System.Char&lt;br /&gt;
|-&lt;br /&gt;
| string&lt;br /&gt;
| 유니코드 문자열&lt;br /&gt;
| System.String&lt;br /&gt;
|}&lt;br /&gt;
** ex) char a = &#039;빵&#039;; ( sizeof(a) = 4, 유니코드이기 때문에 )&lt;br /&gt;
** string b = &amp;quot;Hello!&amp;quot;; ( b&amp;amp;#91;3&amp;amp;#93; =&amp;gt; &#039;l&#039; 처럼 직접접근도 가능합니다. )&lt;br /&gt;
&lt;br /&gt;
* char c = &#039;\u2023&#039; 같은것도 가능&lt;br /&gt;
* 반대로 char \u2023 = &#039;c&#039; 도 가능합니다. (char 빵 = &#039;빵&#039; 되듯이..)&lt;br /&gt;
&lt;br /&gt;
* uint와 char는 바이트 크기는 같지만, uint는 수를 담기 위한 타입으로 정해져 있고 char는 문자를 담기 위한 타입으로 약속되어있습니다.&lt;br /&gt;
** 이 때문에, char에 사칙연산을 적용하려고 하면 오류가 발생합니다.&lt;br /&gt;
&lt;br /&gt;
* string str = &amp;quot;\tHello World\n!&amp;quot;; Console.WriteLine(str); 이라 하면 콘솔에 &#039;Hello World!&amp;quot;라고 뜨지만&lt;br /&gt;
* string str = @&amp;quot;\tHello World\n!&amp;quot;; 이렇게 하면 Escape Sequence를 따지지 않고 콘솔에 &amp;quot;\tHello World\n!&amp;quot;라고 뜹니다.&lt;br /&gt;
** 즉, 이스케이프 시퀀스로 간주하지 않고 순수한 문자로 취급할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* 예약어를 식별자로 사용할 수 없지만, 식별자로 사용해야 한다면 &#039;@&#039; 문자를 접두어로 사용하여 C# 컴파일러가 예약어가 아닌 식별자로 인식하게 할 수 있습니다.&lt;br /&gt;
** char int = &#039;a&#039;;   // int는 예약어라서 못쓰지만&lt;br /&gt;
** char @int = &#039;a&#039;;  // 이렇게하면 가능합니다.&lt;br /&gt;
&lt;br /&gt;
* 논리형에는 bool이 존재하며, System.Boolean을 줄인 예약어 입니다.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* C#에는 값형식과 참조형식이 존재합니다.&lt;br /&gt;
** 값 형식(Value Type)은 스택(Stack)에 저장되고&lt;br /&gt;
** 참조 형식(Reference Type)은 힙(Heap)에 저장됩니다.&lt;br /&gt;
&lt;br /&gt;
* 윈도우 프로그램은 기본적으로 하나의 스레드를 갖습니다. 이 때, 개별 스레드마다 전용으로 사용할 수 있는 저장소가 메모리에 할당되는데, 그 영역을 스택이라고 합니다.&lt;br /&gt;
* 힙은 프로그램에서 필요에 의해 메모리를 사용하겠다고 요청했을 때 사용할 수 있는 저장소로, 특별히 닷넷에서는 CLR이 직접 프로그램에서 사용될 힙을 관리한다.&lt;br /&gt;
* Heap에 저장된 데이터는 원래 자동으로 해제되지 않습니다. 하지만 C#에는 GC가 있으므로, 자동으로 할당 해제합니다.&lt;br /&gt;
&lt;br /&gt;
* C#의 값형식은 정수형,실수형, char, bool, struct 등이 있습니다.&lt;br /&gt;
* C#의 참조형식은 배열, 클래스, string, object 등이 있으며, 값 형식과는 달리 변수의 타입에 해당하는 값을 별도의 힙 메모리를 할당하여 담고 스택의 변수 값은 그 힙의 데이터 주소를 가리키게 됩니다.&lt;br /&gt;
&lt;br /&gt;
* int b; 이렇게 선언만 해놓고 초기화를 안하면 b에는 0이 들어갑니다. 하지만 C#은 오류로 판단하여 못쓰게 합니다. 따라서 int b = 0; 이런식으로 명시적으로 초기화를 하세요.&lt;br /&gt;
* C#에서는 항상 자료형에 대한 메모리를 할당하면 해당 영역을 0으로 초기화합니다. (bool형은 false)&lt;br /&gt;
&lt;br /&gt;
* 상수는 const int b = 5; 이런식으로 합니다. 즉, 변수 정의시 const 예약어를 붙여줍니다.&lt;br /&gt;
** 상수는 반드시 컴파일 시에 값이 결정되어야 합니다.&lt;br /&gt;
&lt;br /&gt;
* string s = &amp;quot;a&amp;quot;; 하게 되면 stack에는 &#039;s&#039;변수가 할당되고, heap에는 실제 데이터가 할당됩니다.&lt;br /&gt;
&lt;br /&gt;
* C#에서 참조형은 &#039;new&#039;키워드를 사용하여 할당합니다.&lt;br /&gt;
&lt;br /&gt;
* 배열은 동일한 타입의 공간을 지정된 수만큼 힙 메모리에 연속적으로 할당합니다. 배열도 참조 타입이기 때문이다.&lt;br /&gt;
* 한번 정해진 배열의 크기는 고정됩니다. 참조 변수의 특성상 가리키는 대상이 변할 수 있기 때문에 변경된 크기의 배열을 다시 가리키는 것은 가능하나, 처음에 있었던 배열의 크기가 변경되는 것은 아닙니다.&lt;br /&gt;
&lt;br /&gt;
* 배열을 선언하는 경우 기본적으로 모든 값은 타입에 따른 초기화 값을 갖습니다. 즉, 값 형식 배열일 경우 기본값인 0에 준하는 값을 가지며 참조 형식 배열이라면 개별 요소가 null로 초기화가 됩니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 배열&lt;br /&gt;
   int[] arr1 = new int[5] { 0, 1, 2, 3, 4 }; // 배열의 수를 명시적으로 지정했으므로 초기화 시 반드시 그 수만큼 요소를 나열해야 한다.&lt;br /&gt;
   int[] arr2 = new int[] { 0, 1, 2, 3, 4 }; // 컴파일러가 배열의 수를 자동으로 계산한다.&lt;br /&gt;
 &lt;br /&gt;
* 다차원 배열&lt;br /&gt;
   int arr[2][3] (C style)&lt;br /&gt;
   int[][] arr = new int[2][3]; (Java style)&lt;br /&gt;
   int[,] arr = new int[2,3]; (C# sytle)&lt;br /&gt;
 &lt;br /&gt;
   // 이것도 가능하겠죠?&lt;br /&gt;
 int[,,] arr2 = new int[2, 3, 4]&lt;br /&gt;
             {&lt;br /&gt;
                 { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } },&lt;br /&gt;
                 { { 13, 14, 15, 16 }, { 17, 18, 19, 20 }, { 21, 22, 23, 24 } }&lt;br /&gt;
             };&lt;br /&gt;
&lt;br /&gt;
* 가변배열&lt;br /&gt;
   int[][] arr = new int[5][];  // 가변배열이면 반드시 &#039;[][]&#039;로 써야됩니다.&lt;br /&gt;
   arr[0] = new int[4];&lt;br /&gt;
   arr[1] = new int[5];&lt;br /&gt;
&lt;br /&gt;
* 논리연산자 (C랑 동일합니다)&lt;br /&gt;
* 관계연산자 : &amp;lt; &amp;gt; &amp;lt;= &amp;gt;= != ==&lt;br /&gt;
* 비트연산자 : &amp;amp; | ^ !&lt;br /&gt;
&lt;br /&gt;
* 삼항 연산자도 존재합니다.&lt;br /&gt;
** (condition) ? (true): (false)&lt;br /&gt;
&lt;br /&gt;
* switch/case구문&lt;br /&gt;
** break가 강제 입니다. (단, caase 레이블에 아무 내용이 없다면 break를 생략할 수도 있습니다.)&lt;br /&gt;
** case에는 정수 상수, Enum 열거값, String 값이 들어올 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* 전치,후치연산 가능합니다 (++, --)&lt;br /&gt;
&lt;br /&gt;
* int n = 50;&lt;br /&gt;
  int x = 100;&lt;br /&gt;
  if( x &amp;gt; 10 || n++ &amp;gt; 0 ) 이런식으로 하면, 절대 n++은 되지않습니다.&lt;br /&gt;
&lt;br /&gt;
* while, for, do-while, foreach 가능합니다.&lt;br /&gt;
* foreach (타입 변수명 in 표현식 ) : 표현식에 들어올 수 있는 변수는 IEnumerator 인터페이스를 구현해야 합니다. &lt;br /&gt;
&lt;br /&gt;
* break, continue, throw, goto 가능합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 그 외 ===&lt;br /&gt;
* 자기소개, 강사소개 및 각자 C#을 배우고 싶은 이유에 대해서 말했습니다.&lt;br /&gt;
* 다음 주에는 강사님이 훈련을 갑니다 =&amp;gt; 휴강으로 결정&lt;br /&gt;
* 미처 전달하지 못한 내용은 다음을 참고해주세요.&lt;br /&gt;
** [[CS/5월11일/부록]]&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
--------------------------------&lt;br /&gt;
[[CS]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC&amp;diff=29795</id>
		<title>CS/5월11일</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC&amp;diff=29795"/>
		<updated>2016-05-11T16:03:13Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* 시작합니다!&lt;br /&gt;
&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* [[신형철]], [[이승현]], [[홍성현]], [[박인서]], [[김상렬]], [[유성현]], [[강민승]]&lt;br /&gt;
&lt;br /&gt;
== 진행 시간 ==&lt;br /&gt;
* 수요일 오후 7시 ~ 오후 9시&lt;br /&gt;
** ~~역시 이 스터디에는 고정된 시간이란 없는 것 같아요.~~&lt;br /&gt;
&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* 다소 중요하다고 생각된 내용은 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;보라색 볼드(굵게)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93; 처리하였습니다.&lt;br /&gt;
&lt;br /&gt;
* #1. 닷넷 프레임워크 살펴보기&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;닷넷 응용 프로그램의 기본 구조&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;CLR과 IL/MSIL(CIL)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 닷넷 호환 언어&lt;br /&gt;
** CTS와 CLS&lt;br /&gt;
** 메타데이터, 닷넷 응용 프로그램 속의 메타데이터&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리, 모듈&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** CLI와 CTS, CLI와 닷넷 프레임워크&lt;br /&gt;
** 닷넷 프레임워크 구성 요소&lt;br /&gt;
** 기존 윈도우 프로그램과 닷넷 응용 프로그램의 대응 관계&lt;br /&gt;
** 모노(Mono) 프레임워크&lt;br /&gt;
** C#과 닷넷 프레임워크&lt;br /&gt;
** Naming Convention&lt;br /&gt;
&lt;br /&gt;
* #2. C#의 타입과 문장(Statement), 배열&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자료형과 기본 자료형&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 정수 타입, 실수 타입, 문자 타입. 상수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** C#에서의 변수 초기화&lt;br /&gt;
** C#에서의 Escape Sequence&lt;br /&gt;
** 형변환&lt;br /&gt;
** 예약어와 식별자&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;값 형식과 참조 형식&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;배열, 다차원 배열, 가변 배열&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;논리 연산자, 관계 연산자, 조건 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#의 조건문과 반복문, 점프문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* 만약 시간이 된다면 #3까지도 예정중입니다.&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
=== 내용 요약 ===&lt;br /&gt;
==== #1. 닷넷 프레임워크 살펴보기 ====&lt;br /&gt;
* C#을 쓰기 위해서는 .NET Framework가 필요합니다.&lt;br /&gt;
* .NET Framework는 일종의 Process Virtual Machine(가상머신) 입니다.&lt;br /&gt;
* 일반적인 네이티브 언어로 만들어진 프로그램들이 기계어를 통해 곧바로 운영체제에서 실행될 수 있는 것과 달리, C# 프로그램은 C# 컴파일러에 의해 중간에 어떤 코드(IL)로 바뀌었다가 .NET Framework(정확히는 CLR)가 대신 실행해줍니다.&lt;br /&gt;
&lt;br /&gt;
* .NET을 깔면 자동으로 CLR(Common Language Runtime)이 설치됩니다. 사실 C#소스를 컴파일한뒤 CLR에 던져서 실행하는 구조입니다.&lt;br /&gt;
* 중간에 거쳐가는 파일은 IL(Intermediate Language:중간언어)로 작성된 파일입니다.&lt;br /&gt;
* 즉, C# 컴파일러는 C# Source를 IL로 바꿔주는 것 뿐이고, 실행 시 CLR이 IL을 기계어로 바꾸면서 실행을 하게 됩니다.&lt;br /&gt;
* IL 역시 하나의 언어에 속하기 때문에, 별도로 ILASM.exe라는 컴파일러도 존재합니다.&lt;br /&gt;
&lt;br /&gt;
* 일반적인 exe와는 다르게 .NET exe/dll(닷넷 응용 프로그램)에는 CLR 로더가 포함되어 있습니다.(생각해보면 CLR이 없으면 프로그램이 굴러가지 않겠죠?)&lt;br /&gt;
&lt;br /&gt;
* CLR은 프로세스가 실행되면 로더에 의해 메모리에 함께 적재되어 실행됩니다.&lt;br /&gt;
&lt;br /&gt;
* .NET Compliant Language (.NET 호환언어) : 어떤 언어든지 IL코드로만 바꿀 수 있다면 CLR에서 작동하지 않을까? 라는 생각에서, 컴파일러가 소스 코드의 결과물을 IL코드로 바꿀 수 있는 언어를 말합니다.&lt;br /&gt;
&lt;br /&gt;
* 대표적인 .NET CL의 공식적인 종류로는 C++/CLI, F#, VB.NET C# 등이 있습니다. (Ruby, Python, Lisp, COBOL, PHP들도 비공식적으론 읍읍..)&lt;br /&gt;
&lt;br /&gt;
* 닷넷 IL은 CIL이라 부르기도 하고, MSIL이라고 부르기도 합니다. (자바 IL은 바이트 코드라고 하죠?)&lt;br /&gt;
* IL 코드는 CPU에 독립적이기 때문에, 모든 닷넷 호환 언어는 소스 코드를 IL 코드로 컴파일한 뒤 CLR이 실핻될 때 IL 코드를 CPU의 기계어로 최종 번역하게 됩니다.&lt;br /&gt;
&lt;br /&gt;
* CTS(Common Type System, 공용 타입 시스템)은 .NET호환언어가 지켜야할 표준 규격을 정의한 것입니다.&lt;br /&gt;
* .NET 호환 언어는 CTS를 넘어서서 구현할 수 없지만, 꼭 CTS를 전부다 구현해야 할 필요도 없습니다.&lt;br /&gt;
** 예를 들어, CTS에서는 클래스 상속을 하나만 허용하기 때문에, 클래스 다중 상속을 지원하도록 만들 수는 없습니다.&lt;br /&gt;
** CTS에서는 접근 제한자로 public, private 등을 지원하지만 필요에 따라 public만 지원하도록 만들 수도 있습니다.&lt;br /&gt;
&lt;br /&gt;
* CLS(Common Language Specification)은 CTS와는 다르게 .NET 호환 언어가 지켜야 할 최소한의 언어 사양을 정의한 것입니다.&lt;br /&gt;
&lt;br /&gt;
* 서로 다른 닷넷 호환 언어끼리 호출해야 하는 경우에는, 그 기능에 한해서 CLS를 만족시키도록 작성해야 합니다.&lt;br /&gt;
** 예를 들어, C#에서는 unsigned 를 지원하지만, CLS에서는 unsigned 타입을 강제화하지 않으므로 만약 다른 닷넷호환언어에서 unsigned를 지원하지 않는다면 문제가 생깁니다.&lt;br /&gt;
&lt;br /&gt;
* 메타데이터(metadata)는 데이터를 위한 데이터로써, 예를 들면 그림의 속성을 나타내고 있는 데이터들이 메타데이터입니다.&lt;br /&gt;
* 프로그래밍 언어에서는 개발자가 구현한 코드가 데이터에 해당하고, 해당 코드의 성격을 설명해주는 클래스, 메서드 등을 메타데이터라고 합니다.&lt;br /&gt;
&lt;br /&gt;
* exe 또는 dll을 만들게 되면 CLR에서는 자기서술적인 데이터(META data)로써 프로그램의 함수, 클래스들의 목록을 기록합니다. (즉, 그에 대한 메타데이터를 생성합니다.)&lt;br /&gt;
* Reflection 기술을 활용하면 exe이나 dll안에 서술된 메타데이터를 읽어 어떤 클래스나 메서드가 제공되는지 확인할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* CLI(Common Language Infrastructure)는 MS가 ECMA에 제출한 표준형식으로, CTS 명세나 중간 언어(IL)에 대한 코드 정의, 메타데이터와 그것을 포함하는 바이너리 파일들의 구조가 명세되어 있습니다.&lt;br /&gt;
* 따라서 CLR은 CLI를 구현하고 있으며, CLI를 구현한다면 .NET과 호환됩니다. (ex) Mono는 CLI의 구현체&lt;br /&gt;
&lt;br /&gt;
* 어셈블리(Assembly): .NET에서는 exe나 dll 같은 실행 파일을 어셈블리라고 합니다.&lt;br /&gt;
* 모듈(Module): 하나의 어셈블리를 여러개의 모듈(Module)(.netmodule)로 쪼갤 수 있습니다. 모듈 하나당 한 개의 파일이 대응됩니다. 단, 어셈블리안에 존재하는 모듈 중 하나는 반드시 다른 모듈들의 위치를 기술(기능은 없고, 단순히 위치를 기술함)하고 있어야 하는데, 이 모듈의 확장자가 바로 exe 또는 dll이 됩니다. ~~하지만 Visual Studio에서도 지원하지 않습니다(개념적인 내용)~~&lt;br /&gt;
&lt;br /&gt;
* CLR(Common Language Runtime)에는 중간 언어를 기계어로 변환해주는 JIT(Just-In-Time)컴파일러와 GC(Garbage Collector)가 들어가있습니다.&lt;br /&gt;
&lt;br /&gt;
* .NET 호환 언어를 Managed(관리)언어라고도 합니다.&lt;br /&gt;
* CLR 자체를 관리 환경(Managed Environment)라고도 하고, CLR이 로드되는 프로세스를 관리 프로세스라고도 합니다.&lt;br /&gt;
&lt;br /&gt;
* 기존 프로그램에 CLR loader를 넣어주면 .NET호환언어를 구동시킬 수 있는 프로그램이 됩니다.&lt;br /&gt;
** 예를 들어, IE(Internet Explorer)안에는 CLR loader가 들어가 있어서, .NET 호환 언어로 만들어진 컨트롤을 웹 브라우저에서 실행시킬 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* MS에서는 CLR, BCL(Base Class Library, 표준라이브러리), GAC(Global Assembly Cache)를 묶어서 &#039;.NET Framework&#039;라고 배포합니다.&lt;br /&gt;
* GAC는 컴퓨터에서 실행되는 닷넷 응용 프로그램이 어셈블리 파일을 공통적으로 찾을 수 있는 전역 저장소입니다.&lt;br /&gt;
&lt;br /&gt;
* C#은 .NET Framework의 발전에 빠르게 대응해줍니다.&lt;br /&gt;
&lt;br /&gt;
* .NET Framework를 설치하면 기본적으로 CSC(C# Compiler)가 설치됩니다.&lt;br /&gt;
** 요즈음의 MS는 CSC를 따로 배포하므로 C# 6.0을 컴파일하려면 설치해서 쓰세요. ~~하지만 VS를 쓴다면?~~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 주로 프로그래밍 언어에서 변수명 이름을 지을 때는 Camel Case. Pascal Case, Snake Case, Screaming Snake Case를 주로 사용합니다. C#에서는 Snake Case와 Screaming Snake Case를 관례적으로 사용하지 않습니다.&lt;br /&gt;
** Camel Case  : intValue&lt;br /&gt;
** Pascal Case : IntValue&lt;br /&gt;
** Snake Case  : int_value&lt;br /&gt;
** Screaming Snake Case : INT_VALUE&lt;br /&gt;
 &lt;br /&gt;
* C#에서 변수는 Camel Case로 작성하고, 그 외(함수, 클래스, 메소드)에는 Pascal Case로 작성하는 것이 관례입니다.&lt;br /&gt;
&lt;br /&gt;
==== #2. C#의 타입과 문장, 배열 ====&lt;br /&gt;
&lt;br /&gt;
* 숫자형 sbyte(부호 있는 8비트), byte(부호 없는 8비트), short, ushort, int, uint, long, ulong&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 예약어&lt;br /&gt;
| 크기&lt;br /&gt;
| 대응되는 닷넷 프레임워크 내 타입&lt;br /&gt;
|-&lt;br /&gt;
| sbyte&lt;br /&gt;
| 부호 있는 8비트&lt;br /&gt;
| System.SByte&lt;br /&gt;
|-&lt;br /&gt;
| byte&lt;br /&gt;
| 부호 없는 8비트&lt;br /&gt;
| System.Byte&lt;br /&gt;
|-&lt;br /&gt;
| short&lt;br /&gt;
| 부호 있는 16비트&lt;br /&gt;
| System.Int16&lt;br /&gt;
|-&lt;br /&gt;
| ushort&lt;br /&gt;
| 부호 없는 16비트&lt;br /&gt;
| System.UInt16&lt;br /&gt;
|-&lt;br /&gt;
| int&lt;br /&gt;
| 부호 있는 32비트&lt;br /&gt;
| System.Int32&lt;br /&gt;
|-&lt;br /&gt;
| uint&lt;br /&gt;
| 부호 없는 32비트&lt;br /&gt;
| System.UInt32&lt;br /&gt;
|-&lt;br /&gt;
| long&lt;br /&gt;
| 부호 있는 64비트&lt;br /&gt;
| System.Int64&lt;br /&gt;
|-&lt;br /&gt;
| ulong&lt;br /&gt;
| 부호 없는 64비트&lt;br /&gt;
| System.UInt64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* int a = 10000000000; 이런거하면 Compile Error 납니다.&lt;br /&gt;
** 즉, 범위를 넘어가는 값을 대입할 수 없습니다.&lt;br /&gt;
&lt;br /&gt;
* C#은 Value type과 Reference type이 나눠져있습니다.&lt;br /&gt;
&lt;br /&gt;
* 실수형&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 예약어&lt;br /&gt;
| 크기&lt;br /&gt;
| 대응되는 닷넷 프레임워크 내 타입&lt;br /&gt;
|-&lt;br /&gt;
| float&lt;br /&gt;
| 4바이트&lt;br /&gt;
| System.Single&lt;br /&gt;
|-&lt;br /&gt;
| double&lt;br /&gt;
| 8바이트&lt;br /&gt;
| System.Double&lt;br /&gt;
|-&lt;br /&gt;
| decimal&lt;br /&gt;
| 16바이트&lt;br /&gt;
| System.Decimal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 리터럴에 U를 붙이면 uint, UL을 붙이면 ulong, L을 붙이면 long, m을 붙이면 decimal, f를 붙이면 float가 됩니다.&lt;br /&gt;
&lt;br /&gt;
* 문자형&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 예약어&lt;br /&gt;
| 크기&lt;br /&gt;
| 대응되는 닷넷 프레임워크 내 타입&lt;br /&gt;
|-&lt;br /&gt;
| char&lt;br /&gt;
| 유니코드 4바이트&lt;br /&gt;
| System.Char&lt;br /&gt;
|-&lt;br /&gt;
| string&lt;br /&gt;
| 유니코드 문자열&lt;br /&gt;
| System.String&lt;br /&gt;
|}&lt;br /&gt;
** ex) char a = &#039;빵&#039;; ( sizeof(a) = 4, 유니코드이기 때문에 )&lt;br /&gt;
** string b = &amp;quot;Hello!&amp;quot;; ( b&amp;amp;#91;3&amp;amp;#93; =&amp;gt; &#039;l&#039; 처럼 직접접근도 가능합니다. )&lt;br /&gt;
&lt;br /&gt;
* char c = &#039;\u2023&#039; 같은것도 가능&lt;br /&gt;
* 반대로 char \u2023 = &#039;c&#039; 도 가능합니다. (char 빵 = &#039;빵&#039; 되듯이..)&lt;br /&gt;
&lt;br /&gt;
* uint와 char는 바이트 크기는 같지만, uint는 수를 담기 위한 타입으로 정해져 있고 char는 문자를 담기 위한 타입으로 약속되어있습니다.&lt;br /&gt;
** 이 때문에, char에 사칙연산을 적용하려고 하면 오류가 발생합니다.&lt;br /&gt;
&lt;br /&gt;
* string str = &amp;quot;\tHello World\n!&amp;quot;; Console.WriteLine(str); 이라 하면 콘솔에 &#039;Hello World!&amp;quot;라고 뜨지만&lt;br /&gt;
* string str = @&amp;quot;\tHello World\n!&amp;quot;; 이렇게 하면 Escape Sequence를 따지지 않고 콘솔에 &amp;quot;\tHello World\n!&amp;quot;라고 뜹니다.&lt;br /&gt;
** 즉, 이스케이프 시퀀스로 간주하지 않고 순수한 문자로 취급할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* 예약어를 식별자로 사용할 수 없지만, 식별자로 사용해야 한다면 &#039;@&#039; 문자를 접두어로 사용하여 C# 컴파일러가 예약어가 아닌 식별자로 인식하게 할 수 있습니다.&lt;br /&gt;
** char int = &#039;a&#039;;   // int는 예약어라서 못쓰지만&lt;br /&gt;
** char @int = &#039;a&#039;;  // 이렇게하면 가능합니다.&lt;br /&gt;
&lt;br /&gt;
* 논리형에는 bool이 존재하며, System.Boolean을 줄인 예약어 입니다.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* C#에는 값형식과 참조형식이 존재합니다.&lt;br /&gt;
** 값 형식(Value Type)은 스택(Stack)에 저장되고&lt;br /&gt;
** 참조 형식(Reference Type)은 힙(Heap)에 저장됩니다.&lt;br /&gt;
&lt;br /&gt;
* 윈도우 프로그램은 기본적으로 하나의 스레드를 갖습니다. 이 때, 개별 스레드마다 전용으로 사용할 수 있는 저장소가 메모리에 할당되는데, 그 영역을 스택이라고 합니다.&lt;br /&gt;
* 힙은 프로그램에서 필요에 의해 메모리를 사용하겠다고 요청했을 때 사용할 수 있는 저장소로, 특별히 닷넷에서는 CLR이 직접 프로그램에서 사용될 힙을 관리한다.&lt;br /&gt;
* Heap에 저장된 데이터는 원래 자동으로 해제되지 않습니다. 하지만 C#에는 GC가 있으므로, 자동으로 할당 해제합니다.&lt;br /&gt;
&lt;br /&gt;
* C#의 값형식은 정수형,실수형, char, bool, struct 등이 있습니다.&lt;br /&gt;
* C#의 참조형식은 배열, 클래스, string, object 등이 있으며, 값 형식과는 달리 변수의 타입에 해당하는 값을 별도의 힙 메모리를 할당하여 담고 스택의 변수 값은 그 힙의 데이터 주소를 가리키게 됩니다.&lt;br /&gt;
&lt;br /&gt;
* int b; 이렇게 선언만 해놓고 초기화를 안하면 b에는 0이 들어갑니다. 하지만 C#은 오류로 판단하여 못쓰게 합니다. 따라서 int b = 0; 이런식으로 명시적으로 초기화를 하세요.&lt;br /&gt;
* C#에서는 항상 자료형에 대한 메모리를 할당하면 해당 영역을 0으로 초기화합니다. (bool형은 false)&lt;br /&gt;
&lt;br /&gt;
* 상수는 const int b = 5; 이런식으로 합니다. 즉, 변수 정의시 const 예약어를 붙여줍니다.&lt;br /&gt;
** 상수는 반드시 컴파일 시에 값이 결정되어야 합니다.&lt;br /&gt;
&lt;br /&gt;
* string s = &amp;quot;a&amp;quot;; 하게 되면 stack에는 &#039;s&#039;변수가 할당되고, heap에는 실제 데이터가 할당됩니다.&lt;br /&gt;
&lt;br /&gt;
* C#에서 참조형은 &#039;new&#039;키워드를 사용하여 할당합니다.&lt;br /&gt;
&lt;br /&gt;
* 배열은 동일한 타입의 공간을 지정된 수만큼 힙 메모리에 연속적으로 할당합니다. 배열도 참조 타입이기 때문이다.&lt;br /&gt;
* 한번 정해진 배열의 크기는 고정됩니다. 참조 변수의 특성상 가리키는 대상이 변할 수 있기 때문에 변경된 크기의 배열을 다시 가리키는 것은 가능하나, 처음에 있었던 배열의 크기가 변경되는 것은 아닙니다.&lt;br /&gt;
&lt;br /&gt;
* 배열을 선언하는 경우 기본적으로 모든 값은 타입에 따른 초기화 값을 갖습니다. 즉, 값 형식 배열일 경우 기본값인 0에 준하는 값을 가지며 참조 형식 배열이라면 개별 요소가 null로 초기화가 됩니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 배열&lt;br /&gt;
   int[] arr1 = new int[5] { 0, 1, 2, 3, 4 }; // 배열의 수를 명시적으로 지정했으므로 초기화 시 반드시 그 수만큼 요소를 나열해야 한다.&lt;br /&gt;
   int[] arr2 = new int[] { 0, 1, 2, 3, 4 }; // 컴파일러가 배열의 수를 자동으로 계산한다.&lt;br /&gt;
 &lt;br /&gt;
* 다차원 배열&lt;br /&gt;
   int arr[2][3] (C style)&lt;br /&gt;
   int[][] arr = new int[2][3]; (Java style)&lt;br /&gt;
   int[,] arr = new int[2,3]; (C# sytle)&lt;br /&gt;
 &lt;br /&gt;
   // 이것도 가능하겠죠?&lt;br /&gt;
 int[,,] arr2 = new int[2, 3, 4]&lt;br /&gt;
             {&lt;br /&gt;
                 { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } },&lt;br /&gt;
                 { { 13, 14, 15, 16 }, { 17, 18, 19, 20 }, { 21, 22, 23, 24 } }&lt;br /&gt;
             };&lt;br /&gt;
&lt;br /&gt;
* 가변배열&lt;br /&gt;
   int[][] arr = new int[5][];  // 가변배열이면 반드시 &#039;[][]&#039;로 써야됩니다.&lt;br /&gt;
   arr[0] = new int[4];&lt;br /&gt;
   arr[1] = new int[5];&lt;br /&gt;
&lt;br /&gt;
* 논리연산자 (C랑 동일합니다)&lt;br /&gt;
* 관계연산자 : &amp;lt; &amp;gt; &amp;lt;= &amp;gt;= != ==&lt;br /&gt;
* 비트연산자 : &amp;amp; | ^ !&lt;br /&gt;
&lt;br /&gt;
* 삼항 연산자도 존재합니다.&lt;br /&gt;
** (condition) ? (true): (false)&lt;br /&gt;
&lt;br /&gt;
* switch/case구문&lt;br /&gt;
** break가 강제 입니다. (단, caase 레이블에 아무 내용이 없다면 break를 생략할 수도 있습니다.)&lt;br /&gt;
** case에는 정수 상수, Enum 열거값, String 값이 들어올 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* 전치,후치연산 가능합니다 (++, --)&lt;br /&gt;
&lt;br /&gt;
* int n = 50;&lt;br /&gt;
  int x = 100;&lt;br /&gt;
  if( x &amp;gt; 10 || n++ &amp;gt; 0 ) 이런식으로 하면, 절대 n++은 되지않습니다.&lt;br /&gt;
&lt;br /&gt;
* while, for, do-while, foreach 가능합니다.&lt;br /&gt;
* foreach (타입 변수명 in 표현식 ) : 표현식에 들어올 수 있는 변수는 IEnumerator 인터페이스를 구현해야 합니다. &lt;br /&gt;
&lt;br /&gt;
* break, continue, throw, goto 가능합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 그 외 ===&lt;br /&gt;
* 자기소개, 강사소개 및 각자 C#을 배우고 싶은 이유에 대해서 말했습니다.&lt;br /&gt;
* 다음 주에는 강사님이 훈련을 갑니다 =&amp;gt; 휴강으로 결정&lt;br /&gt;
* 미처 전달하지 못한 내용은 다음을 참고해주세요.&lt;br /&gt;
** [[CS/5월11일/부록]]&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC&amp;diff=29794</id>
		<title>CS/5월11일</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC&amp;diff=29794"/>
		<updated>2016-05-11T16:02:10Z</updated>

		<summary type="html">&lt;p&gt;118.36.59.4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* 시작합니다!&lt;br /&gt;
&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* [[신형철]], [[이승현]], [[홍성현]], [[박인서]], [[김상렬]], [[유성현]], [[강민승]]&lt;br /&gt;
&lt;br /&gt;
== 진행 시간 ==&lt;br /&gt;
* 수요일 오후 7시 ~ 오후 9시&lt;br /&gt;
** ~~역시 이 스터디에는 고정된 시간이란 없는 것 같아요.~~&lt;br /&gt;
&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* 다소 중요하다고 생각된 내용은 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;보라색 볼드(굵게)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93; 처리하였습니다.&lt;br /&gt;
&lt;br /&gt;
* #1. 닷넷 프레임워크 살펴보기&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;닷넷 응용 프로그램의 기본 구조&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;CLR과 IL/MSIL(CIL)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 닷넷 호환 언어&lt;br /&gt;
** CTS와 CLS&lt;br /&gt;
** 메타데이터, 닷넷 응용 프로그램 속의 메타데이터&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리, 모듈&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** CLI와 CTS, CLI와 닷넷 프레임워크&lt;br /&gt;
** 닷넷 프레임워크 구성 요소&lt;br /&gt;
** 기존 윈도우 프로그램과 닷넷 응용 프로그램의 대응 관계&lt;br /&gt;
** 모노(Mono) 프레임워크&lt;br /&gt;
** C#과 닷넷 프레임워크&lt;br /&gt;
** Naming Convention&lt;br /&gt;
&lt;br /&gt;
* #2. C#의 타입과 문장(Statement), 배열&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자료형과 기본 자료형&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 정수 타입, 실수 타입, 문자 타입. 상수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** C#에서의 변수 초기화&lt;br /&gt;
** C#에서의 Escape Sequence&lt;br /&gt;
** 형변환&lt;br /&gt;
** 예약어와 식별자&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;값 형식과 참조 형식&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;배열, 다차원 배열, 가변 배열&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;논리 연산자, 관계 연산자, 조건 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#의 조건문과 반복문, 점프문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* 만약 시간이 된다면 #3까지도 예정중입니다.&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
=== 내용 요약 ===&lt;br /&gt;
==== #1. 닷넷 프레임워크 살펴보기 ====&lt;br /&gt;
* C#을 쓰기 위해서는 .NET Framework가 필요합니다.&lt;br /&gt;
* .NET Framework는 일종의 Process Virtual Machine(가상머신) 입니다.&lt;br /&gt;
* 일반적인 네이티브 언어로 만들어진 프로그램들이 기계어를 통해 곧바로 운영체제에서 실행될 수 있는 것과 달리, C# 프로그램은 C# 컴파일러에 의해 중간에 어떤 코드(IL)로 바뀌었다가 .NET Framework(정확히는 CLR)가 대신 실행해줍니다.&lt;br /&gt;
&lt;br /&gt;
* .NET을 깔면 자동으로 CLR(Common Language Runtime)이 설치됩니다. 사실 C#소스를 컴파일한뒤 CLR에 던져서 실행하는 구조입니다.&lt;br /&gt;
* 중간에 거쳐가는 파일은 IL(Intermediate Language:중간언어)로 작성된 파일입니다.&lt;br /&gt;
* 즉, C# 컴파일러는 C# Source를 IL로 바꿔주는 것 뿐이고, 실행 시 CLR이 IL을 기계어로 바꾸면서 실행을 하게 됩니다.&lt;br /&gt;
* IL 역시 하나의 언어에 속하기 때문에, 별도로 ILASM.exe라는 컴파일러도 존재합니다.&lt;br /&gt;
&lt;br /&gt;
* 일반적인 exe와는 다르게 .NET exe/dll(닷넷 응용 프로그램)에는 CLR 로더가 포함되어 있습니다.(생각해보면 CLR이 없으면 프로그램이 굴러가지 않겠죠?)&lt;br /&gt;
&lt;br /&gt;
* CLR은 프로세스가 실행되면 로더에 의해 메모리에 함께 적재되어 실행됩니다.&lt;br /&gt;
&lt;br /&gt;
* .NET Compliant Language (.NET 호환언어) : 어떤 언어든지 IL코드로만 바꿀 수 있다면 CLR에서 작동하지 않을까? 라는 생각에서, 컴파일러가 소스 코드의 결과물을 IL코드로 바꿀 수 있는 언어를 말합니다.&lt;br /&gt;
&lt;br /&gt;
* 대표적인 .NET CL의 공식적인 종류로는 C++/CLI, F#, VB.NET C# 등이 있습니다. (Ruby, Python, Lisp, COBOL, PHP들도 비공식적으론 읍읍..)&lt;br /&gt;
&lt;br /&gt;
* 닷넷 IL은 CIL이라 부르기도 하고, MSIL이라고 부르기도 합니다. (자바 IL은 바이트 코드라고 하죠?)&lt;br /&gt;
* IL 코드는 CPU에 독립적이기 때문에, 모든 닷넷 호환 언어는 소스 코드를 IL 코드로 컴파일한 뒤 CLR이 실핻될 때 IL 코드를 CPU의 기계어로 최종 번역하게 됩니다.&lt;br /&gt;
&lt;br /&gt;
* CTS(Common Type System, 공용 타입 시스템)은 .NET호환언어가 지켜야할 표준 규격을 정의한 것입니다.&lt;br /&gt;
* .NET 호환 언어는 CTS를 넘어서서 구현할 수 없지만, 꼭 CTS를 전부다 구현해야 할 필요도 없습니다.&lt;br /&gt;
** 예를 들어, CTS에서는 클래스 상속을 하나만 허용하기 때문에, 클래스 다중 상속을 지원하도록 만들 수는 없습니다.&lt;br /&gt;
** CTS에서는 접근 제한자로 public, private 등을 지원하지만 필요에 따라 public만 지원하도록 만들 수도 있습니다.&lt;br /&gt;
&lt;br /&gt;
* CLS(Common Language Specification)은 CTS와는 다르게 .NET 호환 언어가 지켜야 할 최소한의 언어 사양을 정의한 것입니다.&lt;br /&gt;
&lt;br /&gt;
* 서로 다른 닷넷 호환 언어끼리 호출해야 하는 경우에는, 그 기능에 한해서 CLS를 만족시키도록 작성해야 합니다.&lt;br /&gt;
** 예를 들어, C#에서는 unsigned 를 지원하지만, CLS에서는 unsigned 타입을 강제화하지 않으므로 만약 다른 닷넷호환언어에서 unsigned를 지원하지 않는다면 문제가 생깁니다.&lt;br /&gt;
&lt;br /&gt;
* 메타데이터(metadata)는 데이터를 위한 데이터로써, 예를 들면 그림의 속성을 나타내고 있는 데이터들이 메타데이터입니다.&lt;br /&gt;
* 프로그래밍 언어에서는 개발자가 구현한 코드가 데이터에 해당하고, 해당 코드의 성격을 설명해주는 클래스, 메서드 등을 메타데이터라고 합니다.&lt;br /&gt;
&lt;br /&gt;
* exe 또는 dll을 만들게 되면 CLR에서는 자기서술적인 데이터(META data)로써 프로그램의 함수, 클래스들의 목록을 기록합니다. (즉, 그에 대한 메타데이터를 생성합니다.)&lt;br /&gt;
* Reflection 기술을 활용하면 exe이나 dll안에 서술된 메타데이터를 읽어 어떤 클래스나 메서드가 제공되는지 확인할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* CLI(Common Language Infrastructure)는 MS가 ECMA에 제출한 표준형식으로, CTS 명세나 중간 언어(IL)에 대한 코드 정의, 메타데이터와 그것을 포함하는 바이너리 파일들의 구조가 명세되어 있습니다.&lt;br /&gt;
* 따라서 CLR은 CLI를 구현하고 있으며, CLI를 구현한다면 .NET과 호환됩니다. (ex) Mono는 CLI의 구현체&lt;br /&gt;
&lt;br /&gt;
* 어셈블리(Assembly): .NET에서는 exe나 dll 같은 실행 파일을 어셈블리라고 합니다.&lt;br /&gt;
* 모듈(Module): 하나의 어셈블리를 여러개의 모듈(Module)(.netmodule)로 쪼갤 수 있습니다. 모듈 하나당 한 개의 파일이 대응됩니다. 단, 어셈블리안에 존재하는 모듈 중 하나는 반드시 다른 모듈들의 위치를 기술(기능은 없고, 단순히 위치를 기술함)하고 있어야 하는데, 이 모듈의 확장자가 바로 exe 또는 dll이 됩니다. ~~하지만 Visual Studio에서도 지원하지 않습니다(개념적인 내용)~~&lt;br /&gt;
&lt;br /&gt;
* CLR(Common Language Runtime)에는 중간 언어를 기계어로 변환해주는 JIT(Just-In-Time)컴파일러와 GC(Garbage Collector)가 들어가있습니다.&lt;br /&gt;
&lt;br /&gt;
* .NET 호환 언어를 Managed(관리)언어라고도 합니다.&lt;br /&gt;
* CLR 자체를 관리 환경(Managed Environment)라고도 하고, CLR이 로드되는 프로세스를 관리 프로세스라고도 합니다.&lt;br /&gt;
&lt;br /&gt;
* 기존 프로그램에 CLR loader를 넣어주면 .NET호환언어를 구동시킬 수 있는 프로그램이 됩니다.&lt;br /&gt;
** 예를 들어, IE(Internet Explorer)안에는 CLR loader가 들어가 있어서, .NET 호환 언어로 만들어진 컨트롤을 웹 브라우저에서 실행시킬 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* MS에서는 CLR, BCL(Base Class Library, 표준라이브러리), GAC(Global Assembly Cache)를 묶어서 &#039;.NET Framework&#039;라고 배포합니다.&lt;br /&gt;
* GAC는 컴퓨터에서 실행되는 닷넷 응용 프로그램이 어셈블리 파일을 공통적으로 찾을 수 있는 전역 저장소입니다.&lt;br /&gt;
&lt;br /&gt;
* C#은 .NET Framework의 발전에 빠르게 대응해줍니다.&lt;br /&gt;
&lt;br /&gt;
* .NET Framework를 설치하면 기본적으로 CSC(C# Compiler)가 설치됩니다.&lt;br /&gt;
** 요즈음의 MS는 CSC를 따로 배포하므로 C# 6.0을 컴파일하려면 설치해서 쓰세요. ~~하지만 VS를 쓴다면?~~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 주로 프로그래밍 언어에서 변수명 이름을 지을 때는 Camel Case. Pascal Case, Snake Case, Screaming Snake Case를 주로 사용합니다. C#에서는 Snake Case와 Screaming Snake Case를 관례적으로 사용하지 않습니다.&lt;br /&gt;
** Camel Case  : intValue&lt;br /&gt;
** Pascal Case : IntValue&lt;br /&gt;
** Snake Case  : int_value&lt;br /&gt;
** Screaming Snake Case : INT_VALUE&lt;br /&gt;
 &lt;br /&gt;
* C#에서 변수는 Camel Case로 작성하고, 그 외(함수, 클래스, 메소드)에는 Pascal Case로 작성하는 것이 관례입니다.&lt;br /&gt;
&lt;br /&gt;
==== #2. C#의 타입과 문장, 배열 ====&lt;br /&gt;
&lt;br /&gt;
* 숫자형 sbyte(부호 있는 8비트), byte(부호 없는 8비트), short, ushort, int, uint, long, ulong&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 예약어&lt;br /&gt;
| 크기&lt;br /&gt;
| 대응되는 닷넷 프레임워크 내 타입&lt;br /&gt;
|-&lt;br /&gt;
| sbyte&lt;br /&gt;
| 부호 있는 8비트&lt;br /&gt;
| System.SByte&lt;br /&gt;
|-&lt;br /&gt;
| byte&lt;br /&gt;
| 부호 없는 8비트&lt;br /&gt;
| System.Byte&lt;br /&gt;
|-&lt;br /&gt;
| short&lt;br /&gt;
| 부호 있는 16비트&lt;br /&gt;
| System.Int16&lt;br /&gt;
|-&lt;br /&gt;
| ushort&lt;br /&gt;
| 부호 없는 16비트&lt;br /&gt;
| System.UInt16&lt;br /&gt;
|-&lt;br /&gt;
| int&lt;br /&gt;
| 부호 있는 32비트&lt;br /&gt;
| System.Int32&lt;br /&gt;
|-&lt;br /&gt;
| uint&lt;br /&gt;
| 부호 없는 32비트&lt;br /&gt;
| System.UInt32&lt;br /&gt;
|-&lt;br /&gt;
| long&lt;br /&gt;
| 부호 있는 64비트&lt;br /&gt;
| System.Int64&lt;br /&gt;
|-&lt;br /&gt;
| ulong&lt;br /&gt;
| 부호 없는 64비트&lt;br /&gt;
| System.UInt64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* int a = 10000000000; 이런거하면 Compile Error 납니다.&lt;br /&gt;
** 즉, 범위를 넘어가는 값을 대입할 수 없습니다.&lt;br /&gt;
&lt;br /&gt;
* C#은 Value type과 Reference type이 나눠져있습니다.&lt;br /&gt;
&lt;br /&gt;
* 실수형&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 예약어&lt;br /&gt;
| 크기&lt;br /&gt;
| 대응되는 닷넷 프레임워크 내 타입&lt;br /&gt;
|-&lt;br /&gt;
| float&lt;br /&gt;
| 4바이트&lt;br /&gt;
| System.Single&lt;br /&gt;
|-&lt;br /&gt;
| double&lt;br /&gt;
| 8바이트&lt;br /&gt;
| System.Double&lt;br /&gt;
|-&lt;br /&gt;
| decimal&lt;br /&gt;
| 16바이트&lt;br /&gt;
| System.Decimal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 리터럴에 U를 붙이면 uint, UL을 붙이면 ulong, L을 붙이면 long, m을 붙이면 decimal, f를 붙이면 float가 됩니다.&lt;br /&gt;
&lt;br /&gt;
* 문자형&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 예약어&lt;br /&gt;
| 크기&lt;br /&gt;
| 대응되는 닷넷 프레임워크 내 타입&lt;br /&gt;
|-&lt;br /&gt;
| char&lt;br /&gt;
| 유니코드 4바이트&lt;br /&gt;
| System.Char&lt;br /&gt;
|-&lt;br /&gt;
| string&lt;br /&gt;
| 유니코드 문자열&lt;br /&gt;
| System.String&lt;br /&gt;
|}&lt;br /&gt;
** ex) char a = &#039;빵&#039;; ( sizeof(a) = 4, 유니코드이기 때문에 )&lt;br /&gt;
** string b = &amp;quot;Hello!&amp;quot;; ( b&amp;amp;#91;3&amp;amp;#93; =&amp;gt; &#039;l&#039; 처럼 직접접근도 가능합니다. )&lt;br /&gt;
&lt;br /&gt;
* char c = &#039;\u2023&#039; 같은것도 가능&lt;br /&gt;
* 반대로 char \u2023 = &#039;c&#039; 도 가능합니다. (char 빵 = &#039;빵&#039; 되듯이..)&lt;br /&gt;
&lt;br /&gt;
* uint와 char는 바이트 크기는 같지만, uint는 수를 담기 위한 타입으로 정해져 있고 char는 문자를 담기 위한 타입으로 약속되어있습니다.&lt;br /&gt;
** 이 때문에, char에 사칙연산을 적용하려고 하면 오류가 발생합니다.&lt;br /&gt;
&lt;br /&gt;
* string str = &amp;quot;\tHello World\n!&amp;quot;; Console.WriteLine(str); 이라 하면 콘솔에 &#039;Hello World!&amp;quot;라고 뜨지만&lt;br /&gt;
* string str = @&amp;quot;\tHello World\n!&amp;quot;; 이렇게 하면 Escape Sequence를 따지지 않고 콘솔에 &amp;quot;\tHello World\n!&amp;quot;라고 뜹니다.&lt;br /&gt;
** 즉, 이스케이프 시퀀스로 간주하지 않고 순수한 문자로 취급할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* 예약어를 식별자로 사용할 수 없지만, 식별자로 사용해야 한다면 &#039;@&#039; 문자를 접두어로 사용하여 C# 컴파일러가 예약어가 아닌 식별자로 인식하게 할 수 있습니다.&lt;br /&gt;
** char int = &#039;a&#039;;   // int는 예약어라서 못쓰지만&lt;br /&gt;
** char @int = &#039;a&#039;;  // 이렇게하면 가능합니다.&lt;br /&gt;
&lt;br /&gt;
* 논리형에는 bool이 존재하며, System.Boolean을 줄인 예약어 입니다.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* C#에는 값형식과 참조형식이 존재합니다.&lt;br /&gt;
** 값 형식(Value Type)은 스택(Stack)에 저장되고&lt;br /&gt;
** 참조 형식(Reference Type)은 힙(Heap)에 저장됩니다.&lt;br /&gt;
&lt;br /&gt;
* 윈도우 프로그램은 기본적으로 하나의 스레드를 갖습니다. 이 때, 개별 스레드마다 전용으로 사용할 수 있는 저장소가 메모리에 할당되는데, 그 영역을 스택이라고 합니다.&lt;br /&gt;
* 힙은 프로그램에서 필요에 의해 메모리를 사용하겠다고 요청했을 때 사용할 수 있는 저장소로, 특별히 닷넷에서는 CLR이 직접 프로그램에서 사용될 힙을 관리한다.&lt;br /&gt;
* Heap에 저장된 데이터는 원래 자동으로 해제되지 않습니다. 하지만 C#에는 GC가 있으므로, 자동으로 할당 해제합니다.&lt;br /&gt;
&lt;br /&gt;
* C#의 값형식은 정수형,실수형, char, bool, struct 등이 있습니다.&lt;br /&gt;
* C#의 참조형식은 배열, 클래스, string, object 등이 있으며, 값 형식과는 달리 변수의 타입에 해당하는 값을 별도의 힙 메모리를 할당하여 담고 스택의 변수 값은 그 힙의 데이터 주소를 가리키게 됩니다.&lt;br /&gt;
&lt;br /&gt;
* int b; 이렇게 선언만 해놓고 초기화를 안하면 b에는 0이 들어갑니다. 하지만 C#은 오류로 판단하여 못쓰게 합니다. 따라서 int b = 0; 이런식으로 명시적으로 초기화를 하세요.&lt;br /&gt;
* C#에서는 항상 자료형에 대한 메모리를 할당하면 해당 영역을 0으로 초기화합니다. (bool형은 false)&lt;br /&gt;
&lt;br /&gt;
* 상수는 const int b = 5; 이런식으로 합니다. 즉, 변수 정의시 const 예약어를 붙여줍니다.&lt;br /&gt;
** 상수는 반드시 컴파일 시에 값이 결정되어야 합니다.&lt;br /&gt;
&lt;br /&gt;
* string s = new string(&amp;quot;a&amp;quot;); 하게 되면 stack에는 &#039;s&#039;변수가 할당되고, heap에는 실제 데이터가 할당됩니다.&lt;br /&gt;
&lt;br /&gt;
* C#에서 참조형은 &#039;new&#039;키워드를 사용하여 할당합니다.&lt;br /&gt;
&lt;br /&gt;
* 배열은 동일한 타입의 공간을 지정된 수만큼 힙 메모리에 연속적으로 할당합니다. 배열도 참조 타입이기 때문이다.&lt;br /&gt;
* 한번 정해진 배열의 크기는 고정됩니다. 참조 변수의 특성상 가리키는 대상이 변할 수 있기 때문에 변경된 크기의 배열을 다시 가리키는 것은 가능하나, 처음에 있었던 배열의 크기가 변경되는 것은 아닙니다.&lt;br /&gt;
&lt;br /&gt;
* 배열을 선언하는 경우 기본적으로 모든 값은 타입에 따른 초기화 값을 갖습니다. 즉, 값 형식 배열일 경우 기본값인 0에 준하는 값을 가지며 참조 형식 배열이라면 개별 요소가 null로 초기화가 됩니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 배열&lt;br /&gt;
   int[] arr1 = new int[5] { 0, 1, 2, 3, 4 }; // 배열의 수를 명시적으로 지정했으므로 초기화 시 반드시 그 수만큼 요소를 나열해야 한다.&lt;br /&gt;
   int[] arr2 = new int[] { 0, 1, 2, 3, 4 }; // 컴파일러가 배열의 수를 자동으로 계산한다.&lt;br /&gt;
 &lt;br /&gt;
* 다차원 배열&lt;br /&gt;
   int arr[2][3] (C style)&lt;br /&gt;
   int[][] arr = new int[2][3]; (Java style)&lt;br /&gt;
   int[,] arr = new int[2,3]; (C# sytle)&lt;br /&gt;
 &lt;br /&gt;
   // 이것도 가능하겠죠?&lt;br /&gt;
 int[,,] arr2 = new int[2, 3, 4]&lt;br /&gt;
             {&lt;br /&gt;
                 { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } },&lt;br /&gt;
                 { { 13, 14, 15, 16 }, { 17, 18, 19, 20 }, { 21, 22, 23, 24 } }&lt;br /&gt;
             };&lt;br /&gt;
&lt;br /&gt;
* 가변배열&lt;br /&gt;
   int[][] arr = new int[5][];  // 가변배열이면 반드시 &#039;[][]&#039;로 써야됩니다.&lt;br /&gt;
   arr[0] = new int[4];&lt;br /&gt;
   arr[1] = new int[5];&lt;br /&gt;
&lt;br /&gt;
* 논리연산자 (C랑 동일합니다)&lt;br /&gt;
* 관계연산자 : &amp;lt; &amp;gt; &amp;lt;= &amp;gt;= != ==&lt;br /&gt;
* 비트연산자 : &amp;amp; | ^ !&lt;br /&gt;
&lt;br /&gt;
* 삼항 연산자도 존재합니다.&lt;br /&gt;
** (condition) ? (true): (false)&lt;br /&gt;
&lt;br /&gt;
* switch/case구문&lt;br /&gt;
** break가 강제 입니다. (단, caase 레이블에 아무 내용이 없다면 break를 생략할 수도 있습니다.)&lt;br /&gt;
** case에는 정수 상수, Enum 열거값, String 값이 들어올 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* 전치,후치연산 가능합니다 (++, --)&lt;br /&gt;
&lt;br /&gt;
* int n = 50;&lt;br /&gt;
  int x = 100;&lt;br /&gt;
  if( x &amp;gt; 10 || n++ &amp;gt; 0 ) 이런식으로 하면, 절대 n++은 되지않습니다.&lt;br /&gt;
&lt;br /&gt;
* while, for, do-while, foreach 가능합니다.&lt;br /&gt;
* foreach (타입 변수명 in 표현식 ) : 표현식에 들어올 수 있는 변수는 IEnumerator 인터페이스를 구현해야 합니다. &lt;br /&gt;
&lt;br /&gt;
* break, continue, throw, goto 가능합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 그 외 ===&lt;br /&gt;
* 자기소개, 강사소개 및 각자 C#을 배우고 싶은 이유에 대해서 말했습니다.&lt;br /&gt;
* 다음 주에는 강사님이 훈련을 갑니다 =&amp;gt; 휴강으로 결정&lt;br /&gt;
* 미처 전달하지 못한 내용은 다음을 참고해주세요.&lt;br /&gt;
** [[CS/5월11일/부록]]&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>118.36.59.4</name></author>
	</entry>
</feed>