- 솔루션 구성
- 레이어 구성
- Adapters
- Infrastructure
- Persistence
- Presentation
- Application
- Domain
- Adapters
- 테스트 구성
- Unit
- Integration = [x] Performance
- End to End
- Assets 구성
- Domains
- Frameworks
- Libraries
- 레이어 구성
- 솔루션 구성
- 제품
- Adapters.Infrastructure
- Adpaters.Persistence
- Adapters.Presnetation
- Application
- Domain
- 어셈블리
- AssemblyReference 구현
- Asserts
- Frameworks
- Libraries
- Domains
- 제품
- 솔루션 빌드
- Directory.Build.props: 전체, 테스트
- .NET
- 버전
- 메타
- 단일 파일
- Directory.Packages.props
- 생성 CLI
- 구분
- global.json
- nuget.config
- .editorconfig
- 네임스페이스: File scope
- await 없는 async 메서드
- .gitignore
- .gitattirute
- Directory.Build.props: 전체, 테스트
- 아키텍처 단위 테스트
- 폴더 구성
- Abstractions
- ArchitectureTests
- 레이어 의존성 테스트
- 어셈블리 AssemblyReference 테스트
- 폴더 구성
- appsettings 배포 N개
- 윈도우 성능 분서기: https://github.com/xoofx/ultra
- 도커 컴포즈 N개
- 컨테이너 기본 패키지
- 유틸리티
- /tmp
- 성능 테스트
- 컨테이너 Health Check
- 컨테이너 시작 순서
- docker compose 의존성 속성
- 도구
- 도커 컴포즈 통합 테스트
- 서비스
- 인프라
IHost | Windows Service | Docker | Integration Test | Performance Test | Pipeline(Exception) |
---|---|---|---|---|---|
Schedule | O | O | O | ||
WebApi | |||||
RabbitMQ | |||||
gRPC |
- IHost 구현
- 레이어 의존성 구성
Abstractions/ Registration/ {레이어}Registration.cs
- 레이어 의존성 옵션 등록
- appsettings.json -> {Featrue}Options -> {Feature}OptionsSetup : IConfigureOptions<{Feature}Options> -> {Feature}OptionsValidator : IValidateOptions<{Feature}Options>
- 옵션 데이터: XyzOptions
- 옵션 데이터 읽기: IConfigureOptions
- 옵션 유효성 검사: IValidateOptions
- 로그
- 레이어 의존성 통합 테스트
- Valid: 1개
- appsettings.Valid.json
- Invalid: N개
- appsettings.Invalid.xxx.json
- appsettings.Invalid.xxx.json
- Valid: 1개
- 성능 테스트
- 전역 예외 처리
- 빌드 자동화
- git 버전 통합
- 코드 커버리지
- 레이어 다이어그램
- 코드 품질
- 단일 파일
- 배포 자동화
- 윈도우 서비스
- 도커 컴포즈
- 설정?
System | Logs(Windows) | Logs(Linux) | Logs(Container) | Metrics(Windows) | Metrics(Linux) | Metrics(Container) | Traces |
---|---|---|---|---|---|---|---|
Aspire | |||||||
Grafana | |||||||
OpenSearch |
- 로그
- 파일
- 파일 Json
- gRPC OpenTelemetry
- 로그 테스트
- Fake 데이터 테스트
- Error
- Error 코드
- Result
- ValidationResult
- AggregateRoot
- Domain Event
- IRespository
- UoW
- ORM/SQL
- DTO
- Domain Model vs. Tr... Script
- IValidator
- CQRS
- ICommand
- IQuery
- Known Pipeline
- 예외
- 로그
- 유효성 검사
- 캐시?
- Unknown Pipeline
- IAdapter
- Entity
- Value Object
- Enum
- Domain Service
- Factory
- Retry
- Circuit Breaker
- Auth
- Gateway
- Cache
- How To Build an API Gateway for Microservices with YARP
- Implementing API Gateway Authentication With YARP + .NET 8
- Which API Gateway is better? YARP vs Ocelot