Skip to content

Commit f3cf891

Browse files
committed
docs(sandbox): Tests.Sandbox/ 메모 .md 옛 명명 정리 (7 파일)
직전 트랙(496ac90, 6ef5de1)과 동일 sed 패턴으로 Tests.Sandbox/의 개발자 메모 .md 옛 명명을 v1.0.0-alpha.4+ 신규 명명으로 통일. 대상: - Cqrs03Functional/{Log-Analysis,Log-Analysis-Improvements,Log-표준화, Trace-Analysis,Trace-Analysis-Improvements}.md - Cqrs04Endpoint/ERROR-TESTING-GUIDE.md - TwoWayMappingLayered/README.md 치환: - ApplicationErrorType / AdapterErrorType / DomainErrorType → *Kind - ErrorCodeExpected → ExpectedError - ErrorCodeExceptional → ExceptionalError - ApplicationErrors.{Class} / AdapterErrors.{Class} → Application.{Class} / Adapter.{Class} (출력 prefix만) 대부분 로그·trace 출력 예시 인용 부분. 코드 동작 변경 0.
1 parent 6ef5de1 commit f3cf891

7 files changed

Lines changed: 49 additions & 49 deletions

File tree

Tests.Sandbox/Cqrs03Functional/Log-Analysis-Improvements.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,9 @@ public static class TelemetryLogKeys
144144
```json
145145
// Usecase Error
146146
{
147-
"ErrorType": "ErrorCodeExpected`1",
147+
"ErrorType": "ExpectedError`1",
148148
"ErrorCodeId": -1000,
149-
"ErrorCode": "ApplicationErrors.UsecaseValidationPipeline.Validator",
149+
"ErrorCode": "Application.UsecaseValidationPipeline.Validator",
150150
"Message": "Name: 상품명은 필수입니다",
151151
"ErrorCurrentValue": {...}
152152
}

Tests.Sandbox/Cqrs03Functional/Log-Analysis.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ Cqrs03Functional 애플리케이션에서 출력되는 로그는 크게 두 가
115115

116116
---
117117

118-
### 3. Response 로그 - 실패 (Warning: ErrorCodeExpected)
118+
### 3. Response 로그 - 실패 (Warning: ExpectedError)
119119

