Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

CS/6월28일: Difference between revisions

From ZeroWiki
imported>nerumin90
({CREATE})
 
(Repair batch-0001 pages from live compare)
 
(3 intermediate revisions by 3 users not shown)
Line 5: Line 5:


== 참가자 ==
== 참가자 ==
* 진행 예정
* [[신형철]], [[홍성현]], [[박인서]]


== 진행 시간 ==
== 진행 시간 ==
* 진행 예정
* 화요일 오후 2시 30분 ~ 오후 4시 30분


== 진행 예정 내용 ==
== 진행 예정 내용 ==
* 다소 중요하다고 생각된 내용은 [[HTML(<font color="#9933ff"><b>보라색 볼드(굵게)</b></font>)]] 처리하였습니다.
* 다소 중요하다고 생각된 내용은 <font color="#9933ff"><b>보라색 볼드(굵게)</b></font> 처리하였습니다.


* #7. 마무리하는 C# 1.0 Part.2
* #7. 마무리하는 C# 1.0 Part.2
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;예외(Exception)&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>예외(Exception)</b></font>
** System.Exception
** System.Exception
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;try/catch를 통한 예외 처리기&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>try/catch를 통한 예외 처리기</b></font>
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;finally 블록&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>finally 블록</b></font>
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;throw 예약어&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>throw 예약어</b></font>
** Swallowing Exception 피하기
** Swallowing Exception 피하기
** 스택과 Stack Overflow
** 스택과 Stack Overflow
** 관리 힙과 GC
** 관리 힙과 GC
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;박싱(Boxing)과 언박싱(Unboxing)&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>박싱(Boxing)과 언박싱(Unboxing)</b></font>
** 가비지 수집
** 가비지 수집
** 루트 참조(Root reference)
** 루트 참조(Root reference)
** 대용량 객체 힙(LOH, Large Object Heap)
** 대용량 객체 힙(LOH, Large Object Heap)
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;IDisposable 인터페이스와 using 블록&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>IDisposable 인터페이스와 using 블록</b></font>
** 소멸자와 비관리 메모리
** 소멸자와 비관리 메모리
** 다시 보는 GC와 소멸자, 종료 큐
** 다시 보는 GC와 소멸자, 종료 큐
Line 35: Line 35:
** csc에서의 다중 소스 컴파일, 라이브러리 생성과 참조
** csc에서의 다중 소스 컴파일, 라이브러리 생성과 참조
** Visual Studio에서의 라이브러리 생성
** Visual Studio에서의 라이브러리 생성
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;CLR과 app.config&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>CLR과 app.config</b></font>
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;supportedRuntime 태그&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>supportedRuntime 태그</b></font>
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;config 파일과 닷넷 응용 프로그램 실행 과정&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>config 파일과 닷넷 응용 프로그램 실행 과정</b></font>
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;appSettings 태그&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>appSettings 태그</b></font>
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;System.ObsoleteAttribute&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>System.ObsoleteAttribute</b></font>
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;디버그 빌드와 릴리즈 빌드&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>디버그 빌드와 릴리즈 빌드</b></font>
** 각 빌드에서의 전처리 상수 정의, Conditional 특성
** 각 빌드에서의 전처리 상수 정의, Conditional 특성
** System.Diagnotics.Debug, System.Diagnotics.Trace
** System.Diagnotics.Debug, System.Diagnotics.Trace
** 플랫폼 설정을 통한 응용 프로그램 빌드
** 플랫폼 설정을 통한 응용 프로그램 빌드
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;어셈블리 이름과 DLL 지옥&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>어셈블리 이름과 DLL 지옥</b></font>
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;PKI와 강력한 이름의 어셈블리(서명된 어셈블리)&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>PKI와 강력한 이름의 어셈블리(서명된 어셈블리)</b></font>
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;전용 어셈블리와 XCopy 배포&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>전용 어셈블리와 XCopy 배포</b></font>
** &#91;&#91;HTML(&lt;font color="#9933ff"&gt;&lt;b&gt;GAC와 전역 어셈블리&lt;/b&gt;&lt;/font&gt;)&#93;&#93;
** <font color="#9933ff"><b>GAC와 전역 어셈블리</b></font>
 
* 추가 계획이 있긴 있습니다.


