<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=165.194.34.112</id>
	<title>ZeroWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=165.194.34.112"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php/Special:Contributions/165.194.34.112"/>
	<updated>2026-05-15T03:25:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC&amp;diff=29789</id>
		<title>CS/5월11일</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC&amp;diff=29789"/>
		<updated>2016-05-11T12:07:06Z</updated>

		<summary type="html">&lt;p&gt;165.194.34.112: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* 시작합니다!&lt;br /&gt;
&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* 진행 예정&lt;br /&gt;
&lt;br /&gt;
== 진행 시간 ==&lt;br /&gt;
* 진행 예정&lt;br /&gt;
&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* 다소 중요하다고 생각된 내용은 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;보라색 볼드(굵게)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93; 처리하였습니다.&lt;br /&gt;
&lt;br /&gt;
* #1. 닷넷 프레임워크 살펴보기&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;닷넷 응용 프로그램의 기본 구조&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;CLR과 IL/MSIL(CIL)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 닷넷 호환 언어&lt;br /&gt;
** CTS와 CLS&lt;br /&gt;
** 메타데이터, 닷넷 응용 프로그램 속의 메타데이터&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리, 모듈&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** CLI와 CTS, CLI와 닷넷 프레임워크&lt;br /&gt;
** 닷넷 프레임워크 구성 요소&lt;br /&gt;
** 기존 윈도우 프로그램과 닷넷 응용 프로그램의 대응 관계&lt;br /&gt;
** 모노(Mono) 프레임워크&lt;br /&gt;
** C#과 닷넷 프레임워크&lt;br /&gt;
** Naming Convention&lt;br /&gt;
&lt;br /&gt;
* #2. C#의 타입과 문장(Statement), 배열&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자료형과 기본 자료형&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 정수 타입, 실수 타입, 문자 타입. 상수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** C#에서의 변수 초기화&lt;br /&gt;
** C#에서의 Escape Sequence&lt;br /&gt;
** 형변환&lt;br /&gt;
** 예약어와 식별자&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;값 형식과 참조 형식&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;배열, 다차원 배열, 가변 배열&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;논리 연산자, 관계 연산자, 조건 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#의 조건문과 반복문, 점프문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* 만약 시간이 된다면 #3까지도 예정중입니다.&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
=== 내용 요약 ===&lt;br /&gt;
&lt;br /&gt;
* 자기소개, 강사소개 및 각자 C#을 배우고 싶은 이유에 대해서 말했습니다.&lt;br /&gt;
* 다음 주에는 강사님이 훈련을 갑니다 =&amp;gt; 휴강으로 결정&lt;br /&gt;
* C#을 쓰기위해서는 .NET Framework가 필요합니다.&lt;br /&gt;
* .NET Framework는 일종의 Process Virtual Machine(가상머신) 입니다.&lt;br /&gt;
* C#프로그램은 C#컴파일러에 의해 중간에 어떤파일(IL)로 바꼈다가 .NET Framework가 대신 실행해줍니다.&lt;br /&gt;
&lt;br /&gt;
* .NET을 깔면 자동으로 CLR(Common Language Runtime)이 설치됩니다. 사실 C#소스를 컴파일한뒤 CLR에 던져서 실행하는 구조입니다.&lt;br /&gt;
* 중간에 거쳐가는 파일은 IL(Intermediate Language:중간언어)로 작성된 파일입니다.&lt;br /&gt;
* 즉, C#컴파일러 : C# Source -&amp;gt; IL 이고, ILASM.exe : IL -&amp;gt; 기계어로 바꿔줍니다.&lt;br /&gt;
&lt;br /&gt;
* 일반적인 exe와는 다르게 .NET exe(닷넷응용프로그램)는 CLR로더가 포함되어 있습니다.(생각해보면 CLR이 없으면 프로그램이 안굴러갑니다.)&lt;br /&gt;
&lt;br /&gt;
* .NET Compliant Language (.NET 호환언어) : 어떤 언어든지 IL코드로만 바꿀 수 있다면 CLR에서 작동하지 않을까? 라는 생각에서 IL코드로 바꿀 수 있는 언어.&lt;br /&gt;
* 대표적인 .NET CL의 공식적인 종류로는 C++/CLI, F#, VB.NET C# 등이 있습니다. (Ruby, Python, Lisp, COBOL 들도 비공식적으론 읍읍..)&lt;br /&gt;
&lt;br /&gt;
* IL은 닷넷에서는 CIL이라 부르기도 하고, MS에서는 MSIL이라고 부르기도 합니다.&lt;br /&gt;
&lt;br /&gt;
* CTS(Common Type System, 공용타입시스템)은 .NET호환언어가 지켜야할 규약으로 .NET호환 언어는 CTS를 넘어서서 구현할 수 없으며, 꼭 CTS를 전부다 구현해야 할 필요도 없습니다.&lt;br /&gt;
* CLS(Common Language Specification)은 CTS와는 다르게 .NET호환언어가 꼭 구현해야되는 규약입니다.&lt;br /&gt;
&lt;br /&gt;
* C#에서는 unsigned 를 지원하지만, 만약 다른 닷넷호환언어에서 unsigned를 지원하지 않는다면 문제가 생깁니다.(쓸 수가 없습니다)&lt;br /&gt;
&lt;br /&gt;
* META data(메타데이터)는 데이터를 위한 데이터로써, 예를 들면 그림의 속성을 나타내고 있는 데이터들이 메타데이터입니다.&lt;br /&gt;
* 그렇다면, 프로그래밍언어에서의 메타데이터는 class, namespace 등등등.. 얘네들이 META data 랍니다. (수정필요..)&lt;br /&gt;
&lt;br /&gt;
* exe(dll)을 만들게 되면 CLR에서는 자기서술적인 데이터(META data)로써 프로그램의 함수, 클래스들의 목록을 기록합니다.&lt;br /&gt;
* Reflection 기술을 활용하면 exe(dll)안에 서술된 META데이터를 읽어 다른 exe(dll)의 함수와 클래스를 사용할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* CLI(Common Language Infrastructure)는 MS가 ECMA에 제출한 표준형식으로, CTS정의, 중간언어(IL), 바이너리파일들이 해당됩니다.&lt;br /&gt;
* 따라서 CLS는 CLI를 구현하고 있으며, CLI를 구현한다면 .NET과 호환됩니다. (ex)Mono는 CLI의 구현체&lt;br /&gt;
&lt;br /&gt;
* 어셈블리(Assembly): .NET에서는 exe(dll)을 어셈블리라고 합니다.&lt;br /&gt;
* 모듈(Module): 하나의 어셈블리를 여러개의 모듈(Module)(.netmodule)로 쪼갤 수 있습니다. 단, 어셈블리안에 존재하는 모듈 중 하나는 반드시 다른 모듈들의 위치를 기술(기능은 없고, 단순히 위치를 기술함)하고 있어야 하는데, 이 모듈을 어셈블리(assembly)(.exe/.dll)라고도 합니다. ~~하지만 MS에서도 지원하지 않습니다(개념적인 내용)~~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CLR(Common Language Runtime)에는 JIT(Just In Time)컴파일러와 GC(Garbage Collector)가 들어가있습니다.&lt;br /&gt;
* JIT는 IL을 한줄한줄 읽어서 실행시켜주는 컴파일러입니다(?)&lt;br /&gt;
&lt;br /&gt;
* .NET호환언어를 Managed(관리)언어라고도 합니다.&lt;br /&gt;
&lt;br /&gt;
* 기존 프로그램에 CLR loader를 넣어주면 .NET호환언어를 구동시킬 수 있는 프로그램이 됩니다.&lt;br /&gt;
* IE(Internet Explorer)안에는 CLR loader가 들어가 있어서, .NET호환언어가 있으면 실행시킬 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* MS에서는 CLR, BCL(Base Class Library, 표준라이브러리), GAC(Global Assembly Cache)를 묶어서 &#039;.NET Framework&#039;라고 배포합니다.&lt;br /&gt;
* GAC에 대한 설명은 추가해주세요 ㅠㅠ&lt;br /&gt;
&lt;br /&gt;
* C#은 .NET Framework의 발전에 빠르게 대응해줍니다.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
* .NET Framework를 설치하면 기본적으로 CSC(C# Compiler)가 설치됩니다.&lt;br /&gt;
* 요즈음의 MS는 CSC를 따로 배포하므로 C#6.0을 컴파일하려면 설치해서 쓰세요. ~~하지만 VS를 쓴다면?~~&lt;br /&gt;
&lt;br /&gt;
-- C#의 타입 --&lt;br /&gt;
&lt;br /&gt;
* 숫자형&lt;br /&gt;
 sbyte, byte, short, ushort, int, uint, long, ulong &lt;br /&gt;
 (사실 얘네들은 System.SByte, System.Byte, System.Int16 등을 줄인 예약어입니다.)&lt;br /&gt;
&lt;br /&gt;
 int a = 10000000000; 이런거하면 Compile Error 납니다.&lt;br /&gt;
 (C#은 Value type과 Reference type이 나눠져있습니다.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 실수형&lt;br /&gt;
 float, double, decimal(16바이트 실수)&lt;br /&gt;
 (얘네들도 마찬가지로 System.Float, System.Double, System.Decimal 등을 줄인 예약어입니다.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 문자형&lt;br /&gt;
 char(4바이트), string&lt;br /&gt;
 (예네들도 System.Char, System.String을 줄인 예약어입니다.)&lt;br /&gt;
&lt;br /&gt;
  char a = &#039;빵&#039;; ( sizeof(a) = 4, 유니코드이기 때문에 )&lt;br /&gt;
  string b = &amp;quot;Hello!&amp;quot;; ( b&amp;amp;#91;3&amp;amp;#93; =&amp;gt; &#039;l&#039; 처럼 직접접근도 가능합니다. )&lt;br /&gt;
&lt;br /&gt;
* char c = &#039;\u2023&#039; 같은것도 가능&lt;br /&gt;
  반대로 char \u2023 = &#039;c&#039; 도 가능합니다. (char 빵 = &#039;빵&#039; 되듯이..)&lt;br /&gt;
&lt;br /&gt;
* char int = &#039;a&#039;;   // int는 예약어라서 못쓰지만&lt;br /&gt;
  char @int = &#039;a&#039;;  // 이렇게하면 가능합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* string str = &amp;quot;\tHello World\n!&amp;quot;; Console.WriteLine(str);&lt;br /&gt;
  이라 하면 콘솔에 &#039;Hello World!&amp;quot;라고 뜨지만&lt;br /&gt;
&lt;br /&gt;
  string str = @&amp;quot;\tHello World\n!&amp;quot;; 이렇게 하면 Escape Sequence를 따지지 않고 콘솔에 &amp;quot;\tHello World\n!&amp;quot;라고 뜹니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 논리형&lt;br /&gt;
  bool&lt;br /&gt;
 (System.Boolean을 줄인 예약어 입니다.)&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* C#에는 값형식과 참조형식이 존재합니다.&lt;br /&gt;
  값형식(Value Type)은 스택(Stack)에 저장되고&lt;br /&gt;
  참조형식(Reference Type)은 힙(Heap)에 저장됩니다.&lt;br /&gt;
&lt;br /&gt;
* Heap에 저장된 데이터는 원래 자동으로 해제되지 않습니다. 하지만 C#에는 GC가 있으므로, 자동으로 할당해제합니다.&lt;br /&gt;
&lt;br /&gt;
* C#의 값형식은 정수형,실수형, char, bool, struct 등이 있습니다.&lt;br /&gt;
* C#의 참조형식은 배열, 클래스, string, object 등이 있습니다.&lt;br /&gt;
&lt;br /&gt;
* int b; 이렇게 선언만 해놓고 초기화를 안하면 b에는 0이 들어갑니다. 하지만 C#은 오류로 판단하여 못쓰게 합니다.&lt;br /&gt;
  따라서 int b = 0; 이런식으로 명시적으로 초기화를 하세요&lt;br /&gt;
&lt;br /&gt;
* 상수는 const int b = 5; 이런식으로 합니다.&lt;br /&gt;
* string s = new string(&amp;quot;a&amp;quot;); 하게 되면 stack에는 &#039;s&#039;변수가 할당되고, heap에는 실제 데이터가 할당됩니다.&lt;br /&gt;
&lt;br /&gt;
* C#에서 참조형은 &#039;new&#039;키워드를 사용하여 할당합니다.&lt;br /&gt;
* int arr&amp;amp;#91;5&amp;amp;#93;={0,1,2,3,4,5}; int arr2[] = new int&amp;amp;#91;3&amp;amp;#93;; 이런식으로 배열을 할당합니다. (C#에서 배열은 참조형)&lt;br /&gt;
 &lt;br /&gt;
* 정적배열&lt;br /&gt;
  int arr&amp;amp;#91;2&amp;amp;#93;&amp;amp;#91;3&amp;amp;#93; (C style)&lt;br /&gt;
  int[][] arr = new int&amp;amp;#91;2&amp;amp;#93;&amp;amp;#91;3&amp;amp;#93;; (Java style)&lt;br /&gt;
  int[[,]] arr = new int[[2,3]]; (C# sytle)&lt;br /&gt;
&lt;br /&gt;
* 가변배열&lt;br /&gt;
  int[][] arr = new int&amp;amp;#91;5&amp;amp;#93;[];  //가변배열이면 반드시 &#039;[][]&#039;로 써야됩니다. 이외에는 &#039;[[2,3]]&#039;식으로&lt;br /&gt;
  arr&amp;amp;#91;0&amp;amp;#93; = new int&amp;amp;#91;4&amp;amp;#93;;&lt;br /&gt;
  arr&amp;amp;#91;1&amp;amp;#93; = new int&amp;amp;#91;5&amp;amp;#93;;&lt;br /&gt;
&lt;br /&gt;
* 논리연산자(C랑 동일합니다)&lt;br /&gt;
 관계연산자 : &amp;lt; &amp;gt; &amp;lt;= &amp;gt;= != ==&lt;br /&gt;
 비트연산자 : &amp;amp; | ^ !&lt;br /&gt;
&lt;br /&gt;
* 삼항연산자&lt;br /&gt;
 int a = (condition)? (true): (false)&lt;br /&gt;
&lt;br /&gt;
* switch/case구문&lt;br /&gt;
 break가 강제입니다. (내용이 없다면 쓸 수도 있습니다.)&lt;br /&gt;
 case에 들어갈 수 있는 것은..? (수정바람)&lt;br /&gt;
&lt;br /&gt;
* 전치,후치연산 가능합니다 (++, --)&lt;br /&gt;
&lt;br /&gt;
* int n = 50;&lt;br /&gt;
  int x = 100;&lt;br /&gt;
  if( x &amp;gt; 10 || n++ &amp;gt; 0 ) 이런식으로 하면, 절대 n++은 되지않습니다.&lt;br /&gt;
&lt;br /&gt;
* while, for, do-while, foreach 가능합니다.&lt;br /&gt;
* foreach( int a in _____ ) : ______에 들어올 수 있는 얘는 IEnummerable (?)을 구현해야 합니다. &lt;br /&gt;
&lt;br /&gt;
* break, continue, throw, goto 가능합니다.&lt;br /&gt;
&lt;br /&gt;
* C#의 naming convention은 CamelCase와 PascalCase와 SnakeCase와 Screaming Snake Case 등이있는데..&lt;br /&gt;
 CamelCase  : intValue&lt;br /&gt;
 PascalCase : IntValue&lt;br /&gt;
 SnakeCase  : int_value  (C#에서는 지양)&lt;br /&gt;
 S.S.C      : INT_VALUE  (C#에서는 지양)&lt;br /&gt;
 &lt;br /&gt;
 C#에서 변수는 Camel 그외(함수, 클래스, 메소드)에는 Pascal&lt;br /&gt;
=== 그 외 ===&lt;br /&gt;
&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>165.194.34.112</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC&amp;diff=29788</id>
		<title>CS/5월11일</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC&amp;diff=29788"/>
		<updated>2016-05-11T11:09:12Z</updated>

		<summary type="html">&lt;p&gt;165.194.34.112: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* 시작합니다!&lt;br /&gt;
&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* 진행 예정&lt;br /&gt;
&lt;br /&gt;
== 진행 시간 ==&lt;br /&gt;
* 진행 예정&lt;br /&gt;
&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* 다소 중요하다고 생각된 내용은 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;보라색 볼드(굵게)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93; 처리하였습니다.&lt;br /&gt;
&lt;br /&gt;
* #1. 닷넷 프레임워크 살펴보기&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;닷넷 응용 프로그램의 기본 구조&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;CLR과 IL/MSIL(CIL)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 닷넷 호환 언어&lt;br /&gt;
** CTS와 CLS&lt;br /&gt;
** 메타데이터, 닷넷 응용 프로그램 속의 메타데이터&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리, 모듈&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** CLI와 CTS, CLI와 닷넷 프레임워크&lt;br /&gt;
** 닷넷 프레임워크 구성 요소&lt;br /&gt;
** 기존 윈도우 프로그램과 닷넷 응용 프로그램의 대응 관계&lt;br /&gt;
** 모노(Mono) 프레임워크&lt;br /&gt;
** C#과 닷넷 프레임워크&lt;br /&gt;
** Naming Convention&lt;br /&gt;
&lt;br /&gt;
* #2. C#의 타입과 문장(Statement), 배열&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자료형과 기본 자료형&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 정수 타입, 실수 타입, 문자 타입. 상수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** C#에서의 변수 초기화&lt;br /&gt;
** C#에서의 Escape Sequence&lt;br /&gt;
** 형변환&lt;br /&gt;
** 예약어와 식별자&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;값 형식과 참조 형식&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;배열, 다차원 배열, 가변 배열&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;논리 연산자, 관계 연산자, 조건 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#의 조건문과 반복문, 점프문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* 만약 시간이 된다면 #3까지도 예정중입니다.&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
=== 내용 요약 ===&lt;br /&gt;
&lt;br /&gt;
* 자기소개, 강사소개 및 각자 C#을 배우고 싶은 이유에 대해서 말했습니다.&lt;br /&gt;
* 다음 주에는 강사님이 훈련을 갑니다 =&amp;gt; 휴강으로 결정&lt;br /&gt;
* C#을 쓰기위해서는 .NET Framework가 필요합니다.&lt;br /&gt;
* .NET Framework는 일종의 Process Virtual Machine(가상머신) 입니다.&lt;br /&gt;
* C#프로그램은 C#컴파일러에 의해 중간에 어떤파일(IL)로 바꼈다가 .NET Framework가 대신 실행해줍니다.&lt;br /&gt;
&lt;br /&gt;
* .NET을 깔면 자동으로 CLR(Common Language Runtime)이 설치됩니다. 사실 C#소스를 컴파일한뒤 CLR에 던져서 실행하는 구조입니다.&lt;br /&gt;
* 중간에 거쳐가는 파일은 IL(Intermediate Language:중간언어)로 작성된 파일입니다.&lt;br /&gt;
* 즉, C#컴파일러 : C# Source -&amp;gt; IL 이고, ILASM.exe : IL -&amp;gt; 기계어로 바꿔줍니다.&lt;br /&gt;
&lt;br /&gt;
* 일반적인 exe와는 다르게 .NET exe(닷넷응용프로그램)는 CLR로더가 포함되어 있습니다.(생각해보면 CLR이 없으면 프로그램이 안굴러갑니다.)&lt;br /&gt;
&lt;br /&gt;
* .NET Compliant Language (.NET 호환언어) : 어떤 언어든지 IL코드로만 바꿀 수 있다면 CLR에서 작동하지 않을까? 라는 생각에서 IL코드로 바꿀 수 있는 언어.&lt;br /&gt;
* 대표적인 .NET CL의 공식적인 종류로는 C++/CLI, F#, VB.NET C# 등이 있습니다. (Ruby, Python, Lisp, COBOL 들도 비공식적으론 읍읍..)&lt;br /&gt;
&lt;br /&gt;
* IL은 닷넷에서는 CIL이라 부르기도 하고, MS에서는 MSIL이라고 부르기도 합니다.&lt;br /&gt;
&lt;br /&gt;
* CTS(Common Type System, 공용타입시스템)은 .NET호환언어가 지켜야할 규약으로 .NET호환 언어는 CTS를 넘어서서 구현할 수 없으며, 꼭 CTS를 전부다 구현해야 할 필요도 없습니다.&lt;br /&gt;
* CLS(Common Language Specification)은 CTS와는 다르게 .NET호환언어가 꼭 구현해야되는 규약입니다.&lt;br /&gt;
&lt;br /&gt;
* C#에서는 unsigned 를 지원하지만, 만약 다른 닷넷호환언어에서 unsigned를 지원하지 않는다면 문제가 생깁니다.(쓸 수가 없습니다)&lt;br /&gt;
&lt;br /&gt;
* META data(메타데이터)는 데이터를 위한 데이터로써, 예를 들면 그림의 속성을 나타내고 있는 데이터들이 메타데이터입니다.&lt;br /&gt;
* 그렇다면, 프로그래밍언어에서의 메타데이터는 class, namespace 등등등.. 얘네들이 META data 랍니다. (수정필요..)&lt;br /&gt;
&lt;br /&gt;
* exe(dll)을 만들게 되면 CLR에서는 자기서술적인 데이터(META data)로써 프로그램의 함수, 클래스들의 목록을 기록합니다.&lt;br /&gt;
* Reflection 기술을 활용하면 exe(dll)안에 서술된 META데이터를 읽어 다른 exe(dll)의 함수와 클래스를 사용할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* CLI(Common Language Infrastructure)는 MS가 ECMA에 제출한 표준형식으로, CTS정의, 중간언어(IL), 바이너리파일들이 해당됩니다.&lt;br /&gt;
* 따라서 CLS는 CLI를 구현하고 있으며, CLI를 구현한다면 .NET과 호환됩니다. (ex)Mono는 CLI의 구현체&lt;br /&gt;
&lt;br /&gt;
* 어셈블리(Assembly): .NET에서는 exe(dll)을 어셈블리라고 합니다.&lt;br /&gt;
* 모듈(Module): 하나의 어셈블리를 여러개의 모듈(Module)(.netmodule)로 쪼갤 수 있습니다. 단, 어셈블리안에 존재하는 모듈 중 하나는 반드시 다른 모듈들의 위치를 기술(기능은 없고, 단순히 위치를 기술함)하고 있어야 하는데, 이 모듈을 어셈블리(assembly)(.exe/.dll)라고도 합니다. ~~하지만 MS에서도 지원하지 않습니다(개념적인 내용)~~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CLR(Common Language Runtime)에는 JIT(Just In Time)컴파일러와 GC(Garbage Collector)가 들어가있습니다.&lt;br /&gt;
* JIT는 IL을 한줄한줄 읽어서 실행시켜주는 컴파일러입니다(?)&lt;br /&gt;
&lt;br /&gt;
* .NET호환언어를 Managed(관리)언어라고도 합니다.&lt;br /&gt;
&lt;br /&gt;
* 기존 프로그램에 CLR loader를 넣어주면 .NET호환언어를 구동시킬 수 있는 프로그램이 됩니다.&lt;br /&gt;
* IE(Internet Explorer)안에는 CLR loader가 들어가 있어서, .NET호환언어가 있으면 실행시킬 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* MS에서는 CLR, BCL(Base Class Library, 표준라이브러리), GAC(Global Assembly Cache)를 묶어서 &#039;.NET Framework&#039;라고 배포합니다.&lt;br /&gt;
* GAC에 대한 설명은 추가해주세요 ㅠㅠ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 그 외 ===&lt;br /&gt;
&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>165.194.34.112</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC&amp;diff=29787</id>
		<title>CS/5월11일</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CS/5%EC%9B%9411%EC%9D%BC&amp;diff=29787"/>
		<updated>2016-05-11T10:57:22Z</updated>

		<summary type="html">&lt;p&gt;165.194.34.112: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* 시작합니다!&lt;br /&gt;
&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* 진행 예정&lt;br /&gt;
&lt;br /&gt;
== 진행 시간 ==&lt;br /&gt;
* 진행 예정&lt;br /&gt;
&lt;br /&gt;
== 진행 예정 내용 ==&lt;br /&gt;
* 다소 중요하다고 생각된 내용은 &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;보라색 볼드(굵게)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93; 처리하였습니다.&lt;br /&gt;
&lt;br /&gt;
* #1. 닷넷 프레임워크 살펴보기&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;닷넷 응용 프로그램의 기본 구조&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;CLR과 IL/MSIL(CIL)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** 닷넷 호환 언어&lt;br /&gt;
** CTS와 CLS&lt;br /&gt;
** 메타데이터, 닷넷 응용 프로그램 속의 메타데이터&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;어셈블리, 모듈&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** CLI와 CTS, CLI와 닷넷 프레임워크&lt;br /&gt;
** 닷넷 프레임워크 구성 요소&lt;br /&gt;
** 기존 윈도우 프로그램과 닷넷 응용 프로그램의 대응 관계&lt;br /&gt;
** 모노(Mono) 프레임워크&lt;br /&gt;
** C#과 닷넷 프레임워크&lt;br /&gt;
** Naming Convention&lt;br /&gt;
&lt;br /&gt;
* #2. C#의 타입과 문장(Statement), 배열&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;자료형과 기본 자료형&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#에서의 정수 타입, 실수 타입, 문자 타입. 상수&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** C#에서의 변수 초기화&lt;br /&gt;
** C#에서의 Escape Sequence&lt;br /&gt;
** 형변환&lt;br /&gt;
** 예약어와 식별자&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;값 형식과 참조 형식&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;배열, 다차원 배열, 가변 배열&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;논리 연산자, 관계 연산자, 조건 연산자&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
** &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;font color=&amp;quot;#9933ff&amp;quot;&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;C#의 조건문과 반복문, 점프문&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
* 만약 시간이 된다면 #3까지도 예정중입니다.&lt;br /&gt;
&lt;br /&gt;
== 진행 ==&lt;br /&gt;
=== 내용 요약 ===&lt;br /&gt;
&lt;br /&gt;
* 자기소개, 강사소개 및 각자 C#을 배우고 싶은 이유에 대해서 말했습니다.&lt;br /&gt;
* 다음 주에는 강사님이 훈련을 갑니다 =&amp;gt; 휴강으로 결정&lt;br /&gt;
* C#을 쓰기위해서는 .NET Framework가 필요합니다.&lt;br /&gt;
* .NET Framework는 일종의 Process Virtual Machine(가상머신) 입니다.&lt;br /&gt;
* C#프로그램은 C#컴파일러에 의해 중간에 어떤파일(IL)로 바꼈다가 .NET Framework가 대신 실행해줍니다.&lt;br /&gt;
&lt;br /&gt;
* .NET을 깔면 자동으로 CLR(Common Language Runtime)이 설치됩니다. 사실 C#소스를 컴파일한뒤 CLR에 던져서 실행하는 구조입니다.&lt;br /&gt;
* 중간에 거쳐가는 파일은 IL(Intermediate Language:중간언어)로 작성된 파일입니다.&lt;br /&gt;
* 즉, C#컴파일러 : C# Source -&amp;gt; IL 이고, ILASM.exe : IL -&amp;gt; 기계어로 바꿔줍니다.&lt;br /&gt;
&lt;br /&gt;
* 일반적인 exe와는 다르게 .NET exe(닷넷응용프로그램)는 CLR로더가 포함되어 있습니다.(생각해보면 CLR이 없으면 프로그램이 안굴러갑니다.)&lt;br /&gt;
&lt;br /&gt;
* .NET Compliant Language (.NET 호환언어) : 어떤 언어든지 IL코드로만 바꿀 수 있다면 CLR에서 작동하지 않을까? 라는 생각에서 IL코드로 바꿀 수 있는 언어.&lt;br /&gt;
* 대표적인 .NET CL의 공식적인 종류로는 C++/CLI, F#, VB.NET C# 등이 있습니다. (Ruby, Python, Lisp, COBOL 들도 비공식적으론 읍읍..)&lt;br /&gt;
&lt;br /&gt;
* IL은 닷넷에서는 CIL이라 부르기도 하고, MS에서는 MSIL이라고 부르기도 합니다.&lt;br /&gt;
&lt;br /&gt;
* CTS(Common Type System, 공용타입시스템)은 .NET호환언어가 지켜야할 규약으로 .NET호환 언어는 CTS를 넘어서서 구현할 수 없으며, 꼭 CTS를 전부다 구현해야 할 필요도 없습니다.&lt;br /&gt;
* CLS(Common Language Specification)은 CTS와는 다르게 .NET호환언어가 꼭 구현해야되는 규약입니다.&lt;br /&gt;
&lt;br /&gt;
* C#에서는 unsigned 를 지원하지만, 만약 다른 닷넷호환언어에서 unsigned를 지원하지 않는다면 문제가 생깁니다.(쓸 수가 없습니다)&lt;br /&gt;
&lt;br /&gt;
* META data(메타데이터)는 데이터를 위한 데이터로써, 예를 들면 그림의 속성을 나타내고 있는 데이터들이 메타데이터입니다.&lt;br /&gt;
* 그렇다면, 프로그래밍언어에서의 메타데이터는 class, namespace 등등등.. 얘네들이 META data 랍니다. (수정필요..)&lt;br /&gt;
&lt;br /&gt;
* exe(dll)을 만들게 되면 CLR에서는 자기서술적인 데이터(META data)로써 프로그램의 함수, 클래스들의 목록을 기록합니다.&lt;br /&gt;
* Reflection 기술을 활용하면 exe(dll)안에 서술된 META데이터를 읽어 다른 exe(dll)의 함수와 클래스를 사용할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* CLI(Common Language Infrastructure)는 MS가 ECMA에 제출한 표준형식으로, CTS정의, 중간언어(IL), 바이너리파일들이 해당됩니다.&lt;br /&gt;
* 따라서 CLS는 CLI를 구현하고 있으며, CLI를 구현한다면 .NET과 호환됩니다. (ex)Mono는 CLI의 구현체&lt;br /&gt;
&lt;br /&gt;
* 어셈블리(Assembly): .NET에서는 exe(dll)을 어셈블리라고 합니다.&lt;br /&gt;
* 모듈(Module): 하나의 어셈블리를 여러개의 모듈(Module)(.netmodule)로 쪼갤 수 있습니다. 단, 어셈블리안에 존재하는 모듈 중 하나는 반드시 다른 모듈들의 위치를 기술(기능은 없고, 단순히 위치를 기술함)하고 있어야 하는데, 이 모듈 어셈블리(assembly)(.exe/.dll)라고도 합니다. ~~하지만 MS에서도 지원하지 않습니다~~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 그 외 ===&lt;br /&gt;
&lt;br /&gt;
== 덧글 ==&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>165.194.34.112</name></author>
	</entry>
</feed>