RealWorld 사양 및 API를 준수하는 실제 예제(CRUD, 인증, 고급 패턴 등)가 포함된 마이크로서비스 ASP.NET Core 코드베이스입니다.
이 코드베이스는 ASP.NET Core 로 구축된 완전한 기능을 갖춘 마이크로 서비스 아키텍처를 보여주기 위해 만들어졌습니다. 여기에는 gRPC, 도메인 기반 디자인, CQRS, 중재자, 프록시 및 더 많은 패턴이 포함됩니다.
ASP.NET Core 커뮤니티 스타일 가이드 및 모범 사례를 완벽하게 준수합니다.
다른 프런트엔드/백엔드와 함께 작동하는 방법에 대한 자세한 내용을 보려면 RealWorld 저장소를 방문하세요.
마이크로서비스 아키텍처 - 비즈니스 기능을 중심으로 독립적으로 배포 및 구성되며 유지 관리 및 테스트가 용이하고 느슨하게 결합된 서비스 컬렉션을 제공하는 아키텍처 스타일입니다. 서비스 계층은 도메인 모델 위에 배치됩니다.
도메인 중심 설계 - 도메인의 작고 개별적이며 거의 자율적인 부분에 집중하도록 안내하며 프로세스와 결과 소프트웨어는 더욱 유연합니다. 부작용 없이 작은 부품을 쉽게 이동하거나 수정할 수 있습니다.
gRPC를 통한 통신 - 플랫폼 간, 언어 간 방식으로 서비스를 연결하는 새롭고 성장하는 방법입니다.
원격 프록시 - 네트워크를 통해 원격 리소스에 연결하는 방법에 대한 세부 정보를 숨기면서 로컬 리소스처럼 작동합니다. 클라이언트와 서비스 간의 API 게이트웨이 역할을 합니다.
기능적 원리 적용 - C#의 기능적 프로그래밍을 통해 프로그램이 어떻게 작동하는지에 대한 통찰력을 얻을 수 있습니다. 여기서 구체적인 주제는 불변 아키텍처, 예외 방지, 원시적 집착, 실패 및 입력 오류 처리 방법 등입니다.
CQRS(명령-쿼리 책임 분리) - 단일 통합 도메인 모델을 풀고 두 가지 모델(명령 처리용 모델과 쿼리 처리용 모델)을 생성하도록 권장합니다. CQRS를 사용하면 읽기와 쓰기에 대해 서로 다른 결정을 내릴 수 있으며 이는 확장성, 성능, 가장 큰 장점인 단순성이라는 세 가지 이점을 제공합니다. CQRS는 CQS를 아키텍처 수준으로 확장합니다.
MediatR - 메시지가 적절한 위치로 라우팅되는지 확인합니다. 따라서 이를 메모리 내 메시징 시스템에 더 가깝다고 생각할 수도 있습니다.
Docker - 컨테이너는 기존 하이퍼바이저보다 특정 시나리오의 요구 사항을 더 잘 충족할 수 있는 고밀도 종류의 "가상화"를 나타냅니다.
Travis CI - 프로젝트 구축 및 테스트에 사용되는 지속적인 통합 서비스입니다. Travis CI는 커밋이 이루어지고 Travis CI를 사용하는 GitHub 저장소에 푸시되는 시점을 자동으로 감지하며, 이러한 일이 발생할 때마다 프로젝트 빌드를 시도하고 테스트를 실행합니다.