== 진행 ==
== 진행 ==
=== 내용 요약 ===
=== 내용 요약 ===
==== 7. 마무리하는 C# 1.0 Part.2 ====
==== 7. 마무리하는 C# 1.0 Part.2 ====
* 값 형식을 참조 형식으로 변환하는 것을 박싱(Boxing), 반대를 언박싱(Unboxing)
* 힙 메모리에 할당된 데이터를 가리키는 요소들을 가리켜 루트 참조라고 한다.
* try-finally-Dispose를 줄여 using 블록으로 활용할 수 있다.
* 소멸자가 존재한 객체는 종료 큐에 보관되고, 종료 큐에 있는 객체는 Freachable 큐로 보내져서 소멸자가 실행된다.
* 객체 크기가 일정 이상 넘어가는 객체는 LOH에 저장된다. LOH에 존재하는 객체는 처음부터 2세대로 설정된다.
==== 8. Visual Studio와 C# ====
==== 8. Visual Studio와 C# ====
* 프로젝트 파일과 솔루션 파일에는 각각 ;
* 라이브러리 생성을 통해 Dll 파일을 빌드할 수 있다.
* CLR에게 메시지를 주기 위해 app.config 파일을 이용한다.
* config 파일의 태그를 통해 사전에 Key-Value 쌍으로 데이터를 주거나, 지원되는 프레임 워크 버전을 제한할 수 있다.
* Obselete 특성을 통해 Deprecated 상태를 지정할 수 있다.
* 빌드에 따라 최적화 유무를 설정할 수 있으며, 각 빌드마다 정의되는 기본 전처리 상수가 있다.
* 어셈블리에는 이름, 버전, 공개 키 토큰 등이 포함된다.
* Dll 지옥을 방지하기 위해 닷넷에서는 PKI를 도입하였고, PKI가 존재하는 강력한 이름의 어셈블리라고 한다.
* 공유되는 라이브러리들이 GAC에 저장되며, GAC에 있는 라이브러리를 전역 어셈블리라고 한다.
* 폴더 자체를 복사하여 배포하는 방식을 XCopy 배포라고 한다.
=== 그 외 ===
=== 그 외 ===
== 덧글 ==
== 덧글 ==
--------------------------------
--------------------------------
[[CS]]
[[CS]]

Latest revision as of 23:56, 26 March 2026

개요

  • 드디어 1.0을?!

참가자

진행 시간

  • 화요일 오후 2시 30분 ~ 오후 4시 30분

진행 예정 내용

  • 다소 중요하다고 생각된 내용은 보라색 볼드(굵게) 처리하였습니다.
  • #7. 마무리하는 C# 1.0 Part.2
    • 예외(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#
    • 프로젝트 파일 설정(csproj)
    • 솔루션 파일 설정(sln)
    • csc에서의 다중 소스 컴파일, 라이브러리 생성과 참조
    • Visual Studio에서의 라이브러리 생성
    • CLR과 app.config
    • supportedRuntime 태그
    • config 파일과 닷넷 응용 프로그램 실행 과정
    • appSettings 태그
    • System.ObsoleteAttribute
    • 디버그 빌드와 릴리즈 빌드
    • 각 빌드에서의 전처리 상수 정의, Conditional 특성
    • System.Diagnotics.Debug, System.Diagnotics.Trace
    • 플랫폼 설정을 통한 응용 프로그램 빌드
    • 어셈블리 이름과 DLL 지옥
    • PKI와 강력한 이름의 어셈블리(서명된 어셈블리)
    • 전용 어셈블리와 XCopy 배포
    • GAC와 전역 어셈블리

진행

내용 요약

7. 마무리하는 C# 1.0 Part.2

  • 값 형식을 참조 형식으로 변환하는 것을 박싱(Boxing), 반대를 언박싱(Unboxing)
  • 힙 메모리에 할당된 데이터를 가리키는 요소들을 가리켜 루트 참조라고 한다.
  • try-finally-Dispose를 줄여 using 블록으로 활용할 수 있다.
  • 소멸자가 존재한 객체는 종료 큐에 보관되고, 종료 큐에 있는 객체는 Freachable 큐로 보내져서 소멸자가 실행된다.
  • 객체 크기가 일정 이상 넘어가는 객체는 LOH에 저장된다. LOH에 존재하는 객체는 처음부터 2세대로 설정된다.

8. Visual Studio와 C#

  • 프로젝트 파일과 솔루션 파일에는 각각 ;
  • 라이브러리 생성을 통해 Dll 파일을 빌드할 수 있다.
  • CLR에게 메시지를 주기 위해 app.config 파일을 이용한다.
  • config 파일의 태그를 통해 사전에 Key-Value 쌍으로 데이터를 주거나, 지원되는 프레임 워크 버전을 제한할 수 있다.
  • Obselete 특성을 통해 Deprecated 상태를 지정할 수 있다.
  • 빌드에 따라 최적화 유무를 설정할 수 있으며, 각 빌드마다 정의되는 기본 전처리 상수가 있다.
  • 어셈블리에는 이름, 버전, 공개 키 토큰 등이 포함된다.
  • Dll 지옥을 방지하기 위해 닷넷에서는 PKI를 도입하였고, PKI가 존재하는 강력한 이름의 어셈블리라고 한다.
  • 공유되는 라이브러리들이 GAC에 저장되며, GAC에 있는 라이브러리를 전역 어셈블리라고 한다.
  • 폴더 자체를 복사하여 배포하는 방식을 XCopy 배포라고 한다.

그 외

덧글


CS