[[TableOfContents]] == 개요 == * 드디어 1.0을?! == 참가자 == * [신형철], [홍성현], [박인서] == 진행 시간 == * 화요일 오후 2시 30분 ~ 오후 4시 30분 == 진행 예정 내용 == * 다소 중요하다고 생각된 내용은 [[HTML(보라색 볼드(굵게))]] 처리하였습니다. * #7. 마무리하는 C# 1.0 Part.2 * [[HTML(예외(Exception))]] * System.Exception * [[HTML(try/catch를 통한 예외 처리기)]] * [[HTML(finally 블록)]] * [[HTML(throw 예약어)]] * Swallowing Exception 피하기 * 스택과 Stack Overflow * 관리 힙과 GC * [[HTML(박싱(Boxing)과 언박싱(Unboxing))]] * 가비지 수집 * 루트 참조(Root reference) * 대용량 객체 힙(LOH, Large Object Heap) * [[HTML(IDisposable 인터페이스와 using 블록)]] * 소멸자와 비관리 메모리 * 다시 보는 GC와 소멸자, 종료 큐 * #8. Visual Studio와 C# * 프로젝트 파일 설정(csproj) * 솔루션 파일 설정(sln) * csc에서의 다중 소스 컴파일, 라이브러리 생성과 참조 * Visual Studio에서의 라이브러리 생성 * [[HTML(CLR과 app.config)]] * [[HTML(supportedRuntime 태그)]] * [[HTML(config 파일과 닷넷 응용 프로그램 실행 과정)]] * [[HTML(appSettings 태그)]] * [[HTML(System.ObsoleteAttribute)]] * [[HTML(디버그 빌드와 릴리즈 빌드)]] * 각 빌드에서의 전처리 상수 정의, Conditional 특성 * System.Diagnotics.Debug, System.Diagnotics.Trace * 플랫폼 설정을 통한 응용 프로그램 빌드 * [[HTML(어셈블리 이름과 DLL 지옥)]] * [[HTML(PKI와 강력한 이름의 어셈블리(서명된 어셈블리))]] * [[HTML(전용 어셈블리와 XCopy 배포)]] * [[HTML(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]