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