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