DotNetDotNet[!info]Table of Contents TrendsUNO와 MAUI 개요닷넷 생태계 발전 과정 개요닷넷과 C# 개요크로스 플랫폼 개요WPFWPFWPF 기본 개념기본-생성-파일과-코드컨트롤과 사용자 정의 UIContainerGridListViewStatus BarBehavior의 개념과 활용WPF 레이아웃 시스템데이터 바인딩변환기와 포맷팅스타일링과 템플릿 시스템스타일링과 템플릿 시스템이벤트와 명령WPF Interaction의 개념과 활용그래픽과 애니메이션리소스와 테마리소스-파일-추가멀티미디어와 문서 처리데이터 및 파일 I/O성능 최적화애플리케이션 관리애플리케이션 관리WPF에서 처리되지 않은 예외 캡처외부 기술 및 프레임워크 통합CommunityToolkit.MvvmMahApps.Metro 추가Microsoft.Xaml.Behaviors.Wpf테스트와 디버깅배포 및 배포 관리객체지향 프로그래밍 (OOP)OOP 기초OOP 소개절차지향과 OOP의 비교객체와 클래스객체지향 4대 원칙캡슐화상속다형성추상화구성과 설계 요소구성과 위임의 활용구성과 상속의 차이구성과 의존성 관리OOP 설계OOP 핵심 설계 원칙기본 설계 원칙DRY 원칙KISS 원칙YAGNI 원칙디미터 법칙Tell, Don’t Ask 원칙모듈화 설계응집도와 결합도정보 은닉과 경계 설정인터페이스와 추상 클래스추상화와 구현의 분리상태 기반과 행동 기반 모듈화모듈 간 계약 설계객체 협력과 의존성 관리객체 협력제어 반전메시지 전달의존성 주입서비스 로케이터Command-Query 분리 원칙SOLID 설계 원칙단일 책임 원칙 (SRP)개방-폐쇄 원칙(OCP)리스코프 치환 원칙(LSP)인터페이스 분리 원칙(ISP)의존 역전 원칙(DIP)SOLID 원칙의 배경과 철학SOLID 원칙과 디자인 패턴SOLID 원칙과 TDD디자인 패턴디자인 패턴의 개요 및 역할실무 적용을 위한 디자인 패턴 학습 가이드생성패턴SingletonFactoryFactory MethodAbstract FactoryBuilderPrototypeObject Pool구조패턴AdapterBridgeCompositeDecoratorFacadeFlyweightProxyPrivate Class Data행동패턴VisitorObserverChain of ResponsibilityCommandInterpreterStrategyTemplate MethodMediatorMementoStateNull ObjectEventAggregator아키텍처 패턴계층형 아키텍쳐와 MVVM디자인 패턴과 아키텍처계층형 아키텍처헥사고날 아키텍처엔터프라이즈 아키텍처 패턴도메인 주도 설계마이크로서비스 아키텍처CQRSEvent Sourcing작업 큐와 부하 분산Producer-Consumer 패턴MVC 패턴MVVM 패턴실무 설계 패턴GRASP 패턴비지니스 로직과 객체지향 설계API 설계와 RESTful 패턴비동기 프로그래밍과 객체지향 설계애자일 설계 원칙OOP 소프트웨어 개발OOP 개발을 위한 도구들OOP 소프트웨어 분석OOP 소프트웨어 테스트OOP 유지보수와 설계객체지향 구현객체지향 설계리팩토링과 테스트 설계OOP 리팩토링과 설계 패턴TDD (테스트 주도 개발)참고 및 심화프로젝트 관리프로젝트 시작규칙과 스타일코딩 규칙과 스타일 가이드의 중요성닷넷의 일반적인 코딩 규칙과 스타일닷넷의 스타일 가이드 도구패키징패키징 관련해서 고려해야 할 전략종속성 관리 전략패키지 형식 및 배포전략패키지 병합일체형 빌드일체형 빌드도구Costura.Fody 소개 및 사용 방법패키지 크기 최적화프로젝트 참조 추가와 종속성 설정보안보안 전략주석문서화주석문서화DocFXGit 연동docfx 관리 단위에러테스트Unit Test 소개Unit TestVisual Studio에서 xUnit 테스트 실행테스트 프로젝트 설정테스트 디버깅순환복잡도 테스트로그 시스템로그 시스템 개요로그 전략닷넷 로그 프레임워크 선택로그 프레임워크 선택로그 프레임워크 성능 평가 기준인터페이스 기반 로깅인터페이스 기반 로깅 시스템 설계다형성 유지와 성능 최적화 전략간접 호출 기반 로깅 시스템 설계SQLiteSQLite와 파일 로깅 전략 비교SQLite 병목 문제 해결 전략로그 파일 기록 전략SerilogSerilog 소개Serilog 기록 방식별 성능 분석Serilog와 SQLite의 통합ZeroLogZeroLogZerolog 쓰기 방식에 따른 성능 평가NLogNLog 소개log4netlog4net 소개log4net 설정Limited Memory Appender로그 기록 위치 변경Trace 사용log.config 경로 변경Level 일괄 변경자료구조닷넷과 자료 구조Array비제네릭 컬렉션특수 컬렉션특수 컬렉션 개요BitArrayBitVector32StringCollection과 StringDictionarySpecialized DictionariesNameValueCollectionLookup제네릭 컬렉션제네릭과 제네릭 컬렉션 개요ListDictionaryQueueStackHashSetLinkedList제네릭 컬렉션의 초기 용량 설정을 통한 최적화동시성 컬렉션동시성 컬렉션 개요ConcurrentBagConcurrentDictionaryConcurrentQueueConcurrentStackBlockingCollection불변 컬렉션불변 컬렉션 개요ImmutableListImmutableDictionaryImmutableHashSetImmutableArrayImmutableQueueImmutableStack불변 컬렉션과 함수형 프로그래밍고급 자료 구조트리 자료구조 개요자료구조에서의 해시 함수LOH와 Chunking을 통한 메모리 최적화닷넷 최적화 전략SystemResource-확인.NET의 마샬링 최적화반복 호출 최적화를 위한 캐싱데이터 직렬화직렬화 실수와 해결 방안데이터 정밀도 손실버전 호환성 문제보안 취약점 노출불필요한 데이터 직렬화순환 참조 문제역직렬화 시 예외 처리잘못된 데이터 형식 사용기본 개념과 기초데이터 직렬화 개요XML 직렬화를 통한 클래스-파일 동기화JSON 직렬화를 통한 클래스-파일 동기화YAML 직렬화를 통한 클래스-파일 동기화INI 직렬화를 통한 클래스-파일 동기화단순 데이터 직렬화 형식 개요객체 복사고급 직렬화 기법 및 최적화제네릭을 활용한 XML/JSON/YAML 동기화 클래스 설계디자인 패턴을 통한 데이터 직렬화 최적화DTO(Data Transfer Object)와 직렬화의 분리고급 직렬화 형식과 최적화Protocol Buffers 직렬화기타 직렬화 형식 개요데이터 유효성 및 에러 처리직렬화 및 역직렬화 시 데이터 유효성 검사버전 호환성 관리 전략직렬화의 에러 처리 전략테스트와 디버깅을 통한 직렬화 안정성 확보보안 및 안전한 데이터 처리데이터 직렬화에서 보안 고려 사항데이터 압축 및 암호화를 통한 안전한 직렬화직렬화된 데이터의 안전한 저장 및 접근 제어인증 및 권한 관리데이터 무결성 보장 및 서명 전략성능 최적화와 비동기 처리비동기 직렬화와 성능 최적화직렬화된 데이터의 캐싱 전략직렬화 성능 최적화 전략엔디안 변환과 성능 최적화데이터 파싱과 성능 최적화실시간 직렬화 요구사항언어 간 상호 운용성과 대안직렬화 형식 간 변환메모리 맵 파일을 통한 직렬화 대안이벤트 기반 시스템과 직렬화이벤트 기반 시스템에서의 직렬화데이터 변경 추적 및 이벤트 기반 동기화메모리 관리메모리 관리 전략ArrayPool메모리 관리와 객체 수명 주기 최적화GC 수집 주기와 메모리 할당 패턴 최적화Large Object Heap(LOH) 관리메모리 누수 탐지와 디버깅약한 참조(Weak Reference)와 메모리 관리Unsafe 코드와 메모리 관리GC 관리와 최적화GC 모니터링 및 디버깅깅GC-동작-시간-확인API를 사용한 GC 모니터링GC의 기초 개념GC의 기본 개념.NET에서의 GC와 작동 원리GC와 메모리 모델 이해GC 설정과 튜닝GC 모드와 설정다양한 GC 모드 간의 성능 비교GC 성능 모니터링과 튜닝GC 최적화를 위한 도구 활용GC 로그 분석을 통한 성능 최적화메모리 파편화와 압축비동기 및 병렬 프로그래밍에서의 GC 최적화보안 및 성능 최적화GC와 보안 이슈실시간 시스템에서의 GC 최적화GC와 성능 테스트 방법론GC 친화적인 디자인 패턴GC와 상호 운용성GC와 네이티브 상호 운용성GC와 클라우드 서비스 최적화GC와 멀티테넌시 환경에서의 최적화GC와 컨테이너 환경에서의 메모리 관리최신 트렌드 및 발전 방향GC 최신 트렌드와 향후 전망최신 .NET 기능과 GC.NET의 마샬링 성능 최적화와 상호작용 가이드_indexMarshaling Complex Arrays and Collections포인터 및 핸들 마샬링마샬링 방식Blittable 타입 vs Non-Blittable 타입커스텀 마샬링Marshaling Arrays of Structures복잡한 배열 및 컬렉션 마샬링대형 구조체 및 클래스 마샬링문자열 마샬링Nullable 타입 마샬링_indexCOM 상호운용성 마샬링Marshaling Performance Optimization Strategies마샬링에서의 보안 고려 사항분산 시스템에서의 마샬링윈도우 API와의 상호작용함수 포인터 및 예외 처리직렬화 방식별 성능 최적화대용량 데이터 마샬링비동기 프로그래밍에서의 마샬링플랫폼 간 마샬링실시간 시스템에서의 마샬링마샬링 개념 및 기본마샬링의 개념마샬링이 필요한 언어들마샬링 성능 이슈데이터베이스EntityFrameworkDictionary 와 HashsetLINQ to Entities 의 성능 최적화SaveChanges() 최적화 전략데이터베이스 설계 원칙Repository 패턴Unit of WorkData Access Object(DAO) 패턴Active RecordIdentity MapQuery ObjectLazy LoadDictionaryClass Serialize 시 Event 처리SafeInvokengen.exex64 에서 x86으로 실행경로 설정 방법로그 기록 시 함수명 자동 기록최종 일관성과 즉각적인 일관성시간 복잡도 개요파일시스템 감시N+1 문제Spin-Waiting닷넷 기능Null-conditional OperatorEnumrecordManualResetEvent와 ManualResetEventSlim