The RED : 현실 세상의 TDD 실전편 : 설계 확장성을 위한 코드 개선 방법 https://fastcampus.co.kr/dev_red_ygw2
강의 앞 부분의 기존 코드는 프로젝트 구조가 간단하고 뒷 부분의 코드는 계층을 나눠간다. 개인적으로 경험한 프로젝트들은 어떻게든 구조가 나눠져있어서 마음대로 나누고 실습했다. 또 강의의 코드와 GitHub에 공유된 소스코드가 다르며, 이 실습 코드도 조금 다르다. 사용해보지 않은 방법은 그대로 따라해보고, 입맛에 맞게 바꿔보거나 먼저 작성해보기도 했다.
폴더와 파일은 프로젝트 루트 경로를 기준으로 한다. 도커 컴포즈를 이용한 DB 를 준비한다.
cd db
docker compose up -d
- 테스트 DB 는 테스트 프로젝트에서 마이그레이션 된다.
dotnet tool install --global dotnet-ef
- Orders/Orders.Api/appsettings.Development.json
- Sellers/Sellers.Api/appsettings.Development.json
- accounting/api/src/main/resources/application.yml
# OrderingDB Migration
dotnet ef database update -p Orders/Orders.Infrastructure -s Orders/Orders.Api
# SellersDB Migration
dotnet ef database update -p Sellers/Sellers.Sql -s Sellers/Sellers.Api
- Orders/Orders.UnitTests/OrdersServer.cs
- Sellers/Sellers.Testing/SellersServer.cs
- Sellers/Sellers.UnitTests/api/shops/id/Get_specs.cs
# 주문 API 실행
dotnet run --project ./Orders/Orders.Api
# 판매자 API 실행
dotnet run --project ./Sellers/Sellers.Api
# 정산 API 실행
./gradlew :accounting:api:bootRun
# Orders.UnitTests, Sellers.UnitTests 테스트 실행
dotnet test
# accounting.unittest 테스트 실행
./gradlew :accounting:unittest:test