120120
#### 메시지 템플릿
121121
```
@@ -124,7 +124,7 @@ Cqrs03Functional 애플리케이션에서 출력되는 로그는 크게 두 가
124124

125125
#### 실제 로그 예시
126126
```
127-
[00:22:36 WRN] Application Usecase.Command CreateProductCommand.Handle responded Failure in 27.7202 ms with {"ErrorType": "ManyErrors", "ErrorCodeId": -2000000006, "Count": 3, "Errors": [{"ErrorType": "ErrorCodeExpected`1", "ErrorCodeId": -1000, "ErrorCode": "ApplicationErrors.UsecaseValidationPipeline.Validator", "Message": "Name: 상품명은 필수입니다", "ErrorCurrentValue": {"PropertyName": "Name", "PropertyValue": "", "PropertyPath": "Name"}}, ...]}
127+
[00:22:36 WRN] Application Usecase.Command CreateProductCommand.Handle responded Failure in 27.7202 ms with {"ErrorType": "ManyErrors", "ErrorCodeId": -2000000006, "Count": 3, "Errors": [{"ErrorType": "ExpectedError`1", "ErrorCodeId": -1000, "ErrorCode": "Application.UsecaseValidationPipeline.Validator", "Message": "Name: 상품명은 필수입니다", "ErrorCurrentValue": {"PropertyName": "Name", "PropertyValue": "", "PropertyPath": "Name"}}, ...]}
128128
```
129129

130130
#### 로그 필드 (JSON)
@@ -150,9 +150,9 @@ Cqrs03Functional 애플리케이션에서 출력되는 로그는 크게 두 가
150150
"Count": 3,
151151
"Errors": [
152152
{
153-
"ErrorType": "ErrorCodeExpected`1",
153+
"ErrorType": "ExpectedError`1",
154154
"ErrorCodeId": -1000,
155-
"ErrorCode": "ApplicationErrors.UsecaseValidationPipeline.Validator",
155+
"ErrorCode": "Application.UsecaseValidationPipeline.Validator",
156156
"Message": "Name: 상품명은 필수입니다",
157157
"ErrorCurrentValue": {
158158
"PropertyName": "Name",
@@ -182,7 +182,7 @@ Cqrs03Functional 애플리케이션에서 출력되는 로그는 크게 두 가
182182

183183
---
184184

185-
### 4. Response 로그 - 실패 (Error: ErrorCodeExceptional)
185+
### 4. Response 로그 - 실패 (Error: ExceptionalError)
186186

187187
#### 메시지 템플릿
188188
```
@@ -191,7 +191,7 @@ Cqrs03Functional 애플리케이션에서 출력되는 로그는 크게 두 가
191191

192192
#### 실제 로그 예시
193193
```
194-
[00:22:36 ERR] Application Usecase.Command UpdateProductCommand.Handle responded Failure in 16.5624 ms with {"ErrorType": "ErrorCodeExceptional", "ErrorCode": "ApplicationErrors.UsecaseExceptionPipeline.Exception", "ErrorCodeId": -2146233079, "Message": "시뮬레이션된 예외: 데모 목적으로 발생한 예외입니다", "ExceptionDetails": {"TargetSite": "Void MoveNext()", "Message": "...", "Data": [], "InnerException": null, "HelpLink": null, "Source": "Cqrs03Functional.Demo", "HResult": -2146233079, "StackTrace": "..."}}
194+
[00:22:36 ERR] Application Usecase.Command UpdateProductCommand.Handle responded Failure in 16.5624 ms with {"ErrorType": "ExceptionalError", "ErrorCode": "Application.UsecaseExceptionPipeline.Exception", "ErrorCodeId": -2146233079, "Message": "시뮬레이션된 예외: 데모 목적으로 발생한 예외입니다", "ExceptionDetails": {"TargetSite": "Void MoveNext()", "Message": "...", "Data": [], "InnerException": null, "HelpLink": null, "Source": "Cqrs03Functional.Demo", "HResult": -2146233079, "StackTrace": "..."}}
195195
```
196196

197197
#### 로그 필드 (JSON)
@@ -205,15 +205,15 @@ Cqrs03Functional 애플리케이션에서 출력되는 로그는 크게 두 가
205205
| `RequestHandlerMethod` | string | Handler 메서드 이름 | "Handle" |
206206
| `Status` | string | 응답 상태 (고정값: "Failure") | "Failure" |
207207
| `Elapsed` | double | 경과 시간 (밀리초) | 16.5624 |
208-
| `Error` | object | 에러 객체 전체 (예외 정보 포함) | `{"ErrorType": "ErrorCodeExceptional", "ErrorCode": "...", "ErrorCodeId": -2146233079, "Message": "...", "ExceptionDetails": {...}}` |
208+
| `Error` | object | 에러 객체 전체 (예외 정보 포함) | `{"ErrorType": "ExceptionalError", "ErrorCode": "...", "ErrorCodeId": -2146233079, "Message": "...", "ExceptionDetails": {...}}` |
209209

210210
#### Error 객체 구조
211211

212-
**ErrorCodeExceptional**:
212+
**ExceptionalError**:
213213
```json
214214
{
215-
"ErrorType": "ErrorCodeExceptional",
216-
"ErrorCode": "ApplicationErrors.UsecaseExceptionPipeline.Exception",
215+
"ErrorType": "ExceptionalError",
216+
"ErrorCode": "Application.UsecaseExceptionPipeline.Exception",
217217
"ErrorCodeId": -2146233079,
218218
"Message": "시뮬레이션된 예외: 데모 목적으로 발생한 예외입니다",
219219
"ExceptionDetails": {

Tests.Sandbox/Cqrs03Functional/Log-표준화.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@
113113

114114
---
115115

116-
### 3. Response 로그 - 실패 (Warning: ErrorCodeExpected)
116+
### 3. Response 로그 - 실패 (Warning: ExpectedError)
117117

118118
#### 메시지 템플릿
119119
```
@@ -122,7 +122,7 @@
122122

123123
#### 실제 로그 예시
124124
```
125-
[00:22:36 WRN] Application Usecase.Command CreateProductCommand.Handle responded Failure in 27.7202 ms with {"ErrorType": "ManyErrors", "ErrorCodeId": -2000000006, "Count": 3, "Errors": [{"ErrorType": "ErrorCodeExpected`1", "ErrorCodeId": -1000, "ErrorCode": "ApplicationErrors.UsecaseValidationPipeline.Validator", "Message": "Name: 상품명은 필수입니다", "ErrorCurrentValue": {"PropertyName": "Name", "PropertyValue": "", "PropertyPath": "Name"}}, ...]}
125+
[00:22:36 WRN] Application Usecase.Command CreateProductCommand.Handle responded Failure in 27.7202 ms with {"ErrorType": "ManyErrors", "ErrorCodeId": -2000000006, "Count": 3, "Errors": [{"ErrorType": "ExpectedError`1", "ErrorCodeId": -1000, "ErrorCode": "Application.UsecaseValidationPipeline.Validator", "Message": "Name: 상품명은 필수입니다", "ErrorCurrentValue": {"PropertyName": "Name", "PropertyValue": "", "PropertyPath": "Name"}}, ...]}
126126
```
127127

128128
#### 로그 필드 (JSON)
@@ -148,9 +148,9 @@
148148
"Count": 3,
149149
"Errors": [
150150
{
151-
"ErrorType": "ErrorCodeExpected`1",
151+
"ErrorType": "ExpectedError`1",
152152
"ErrorCodeId": -1000,
153-
"ErrorCode": "ApplicationErrors.UsecaseValidationPipeline.Validator",
153+
"ErrorCode": "Application.UsecaseValidationPipeline.Validator",
154154
"Message": "Name: 상품명은 필수입니다",
155155
"ErrorCurrentValue": {
156156
"PropertyName": "Name",
@@ -180,7 +180,7 @@
180180

181181
---
182182

183-
### 4. Response 로그 - 실패 (Error: ErrorCodeExceptional)
183+
### 4. Response 로그 - 실패 (Error: ExceptionalError)
184184

185185
#### 메시지 템플릿
186186
```
@@ -189,7 +189,7 @@
189189

190190
#### 실제 로그 예시
191191
```
192-
[00:22:36 ERR] Application Usecase.Command UpdateProductCommand.Handle responded Failure in 16.5624 ms with {"ErrorType": "ErrorCodeExceptional", "ErrorCode": "ApplicationErrors.UsecaseExceptionPipeline.Exception", "ErrorCodeId": -2146233079, "Message": "시뮬레이션된 예외: 데모 목적으로 발생한 예외입니다", "ExceptionDetails": {"TargetSite": "Void MoveNext()", "Message": "...", "Data": [], "InnerException": null, "HelpLink": null, "Source": "Demo", "HResult": -2146233079, "StackTrace": "..."}}
192+
[00:22:36 ERR] Application Usecase.Command UpdateProductCommand.Handle responded Failure in 16.5624 ms with {"ErrorType": "ExceptionalError", "ErrorCode": "Application.UsecaseExceptionPipeline.Exception", "ErrorCodeId": -2146233079, "Message": "시뮬레이션된 예외: 데모 목적으로 발생한 예외입니다", "ExceptionDetails": {"TargetSite": "Void MoveNext()", "Message": "...", "Data": [], "InnerException": null, "HelpLink": null, "Source": "Demo", "HResult": -2146233079, "StackTrace": "..."}}
193193
```
194194

195195
#### 로그 필드 (JSON)
@@ -203,15 +203,15 @@
203203
| `RequestHandlerMethod` | string | Handler 메서드 이름 | "Handle" |
204204
| `Status` | string | 응답 상태 (고정값: "Failure") | "Failure" |
205205
| `Elapsed` | double | 경과 시간 (밀리초) | 16.5624 |
206-
| `Error` | object | 에러 객체 전체 (예외 정보 포함) | `{"ErrorType": "ErrorCodeExceptional", "ErrorCode": "...", "ErrorCodeId": -2146233079, "Message": "...", "ExceptionDetails": {...}}` |
206+
| `Error` | object | 에러 객체 전체 (예외 정보 포함) | `{"ErrorType": "ExceptionalError", "ErrorCode": "...", "ErrorCodeId": -2146233079, "Message": "...", "ExceptionDetails": {...}}` |
207207

208208
#### Error 객체 구조
209209

210-
**ErrorCodeExceptional**:
210+
**ExceptionalError**:
211211
```json
212212
{
213-
"ErrorType": "ErrorCodeExceptional",
214-
"ErrorCode": "ApplicationErrors.UsecaseExceptionPipeline.Exception",
213+
"ErrorType": "ExceptionalError",
214+
"ErrorCode": "Application.UsecaseExceptionPipeline.Exception",
215215
"ErrorCodeId": -2146233079,
216216
"Message": "시뮬레이션된 예외: 데모 목적으로 발생한 예외입니다",
217217
"ExceptionDetails": {

Tests.Sandbox/Cqrs03Functional/Trace-Analysis-Improvements.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ activity.SetStatus(ActivityStatusCode.Ok); // 열거형
104104
**현재 상태**:
105105
```
106106
Usecase 에러 태그:
107-
- error.type: "ErrorCodeExpected"
108-
- error.code: "ApplicationErrors.UsecaseValidationPipeline.Validator"
107+
- error.type: "ExpectedError"
108+
- error.code: "Application.UsecaseValidationPipeline.Validator"
109109
- error.message: "Name: 상품명은 필수입니다"
110110
- error.count: 3 (ManyErrors인 경우)
111111
@@ -295,11 +295,11 @@ Activity? activity = _activitySource.StartActivity(..., tags, ...); // 한 번
295295
```csharp
296296
switch (error)
297297
{
298-
case ErrorCodeExpected errorCodeExpected:
299-
SetErrorCodeExpectedTags(activity, errorCodeExpected);
298+
case ExpectedError errorCodeExpected:
299+
SetExpectedErrorTags(activity, errorCodeExpected);
300300
break;
301-
case ErrorCodeExceptional errorCodeExceptional:
302-
SetErrorCodeExceptionalTags(activity, errorCodeExceptional);
301+
case ExceptionalError errorCodeExceptional:
302+
SetExceptionalErrorTags(activity, errorCodeExceptional);
303303
break;
304304
case ManyErrors manyErrors:
305305
SetManyErrorsTags(activity, manyErrors);

Tests.Sandbox/Cqrs03Functional/Trace-Analysis.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,19 +111,19 @@ Usecase Trace는 `UsecaseTracePipeline<TRequest, TResponse>`에서 자동으로
111111

112112
에러 타입에 따라 추가 태그가 설정됩니다:
113113

114-
##### ErrorCodeExpected
114+
##### ExpectedError
115115

116116
| 태그 키 | 태그 값 | 설명 |
117117
|---------|---------|------|
118-
| `error.type` | `ErrorCodeExpected` | 에러 타입 |
119-
| `error.code` | ErrorCode 문자열 | 에러 코드 (예: "ApplicationErrors.UsecaseValidationPipeline.Validator") |
118+
| `error.type` | `ExpectedError` | 에러 타입 |
119+
| `error.code` | ErrorCode 문자열 | 에러 코드 (예: "Application.UsecaseValidationPipeline.Validator") |
120120
| `error.message` | string | 에러 메시지 |
121121

122-
##### ErrorCodeExceptional
122+
##### ExceptionalError
123123

124124
| 태그 키 | 태그 값 | 설명 |
125125
|---------|---------|------|
126-
| `error.type` | `ErrorCodeExceptional` | 에러 타입 |
126+
| `error.type` | `ExceptionalError` | 에러 타입 |
127127
| `error.code` | ErrorCode 문자열 | 에러 코드 |
128128
| `error.message` | string | 에러 메시지 |
129129

Tests.Sandbox/Cqrs04Endpoint/ERROR-TESTING-GUIDE.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
| `SingleExceptional` | 단일 Exceptional 에러 (시스템 에러) | `response.status=failure`, `error.type=exceptional`, `error.code=TestErrors.TestErrorCommand.SystemFailure` |
2929
| `ManyExpected` | 복합 Expected 에러 (여러 비즈니스 에러) | `response.status=failure`, `error.type=aggregate`, `error.code=TestErrors.TestErrorCommand.BusinessRuleViolation` (첫 번째) |
3030
| `ManyMixed` | 복합 Mixed 에러 (Expected + Exceptional) | `response.status=failure`, `error.type=aggregate`, `error.code=TestErrors.TestErrorCommand.SystemFailure` (Exceptional 우선) |
31-
| `GenericExpected` | 제네릭 Expected 에러 (`ErrorCodeExpected<T>`) | `response.status=failure`, `error.type=expected`, `error.code=TestErrors.TestErrorCommand.GenericError` |
31+
| `GenericExpected` | 제네릭 Expected 에러 (`ExpectedError<T>`) | `response.status=failure`, `error.type=expected`, `error.code=TestErrors.TestErrorCommand.GenericError` |
3232

3333
### 2. TestErrorEndpoint.cs
3434

@@ -149,7 +149,7 @@ Value: 1
149149
**코드 참조**: [UsecaseMetricsPipeline.cs:166-169](../../Src/Functorium/Applications/Pipelines/UsecaseMetricsPipeline.cs#L166-L169)
150150

151151
```csharp
152-
// 3순위: IHasErrorCode - Expected 에러 (모든 ErrorCodeExpected<...> 변형 포함)
152+
// 3순위: IHasErrorCode - Expected 에러 (모든 ExpectedError<...> 변형 포함)
153153
IHasErrorCode hasErrorCode => (
154154
ErrorType: ObservabilityNaming.ErrorTypes.Expected,
155155
ErrorCode: hasErrorCode.ErrorCode // ✅ 인터페이스 사용
@@ -166,9 +166,9 @@ IHasErrorCode hasErrorCode => (
166166
**코드 참조**: [UsecaseMetricsPipeline.cs:161-164](../../Src/Functorium/Applications/Pipelines/UsecaseMetricsPipeline.cs#L161-L164)
167167

168168
```csharp
169-
// 2순위: ErrorCodeExceptional - Exceptional을 먼저 매칭
169+
// 2순위: ExceptionalError - Exceptional을 먼저 매칭
170170
// (IHasErrorCode보다 먼저 와야 함!)
171-
ErrorCodeExceptional exceptional => (
171+
ExceptionalError exceptional => (
172172
ErrorType: ObservabilityNaming.ErrorTypes.Exceptional,
173173
ErrorCode: exceptional.ErrorCode
174174
),
@@ -216,7 +216,7 @@ private static string GetPrimaryErrorCode(ManyErrors many)
216216
- `error.type=expected`
217217
- `error.code=TestErrors.TestErrorCommand.GenericError`
218218

219-
**중요**: `ErrorCodeExpected<T>` 제네릭 타입도 `IHasErrorCode` 인터페이스를 통해 올바르게 처리됩니다.
219+
**중요**: `ExpectedError<T>` 제네릭 타입도 `IHasErrorCode` 인터페이스를 통해 올바르게 처리됩니다.
220220

221221
## 패턴 매칭 순서의 중요성
222222

@@ -226,13 +226,13 @@ private static string GetPrimaryErrorCode(ManyErrors many)
226226
/// <remarks>
227227
/// 패턴 매칭 순서가 중요합니다:
228228
/// 1. ManyErrors - 특수 처리 필요
229-
/// 2. ErrorCodeExceptional - Exceptional 명시적 처리
230-
/// 3. IHasErrorCode - Expected 에러 (ErrorCodeExceptional도 이 인터페이스를 구현하므로 순서 중요!)
229+
/// 2. ExceptionalError - Exceptional 명시적 처리
230+
/// 3. IHasErrorCode - Expected 에러 (ExceptionalError도 이 인터페이스를 구현하므로 순서 중요!)
231231
/// 4. Fallback - 알 수 없는 에러 타입
232232
/// </remarks>
233233
```
234234

235-
⚠️ **주의**: `ErrorCodeExceptional``IHasErrorCode`를 구현하므로, `IHasErrorCode` 패턴이 먼저 오면 Exceptional 에러가 Expected로 잘못 분류됩니다!
235+
⚠️ **주의**: `ExceptionalError``IHasErrorCode`를 구현하므로, `IHasErrorCode` 패턴이 먼저 오면 Exceptional 에러가 Expected로 잘못 분류됩니다!
236236

237237
## 트러블슈팅
238238

@@ -256,7 +256,7 @@ private static string GetPrimaryErrorCode(ManyErrors many)
256256
### 잘못된 error.type
257257

258258
- 패턴 매칭 순서를 확인하세요
259-
- `ErrorCodeExceptional``IHasErrorCode`보다 먼저 매칭되어야 합니다
259+
- `ExceptionalError``IHasErrorCode`보다 먼저 매칭되어야 합니다
260260

261261
## 관련 문서
262262

Tests.Sandbox/TwoWayMappingLayered/README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ public sealed class Usecase : ICommandUsecase<Request, Response>
434434
// LINQ 쿼리 표현식: Repository가 Product(Domain) 반환
435435
FinT<IO, Response> usecase =
436436
from exists in _productRepository.ExistsByName(request.Name)
437-
from _ in guard(!exists, ApplicationErrors.ProductNameAlreadyExists(request.Name))
437+
from _ in guard(!exists, Application.ProductNameAlreadyExists(request.Name))
438438
from product in _productRepository.Create(
439439
Product.Create(request.Name, request.Description, price, request.StockQuantity))
440440
select new Response(
@@ -485,7 +485,7 @@ Application Layer에서 비즈니스 로직 에러를 표현할 때 사용합니
485485
```csharp
486486
// CreateProductCommand.cs
487487
using Functorium.Applications.Errors;
488-
using static Functorium.Applications.Errors.ApplicationErrorType;
488+
using static Functorium.Applications.Errors.ApplicationErrorKind;
489489

490490
// LINQ 쿼리 표현식 내에서 guard와 함께 사용
491491
FinT<IO, Response> usecase =
@@ -500,10 +500,10 @@ FinT<IO, Response> usecase =
500500

501501
**생성되는 에러 코드 형식:**
502502
```
503-
ApplicationErrors.Usecase.AlreadyExists
503+
Application.Usecase.AlreadyExists
504504
```
505505

506-
**제공되는 에러 타입 (`ApplicationErrorType`):**
506+
**제공되는 에러 타입 (`ApplicationErrorKind`):**
507507

508508
| 타입 | 설명 |
509509
|------|------|
@@ -523,7 +523,7 @@ Adapter Layer에서 인프라 관련 에러를 표현할 때 사용합니다.
523523
```csharp
524524
// InMemoryProductRepository.cs
525525
using Functorium.Adapters.Errors;
526-
using static Functorium.Adapters.Errors.AdapterErrorType;
526+
using static Functorium.Adapters.Errors.AdapterErrorKind;
527527

528528
public virtual FinT<IO, Product> GetById(ProductId id)
529529
{
@@ -544,10 +544,10 @@ public virtual FinT<IO, Product> GetById(ProductId id)
544544

545545
**생성되는 에러 코드 형식:**
546546
```
547-
AdapterErrors.InMemoryProductRepository.NotFound
547+
Adapter.InMemoryProductRepository.NotFound
548548
```
549549

550-
**제공되는 에러 타입 (`AdapterErrorType`):**
550+
**제공되는 에러 타입 (`AdapterErrorKind`):**
551551

552552
| 타입 | 설명 |
553553
|------|------|

0 commit comments

Comments
 (0)