E D R , A S I H C RSS

CS



1. 개요

  • CS(CSharp)에 대해 공부하는 스터디입니다. Creep Score 회사 이름 Customer Satisfaction 학교종합정보관리시스템 Communication Satellite
    • 사실 CSS(CSharp Study)로 하고 싶었어요..

3. 준비물

  • 스터디는 윈도우 환경에서 진행할 예정입니다.
  • Visual Studio 2015가 필요합니다.
    • 2013 버전에서도 가능은 합니다만, 추후에 다룰 기능에 대해서 패키지 형식으로 별도로 설치해야하는 번거로움이 존재할 수 있습니다.
  • .NET Framework 4.6.1 버전이 필요합니다.

4. 진행

  • 별 일이 없는한 매주 화요일 저녁 or 수요일 저녁에 진행합니다.
    • '되도록'이면 수요일 정모 끝난 직후에 진행하기로 결정했습니다.
    • 참가 인원 중 한 명이 고정적인 시간을 잡을 수가 없어서 그런 것이니 양해해주세요 Orz...
    • 상황이 여의치 않으면 스터디 시간은 상시로 바뀔 수 있습니다.
  • 대략 1시간에서 2시간 정도 진행할 예정입니다.
    • 진행하다보니 2시간 꽉 채워서 밖에 안되더군요...

5. 목표

  • C# 언어에 대한 기본 문법 이해와 적용
  • C# 1.0에서 최신인 C# 6.0까지의 내용 숙지!
  • BCL 라이브러리의 숙지

6. 참고

7. 진행 내용

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 예약어를 통한 메서드 정의
    • 클래스 간의 형변환
    • 추상 메서드와 추상 클래스

  • #5. 클래스와 객체지향 Part.#3 (6월 1일에 완료)
    • 델리게이트(delegate)의 정의
    • 델리게이트의 특성, C#과 1급 함수
    • System.MulticastDelegate
    • 델리게이트 인스턴스와 산술 연산자
    • 콜백 메서드
    • 인터페이스, 추상 클래스와 인터페이스
    • 인터페이스의 구현
    • 구조체(Struct), 구조체와 클래스
    • 깊은 복사와 얕은 복사, PBV(CBV)와 PBR(CBR)
    • ref와 out 예약어를 통한 PBR

  • #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 예약어

  • #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와 소멸자, 종료 큐

  • #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와 전역 어셈블리

  • #9. BCL Part.1 (7월 5일에 완료)
    • 닷넷 BCL 속의 컬렉션
    • BCL을 통한 시간 처리
    • BCL 속 유용한 문자열 메서드
    • Encoding
    • Regex
    • 직렬화(Serailization)와 역직렬화(Deserialization)
    • Stream과 MemoryStream
    • StreamReader/StreamWriter와 BinaryReader/BinaryWriter
    • BinaryFormatter를 이용한 직렬화
    • XmlSerializer를 이용한 직렬화
    • DataContractJsonSerializer를 이용한 직렬화
    • BigIntegerIntPtr, Tuple

  • #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)

  • #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)

  • #14. C# 6.0으로 올라서기 (7월 13일에 완료)
    • 널 조건 연산자 (Null-conditional operator)
    • 문자열 내삽(String interpolation)
    • 인덱서 Dictionary 초기자
    • nameof 연산자
    • using static 키워드
    • Exception Filtering
    • 자동 구현 속성 초기자
    • 읽기 전용 자동 구현 속성
    • Expression-bodied member

  • #15. BCL Part.3 (7월 17일에 완료)
    • FileStream, FileMode
    • File 클래스와 FileInfo 클래스
    • Directory 클래스와 DirectoryInfo 클래스
    • Path 타입

  • #16. BCL Part.4 (7월 17일에 완료)
    • Thread
    • Thread 상태 제어
    • 전경 스레드와 배경 스레드
    • Thread 동기화 처리 - Monitor를 통한 객체 잠금
    • Thread 동기화 처리 - lock 예약어를 통한 객체 잠금
    • 원자적 연산과 Interlocked 타입
    • ThreadPool
    • Thread 동기화 처리 - EventWaitHandle을 통한 동기화
    • 동기 호출과 비동기 호출

  • #17. C# 5.0으로 올라서기 (7월 17일에 완료)
    • 호출자 정보(Caller Information)
    • async/await 예약어
    • Task 타입 (C# 4.0)
    • Task와 ThreadPoolQueueUserWorkItem (C# 4.0)
    • await와 병렬 처리
    • catch 블록에서의 await (C# 6.0)

  • 종료!

9. 덧글

  • 몇시쯤에 스터디가 진행되나요? - 송준호
    • 확실하진 않지만 저녁 6시에서 7시 사이에 시작하지 않을까요? 사실 이것도 장담은 못합니다만 - 신형철
      • 수요일 6~7시면 그 시간은 정모 시간이에요. 화욜이면 6시 쯤 부터일 것 같고 수욜이면 7시 쯤 부터이지 않을까요 사실 이것도 장담은 못합니다만 - 홍성현
  • 필요한 지식(ex. C언어 등)이 있어야 되나요? - 박인서
    • 아마 C언어는 기본적으로 필요할 듯 싶고, 객체 지향 언어(특히 Java)을 조금이라도 아신다면 괜찮을 것 같습니다. 객체 지향 개념같은 것들은 진행 도중 언급은 하겠지만, 그렇게 비중있게 다루지는 않을 것 같아요. - 신형철
  • 엇! 단군력이 있는 CS 스터디군 - 유재범
  • 안녕하세요 청강생도강생입니다. - 성훈
    • 정식적으로 등록을?! - 신형철
    • 정식인원으로 진화!인연도 없는 시샵을... - 성훈
    • 정식으로! 인사! 드리겠! 습니다! - 박인서
  • 닷넷신이다! 닷넷신이야! - 김정민
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:43
Processing time 0.0665 sec