U E D R , A S I H C RSS

CS/5월11일 (rev. 1.3)

CS/5월11일



1. 개요

  • 시작합니다!

2. 참가자

  • 진행 예정

3. 진행 시간

  • 진행 예정

4. 진행 예정 내용

  • 다소 중요하다고 생각된 내용은 보라색 볼드(굵게) 처리하였습니다.

  • #1. 닷넷 프레임워크 살펴보기
    • 닷넷 응용 프로그램의 기본 구조
    • CLR과 IL/MSIL(CIL)
    • 닷넷 호환 언어
    • CTS와 CLS
    • 메타데이터, 닷넷 응용 프로그램 속의 메타데이터
    • 어셈블리, 모듈
    • CLI와 CTS, CLI와 닷넷 프레임워크
    • 닷넷 프레임워크 구성 요소
    • 기존 윈도우 프로그램과 닷넷 응용 프로그램의 대응 관계
    • 모노(Mono) 프레임워크
    • C#과 닷넷 프레임워크
    • Naming Convention

  • #2. C#의 타입과 문장(Statement), 배열
    • 자료형과 기본 자료형
    • C#에서의 정수 타입, 실수 타입, 문자 타입. 상수
    • C#에서의 변수 초기화
    • C#에서의 Escape Sequence
    • 형변환
    • 예약어와 식별자
    • 값 형식과 참조 형식
    • 배열, 다차원 배열, 가변 배열
    • 논리 연산자, 관계 연산자, 조건 연산자
    • C#의 조건문과 반복문, 점프문

  • 만약 시간이 된다면 #3까지도 예정중입니다.

5. 진행

5.1. 내용 요약


* 자기소개, 강사소개 및 각자 C#을 배우고 싶은 이유에 대해서 말했습니다.
* 다음 주에는 강사님이 훈련을 갑니다 => 휴강으로 결정
* C#을 쓰기위해서는 .NET Framework가 필요합니다.
* .NET Framework는 일종의 Process Virtual Machine(가상머신) 입니다.
* C#프로그램은 C#컴파일러에 의해 중간에 어떤파일(IL)로 바꼈다가 .NET Framework가 대신 실행해줍니다.

* .NET을 깔면 자동으로 CLR(Common Language Runtime)이 설치됩니다. 사실 C#소스를 컴파일한뒤 CLR에 던져서 실행하는 구조입니다.
* 중간에 거쳐가는 파일은 IL(Intermediate Language:중간언어)로작성된 파일입니다.
* 즉, C#컴파일러 : C# Source -> IL 이고, ILASM.exe : IL -> 기계어로 바꿔줍니다.

* 일반적인 exe와는 다르게 .NET exe(닷넷응용프로그램)는 CLR로더가 포함되어 있습니다.(생각해보면 CLR이 없으면 프로그램이 안굴러갑니다.)

* .NET Compliant Language (.NET 호환언어) : 어떤 언어든지 IL코드로만 바꿀 수 있다면 CLR에서 작동하지 않을까? 라는 생각에서 IL코드로 바꿀 수 있는 언어.
* 대표적인 .NET CL의 공식적인 종류로는 C++/CLI, F#, VB.NET C# 등이 있습니다. (Ruby, Python, Lisp, COBOL 들도 비공식적으론 읍읍..)

* IL은 닷넷에서는 CIL이라 부르기도 하고, MS에서는 MSIL이라고 부르기도 합니다.

* CTS(Common Type System, 공용타입시스템)은 .NET호환언어가 지켜야할 규약으로 .NET호환 언어는 CTS를 넘어서서 구현할 수 없으며, 꼭 CTS를 전부다 구현해야 할 필요도 없습니다.
* CLS(Common Language Specification)은 CTS와는 다르게 .NET호환언어가 꼭 구현해야되는 규약입니다.

* C#에서는 unsigned 를 지원하지만, 만약 다른 닷넷호환언어에서 unsigned를 지원하지 않는다면 문제가 생깁니다.(쓸 수가 없습니다)

* META data(메타데이터)는 데이터를 위한 데이터로써, 예를 들면 그림의 속성을 나타내고 있는 데이터들이 메타데이터입니다.
* 그렇다면, 프로그래밍언어에서의 메타데이터는 class, namespace 등등등.. 얘네들이 META data 랍니다. (수정필요..)

* exe(dll)을 만들게 되면 CLR에서는 자기서술적인 데이터(META data)로써 프로그램의 함수, 클래스들의 목록을 기록합니다.
* Reflection 기술을 활용하면 exe(dll)안에 서술된 META데이터를 읽어 다른 exe(dll)의 함수와 클래스를 사용할 수 있습니다.

* CLI(Common Language Infrastructure)는 MS가 ECMA에 제출한 표준형식으로, CTS정의, 중간언어(IL), 바이너리파일들이 해당됩니다.
* 따라서 CLS는 CLI를 구현하고 있으며, CLI를 구현한다면 .NET과 호환됩니다. (ex)Mono는 CLI의 구현체

* 어셈블리(Assembly): .NET에서는 exe(dll)을 어셈블리라고 합니다.
* 모듈(Module): 하나의 어셈블리를 여러개의 모듈(Module)(.netmodule)로 쪼갤 수 있습니다. 단, 어셈블리안에 존재하는 모듈 중 하나는 반드시 다른 모듈들의 위치를 기술(기능은 없고, 단순히 위치를 기술함)하고 있어야 하는데, 이 모듈 어셈블리(assembly)(.exe/.dll)라고도 합니다. 하지만 MS에서도 지원하지 않습니다




5.2. 그 외


6. 덧글

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:43
Processing time 0.0234 sec