More actions
({CREATE}) |
(Repair batch-0001 pages from live compare) |
||
| (3 intermediate revisions by 3 users not shown) | |||
| Line 5: | Line 5: | ||
== 참가자 == | == 참가자 == | ||
* | * [[신형철]], [[홍성현]], [[이승현]], [[박인서]], [[성훈]] | ||
== 진행 시간 == | == 진행 시간 == | ||
* | * 오후 2시 50분 ~ 오후 5시 | ||
== 진행 예정 내용 == | == 진행 예정 내용 == | ||
* 다소 중요하다고 생각된 내용은 | * 다소 중요하다고 생각된 내용은 <font color="#9933ff"><b>보라색 볼드(굵게)</b></font> 처리하였습니다. | ||
* #9. BCL Part.1 | * #9. BCL Part.1 | ||
** | ** <font color="#9933ff"><b>닷넷 BCL 속의 컬렉션</b></font> | ||
** BCL을 통한 시간 처리 | ** BCL을 통한 시간 처리 | ||
** BCL 속 유용한 문자열 메서드 | ** BCL 속 유용한 문자열 메서드 | ||
** Encoding | ** Encoding | ||
** Regex | ** Regex | ||
** | ** <font color="#9933ff"><b>직렬화(Serailization)와 역직렬화(Deserialization)</b></font> | ||
** | ** <font color="#9933ff"><b>Stream과 MemoryStream</b></font> | ||
** | ** <font color="#9933ff"><b>StreamReader/StreamWriter와 BinaryReader/BinaryWriter</b></font> | ||
** BinaryFormatter를 이용한 직렬화 | ** BinaryFormatter를 이용한 직렬화 | ||
** XmlSerializer를 이용한 직렬화 | ** XmlSerializer를 이용한 직렬화 | ||
| Line 28: | Line 28: | ||
* #10. C# 2.0으로 올라서기 | * #10. C# 2.0으로 올라서기 | ||
** | ** <font color="#9933ff"><b>제네릭, 제네릭 메서드와 제네릭 클래스</b></font> | ||
** | ** <font color="#9933ff"><b>제네릭과 박싱/언박싱</b></font> | ||
** | ** <font color="#9933ff"><b>제네릭 형식 매개변수와 where 예약어</b></font> | ||
** BCL의 컬렉션 속 제네릭 | ** BCL의 컬렉션 속 제네릭 | ||
** | ** <font color="#9933ff"><b>?? 연산자</b></font> | ||
** | ** <font color="#9933ff"><b>제네릭과 default 예약어</b></font> | ||
** | ** <font color="#9933ff"><b>열거와 yield return/yield break</b></font> | ||
** | ** <font color="#9933ff"><b>값 형식과 Nullable<T> 구조체</b></font> | ||
** | ** <font color="#9933ff"><b>익명 메서드와 델리게이트</b></font> | ||
** | ** <font color="#9933ff"><b>정적 클래스</b></font> | ||
** 부분 클래스 | ** 부분 클래스 | ||
| Line 43: | Line 43: | ||
=== 내용 요약 === | === 내용 요약 === | ||
==== 9. BCL Part.1 ==== | ==== 9. BCL Part.1 ==== | ||
* 닷넷 BCL 속에는 ArrayList, Hashtable, SortedList, Stack, Queue 등의 컬렉션이 존재한다. | |||
* DateTime 타입과 TimeSpan을 이용하면 C#에서 시간 처리를 할 수 있다. | |||
* 문자열 인코딩에는 Encoding 타입을 이용하는데, 자주 쓰이는 인코딩 타입에 대해서는 이미 정적 속성으로 제공되는 것이 있다. | |||
* Regex 타입에는 정규 표현식을 사용할 수 있다. | |||
* 데이터를 어떤 수단으로 바꾼 후 되돌리는 과정을 직렬화, 역직렬화라고 한다. | |||
* Stream은 System.IO 네임스페이스 아래에 있는 추상 클래스로, 진입한 데이터 흐름에 따라 데이터를 처리한다. | |||
* Stream 개념을 메모리에 적용시킨 것이 MemoryStream 타입이다. | |||
* 기본 값 형식들에 대해서는 BitConverter 타입을 사용하고, 문자열에 대해서는 StreamReader/StreamWriter를 사용한다. | |||
* 2진 데이터로 직렬화 시키는 것을 편리하게 하고 싶을 때 BinaryReader/BinaryWriter를 사용한다. | |||
* 사용자 정의 클래스를 직렬화 시키는 방법에는 BinaryFormatter, XmlSerializer, DataContactJsonSerializer가 있다. | |||
* BigInteger를 통해 ulong을 뛰어넘는 정수 표기가 가능하고, C/C++과의 연동을 위해 IntPtr 타입이 존재한다. | |||
* C# 4.0부터는 Tuple 타입을 사용할 수 있다. | |||
==== 10. C# 2.0으로 올라서기 ==== | ==== 10. C# 2.0으로 올라서기 ==== | ||
* 일반화 프로그래밍을 위해 C# 2.0부터 제네릭이 지원된다. | |||
* 제네릭을 사용하면 기존 박싱/언박싱 문제를 일으켰던 타입들을 개선할 수 있다. | |||
* where 예약어를 통해 제네릭 형식 매개변수의 타입을 제한시킬 수 있다. | |||
* default 예약어를 통해 각 타입의 기본 타입을 유추해 낼 수 있다. | |||
* ?? 연산자를 통해 Null에 대한 데이터 처리를 간소화시킬 수 있다. | |||
* yield return/yield break를 통해 열거자를 보다 쉽게 구현할 수 있다. | |||
* Nullable<T> 타입을 통해 값 형식에도 null 값을 대입하는 것을 허용할 수 있다. 이 때, Nullable<T>는 참조 타입이 아니다. | |||
* 클래스 정의 시 static 키워드를 통해 정적 클래스로 선언할 수 있다. 정적 클래스 내에는 정적 필드/속성/메서드 외에는 허용이 되지 않는다. | |||
* 익명 메서드를 통해 단일 사용 메서드를 조금 더 편리하게 선언할 수 있다. delegate 키워드를 이용한다. | |||
* 클래스 정의 시 partial 키워드를 명시함으로써 부분 클래스로 선언할 수 있다. | |||
=== 그 외 === | === 그 외 === | ||
== 덧글 == | == 덧글 == | ||
-------------------------------- | -------------------------------- | ||
[[CS]] | [[CS]] | ||
Latest revision as of 23:56, 26 March 2026
개요
- 유용한 방향으로!
참가자
진행 시간
- 오후 2시 50분 ~ 오후 5시
진행 예정 내용
- 다소 중요하다고 생각된 내용은 보라색 볼드(굵게) 처리하였습니다.
- #9. BCL Part.1
- 닷넷 BCL 속의 컬렉션
- BCL을 통한 시간 처리
- BCL 속 유용한 문자열 메서드
- Encoding
- Regex
- 직렬화(Serailization)와 역직렬화(Deserialization)
- Stream과 MemoryStream
- StreamReader/StreamWriter와 BinaryReader/BinaryWriter
- BinaryFormatter를 이용한 직렬화
- XmlSerializer를 이용한 직렬화
- DataContractJsonSerializer를 이용한 직렬화
- BigInteger와 IntPtr, Tuple
- #10. C# 2.0으로 올라서기
- 제네릭, 제네릭 메서드와 제네릭 클래스
- 제네릭과 박싱/언박싱
- 제네릭 형식 매개변수와 where 예약어
- BCL의 컬렉션 속 제네릭
- ?? 연산자
- 제네릭과 default 예약어
- 열거와 yield return/yield break
- 값 형식과 Nullable<T> 구조체
- 익명 메서드와 델리게이트
- 정적 클래스
- 부분 클래스
진행
내용 요약
9. BCL Part.1
- 닷넷 BCL 속에는 ArrayList, Hashtable, SortedList, Stack, Queue 등의 컬렉션이 존재한다.
- DateTime 타입과 TimeSpan을 이용하면 C#에서 시간 처리를 할 수 있다.
- 문자열 인코딩에는 Encoding 타입을 이용하는데, 자주 쓰이는 인코딩 타입에 대해서는 이미 정적 속성으로 제공되는 것이 있다.
- Regex 타입에는 정규 표현식을 사용할 수 있다.
- 데이터를 어떤 수단으로 바꾼 후 되돌리는 과정을 직렬화, 역직렬화라고 한다.
- Stream은 System.IO 네임스페이스 아래에 있는 추상 클래스로, 진입한 데이터 흐름에 따라 데이터를 처리한다.
- Stream 개념을 메모리에 적용시킨 것이 MemoryStream 타입이다.
- 기본 값 형식들에 대해서는 BitConverter 타입을 사용하고, 문자열에 대해서는 StreamReader/StreamWriter를 사용한다.
- 2진 데이터로 직렬화 시키는 것을 편리하게 하고 싶을 때 BinaryReader/BinaryWriter를 사용한다.
- 사용자 정의 클래스를 직렬화 시키는 방법에는 BinaryFormatter, XmlSerializer, DataContactJsonSerializer가 있다.
- BigInteger를 통해 ulong을 뛰어넘는 정수 표기가 가능하고, C/C++과의 연동을 위해 IntPtr 타입이 존재한다.
- C# 4.0부터는 Tuple 타입을 사용할 수 있다.
10. C# 2.0으로 올라서기
- 일반화 프로그래밍을 위해 C# 2.0부터 제네릭이 지원된다.
- 제네릭을 사용하면 기존 박싱/언박싱 문제를 일으켰던 타입들을 개선할 수 있다.
- where 예약어를 통해 제네릭 형식 매개변수의 타입을 제한시킬 수 있다.
- default 예약어를 통해 각 타입의 기본 타입을 유추해 낼 수 있다.
- ?? 연산자를 통해 Null에 대한 데이터 처리를 간소화시킬 수 있다.
- yield return/yield break를 통해 열거자를 보다 쉽게 구현할 수 있다.
- Nullable<T> 타입을 통해 값 형식에도 null 값을 대입하는 것을 허용할 수 있다. 이 때, Nullable<T>는 참조 타입이 아니다.
- 클래스 정의 시 static 키워드를 통해 정적 클래스로 선언할 수 있다. 정적 클래스 내에는 정적 필드/속성/메서드 외에는 허용이 되지 않는다.
- 익명 메서드를 통해 단일 사용 메서드를 조금 더 편리하게 선언할 수 있다. delegate 키워드를 이용한다.
- 클래스 정의 시 partial 키워드를 명시함으로써 부분 클래스로 선언할 수 있다.