연락처 정보
 기간 35 시간

코스 개요

언어 기술로부터 솔루션 설계로

  • 고급 C# 기능 및 그 설계적 함의.
  • 기존 코드에서 설계 의도 재구성.

요구사항 분석 및 도메인 모델링

  • 사용 사례, 사용자 스토리 및 수용 기준.
  • 도메인 모델 및 보편적 언어.

소프트웨어 설계 원칙

  • .NET 솔루션에 적용하는 SOLID 원칙.
  • 결합, 응집 및 종속성 방향.

.NET 애플리케이션을 위한 디자인 패턴

  • 생성, 구조, 행동 패턴 선택.
  • 기존 코드에서의 패턴 및 안티패턴.

아키텍처 스타일 및 기술적 의사결정

  • 레이어, 헥사고날 및 클린 아키텍처 비교.
  • 아키텍처 의사결정 기록 및 트레이드오프 분석.

솔루션 구조 계획 수립

  • 대규모 코드베이스를 위한 솔루션 및 프로젝트 조직.
  • 모듈식 단일체(monolith) 대 서비스 지향 경계.

유지보수 가능한 코드를 위한 현대적 C#

  • 패턴 매칭, 레코드 및 nullable 참조 유형.
  • 제네릭, LINQ 및 함수형 구성.

예외 처리, 로깅 및 관찰 가능성

  • 예외 전략 및 에러 계약.
  • 구조화 로깅, 상관성(correlation) 및 건강 체크.

반사, 속성 및 메타프로그래밍

  • 속성 기반 설계 및 반사 사용 사례.
  • 소스 생성기 및 컴파일 타임 코드 생성.

ASP.NET Core 기본기

  • 호스팅 모델, 의존성 주입 및 구성.
  • 요청 파이프라인, 미들웨어 및 필터.

REST API 설계

  • 리소스 모델링 및 HTTP 의미론.
  • 버전 관리, 유효성 검사 및 에러 응답.
  • OpenAPI를 통한 API 계약.

.NET 애플리케이션 보안

  • OpenID Connect를 이용한 인증 및 인가.
  • 정책 기반 인가 및 시크릿 관리.

위협 모델링 및 보안 설계

  • STRIDE 모델링 및 신뢰 경계.
  • 구현 전 보안 설계 검토.

Entity Framework Core를 이용한 데이터 접근

  • 엔티티 및 관계 모델링.
  • DbContext 생명주기 및 마이그레이션 전략.

쿼리 성능 및 데이터 아키텍처

  • 로딩 전략 및 조식 로딩(eager loading) 함정.
  • 트랜잭션, 동시성 토큰 및 EF 우회 처리.

동시성 및 비동기 프로그래밍

  • 태스크, TPL 및 async/await 함정.
  • 동기화, 취소 및 스레드 안전성.

성능 최적화

  • BenchmarkDotNet을 이용한 프로파일링 및 벤치마킹.
  • 메모리, 할당 및 가비지 컬렉션.
  • 캐싱 전략 및 로드 테스트.

계층별 테스트 전략

  • 단위, 통합 및 끝-to-끝(end-to-end) 테스트 경계.
  • 테스트 가능한 아키텍처 및 테스트 더블(test doubles).

배포 및 운영 준비

  • 컨테이너, 구성 및 CI/CD 파이프라인.
  • 프로덕션 진단 및 릴리스 안전성.

캡스톤: 설계 검토 및 구현

  • 케이스 애플리케이션의 아키텍처 검토.
  • 기능 슬라이스 구현 및 리팩토링.

요건

  • C# 프로그래밍 경험
  • 객체 지향 프로그래밍에 대한 실무 지식
  • SQL 및 관계형 데이터베이스에 대한 기초 지식

대상 독자

  • .NET 개발자
  • 소프트웨어 엔지니어 및 기술 리드
  • 애플리케이션 설계 역할로 전환하고자 하는 개발자

참가자 수


참가자별 가격

회원 평가 (4)

예정된 코스

관련 카테고리