본문으로 건너뛰기
Functorium
검색
Ctrl
K
취소
GitHub
테마 선택
어두운 테마
밝은 테마
자동
언어 선택
English
한국어
Introduction
Architecture Decision Records
Specifications
AX
Samples
Guides
Tutorials
Functorium 튜토리얼
함수형 값 객체 구현
함수형으로 성공 주도 값 객체 구현하기
소개
이 튜토리얼을 읽어야 하는 이유
성공 주도 개발이란?
환경 설정
값 객체 개념
01-basic-divide
기본 나눗셈
02-defensive-programming
방어적 프로그래밍
03-functional-result
함수형 결과 타입
04-always-valid
항상 유효한 타입
05-operator-overloading
연산자 오버로딩
06-linq-expression
LINQ 표현식
07-value-equality
값 동등성
08-value-comparability
값 비교
09-create-validate-separation
Create/Validate 분리
10-validated-value-creation
검증된 값 객체 생성
11-valueobject-framework
ValueObject Framework
12-type-safe-enums
타입 안전 열거형
13-error-code
에러 체계화
14-error-code-fluent
DomainError 헬퍼
15-validation-fluent
Validate Fluent API
16-architecture-test
아키텍처 테스트
검증 패턴
01-bind-sequential-validation
Bind 순차 검증
02-apply-parallel-validation
Apply 병렬 검증
03-apply-bind-combined-validation
Apply+Bind 혼합 검증
04-apply-internal-bind-validation
Apply 내부 Bind 검증
05-bind-internal-apply-validation
Bind 내부 Apply 검증
06-contextual-validation
컨텍스트 기반 검증 (ContextualValidation)
값 객체 패턴
01-simplevalueobject
단순 값 객체
02-comparablesimplevalueobject
비교 가능한 단순 값 객체
03-valueobject-primitive
값 객체
04-comparablevalueobject-primitive
비교 가능한 값 객체
05-valueobject-composite
복합 값 객체
06-comparablevalueobject-composite
비교 가능한 복합 값 객체
07-typesafeenum
유형 값 객체
08-architecture-test
값 객체 아키텍처 테스트
09-unionvalueobject
UnionValueObject
실전 가이드
01-functorium-framework
Functorium 프레임워크 통합
FunctoriumFramework
Functorium 프레임워크 통합
02-orm-integration
ORM 통합 패턴
OrmIntegration
ORM 통합 패턴
03-cqrs-integration
CQRS와 값 객체 통합
CqrsIntegration
CQRS와 값 객체 통합
04-testing-strategies
값 객체 테스트 전략
TestingStrategies
테스트 전략
도메인 예제
01-ecommerce-domain
이커머스 도메인
EcommerceDomain
이커머스 도메인
02-finance-domain
금융 도메인
FinanceDomain
금융 도메인
03-user-management-domain
사용자 관리 도메인
UserManagementDomain
사용자 관리 도메인 값 객체
04-scheduling-domain
일정/예약 도메인
SchedulingDomain
일정/예약 도메인 값 객체
부록
LanguageExt 주요 타입 참조
프레임워크 타입 선택 가이드
용어집
참고 자료
FAQ
소스 생성기 관측 가능성
Source Generator Observability
소개
Source Generator란
02-hello-world-generator
Hello World 생성기
왜 Source Generator인가
04-reflection-vs-sourcegen
Reflection vs Source Generator
프로젝트 개요
기초
개발 환경 설정
02-data-models
프로젝트 구조
03-debugging-setup
Debugging 설정
04-roslyn-architecture
Roslyn 아키텍처
05-syntax-api
Syntax API
06-semantic-api
Semantic API
07-symbol-types
Symbol Type
핵심 개념
01-iincrementalgenerator
IIncrementalGenerator
02-provider-pattern
Provider Pattern
03-forattribute
ForAttributeWithMetadataName
04-incremental-caching
Incremental Caching
05-inamedtypesymbol
INamedTypeSymbol
06-imethodsymbol
IMethodSymbol
07-symboldisplayformat
SymbolDisplayFormat
08-type-extraction
Type 추출
09-stringbuilder-pattern
StringBuilder Pattern
10-template-design
Template 설계
11-namespace-handling
Namespace 처리
12-deterministic-output
Deterministic Output
고급
01-constructor-handling
Constructor 처리
02-generic-types
Generic Type 처리
03-collection-types
Collection Type 처리
04-loggermessage-limits
LoggerMessage.Define 제한
05-unit-testing-setup
Unit Test 설정
06-verify-snapshot-testing
Verify Snapshot Test
07-test-scenarios
Test Scenario
쿡북
01-development-workflow
개발 절차
02-entity-id-generator
Entity ID Generator
03-efcore-value-converter
Value Converter Generator
04-validation-generator
Validation Generator
05-custom-generator-template
Custom Generator Template
결론
요약
다음 단계
부록
개발 환경
API 레퍼런스
Test Scenario Catalog
문제 해결
유스케이스 파이프라인 제약
유스케이스 파이프라인 제약
소개
왜 타입 안전 파이프라인인가
환경 설정
아키텍처 개요
제네릭 변성 기초
01-covariance
공변성 (out)
02-contravariance
반공변성 (in)
03-invariance-and-constraints
불변성과 제약
04-interface-segregation-and-variance
인터페이스 분리와 변성
문제 정의
01-mediator-pipeline-structure
Mediator Pipeline 구조
02-fin-direct-limitation
Fin 직접 사용의 한계
03-ifinresponse-wrapper-limitation
IFinResponse 래퍼 한계
파이프라인 요구사항 정리
응답 인터페이스 계층
01-ifinresponse-marker
IFinResponse 비제네릭 마커
02-ifinresponse-covariant
IFinResponse 공변 인터페이스
03-ifinresponsefactory-crtp
IFinResponseFactory CRTP
04-ifinresponsewitherror
IFinResponseWithError
05-finresponse-discriminated-union
FinResponse DU
파이프라인 제약 패턴
01-create-only-constraint
Create-Only 제약
02-read-create-constraint
Read+Create 제약
03-transaction-caching-pipeline
Transaction/Caching
04-fin-to-finresponse-bridge
Fin→FinResponse 브릿지
실전 유스케이스 예제
01-command-usecase-example
Command Usecase 예제
02-query-usecase-example
Query Usecase 예제
03-full-pipeline-integration
전체 흐름 통합
부록
IFinResponse 계층 참조
제약 조건 vs 대안
ROP 참조
용어집
참고 자료
아키텍처 규칙 테스트
아키텍처 규칙 테스트
소개
왜 아키텍처 테스트인가
ArchUnitNET 소개
환경 설정
클래스 검증기 기초
ClassValidator 기초
01-first-architecture-test
첫 번째 아키텍처 테스트
02-visibility-and-modifiers
가시성과 한정자
03-naming-rules
네이밍 규칙
04-inheritance-and-interface
상속과 인터페이스
메서드/속성 검증
메서드와 프로퍼티 검증
01-method-validation
메서드 검증
02-return-type-validation
반환 타입 검증
03-parameter-validation
파라미터 검증
04-property-and-field-validation
프로퍼티와 필드 검증
고급 검증
01-immutability-rule
불변성 규칙
02-nested-class-validation
중첩 클래스 검증
03-interface-validation
인터페이스 검증
04-custom-rules
커스텀 규칙
실전 패턴
실전 패턴
01-domain-layer-rules
도메인 레이어 규칙
02-application-layer-rules
애플리케이션 레이어 규칙
03-adapter-layer-rules
어댑터 레이어 규칙
04-layer-dependency-rules
레이어 의존성 규칙
05-architecture-test-suites
아키텍처 테스트 스위트
결론
베스트 프랙티스
다음 단계
부록
API 레퍼런스
ArchUnitNET 치트시트
FAQ
CQRS 리포지토리 패턴
CQRS 리포지토리 패턴
소개
왜 CQRS인가
환경 설정
CQRS 패턴 개요
도메인 엔티티 기초
01-entity-and-identity
엔티티와 식별자
02-aggregate-root
애그리거트 루트
03-domain-events
도메인 이벤트
04-entity-interfaces
엔티티 인터페이스
커맨드 리포지토리
01-repository-interface
리포지토리 인터페이스
02-inmemory-repository
인메모리 리포지토리
03-efcore-repository
EF Core 리포지토리
04-unit-of-work
작업 단위
쿼리 패턴
01-queryport-interface
IQueryPort 인터페이스
02-dto-separation
DTO 분리
03-pagination-and-sorting
페이지네이션과 정렬
04-inmemory-query-adapter
인메모리 쿼리 어댑터
05-dapper-query-adapter
Dapper 쿼리 어댑터
CQRS 유스케이스 통합
01-command-usecase
커맨드 유스케이스
02-query-usecase
쿼리 유스케이스
03-fint-to-finresponse
FinT에서 FinResponse로
04-domain-event-flow
도메인 이벤트 흐름
05-transaction-pipeline
트랜잭션 파이프라인
도메인 예제
01-ecommerce-order-management
전자상거래 주문 관리
02-customer-management
고객 관리
03-inventory-management
재고 관리
04-catalog-search
카탈로그 검색
부록
CQRS vs 전통적 CRUD
Repository vs Query 선택
FinT/FinResponse 참조
CQRS 안티패턴
용어집
참고 자료
릴리스 노트 자동화
릴리스 노트 자동화
소개
왜 릴리스 노트인가
자동화 시스템 개요
프로젝트 구조 소개
설정
.NET 10 환경 설정
Claude Code 소개
Git 기초
Claude 명령어
사용자 정의 Command
Command 문법
release-note.md 분석
commit.md 소개
워크플로우
워크플로우 전체 개요
환경 검증 및 준비
데이터 수집
커밋 분석 및 기능 추출
릴리스 노트 작성
검증
구현
파일 기반 앱
System.CommandLine 패키지
Spectre.Console 패키지
AnalyzeAllComponents
ExtractApiChanges
ApiGenerator
TEMPLATE.md 구조
component-priority.json
출력 파일 형식
실습
첫 릴리스 노트 생성
나만의 스크립트 작성
문제 해결 가이드
빠른 참조
부록
용어집
API 레퍼런스
참고 자료
명세 패턴
명세 패턴
소개
왜 명세 패턴인가
환경 설정
명세 패턴 개요
명세 기초
01-first-specification
첫 번째 명세
02-composition
명세 조합
03-operators
연산자 오버로딩
04-all-identity
All 항등원
표현식 명세
01-expression-introduction
표현식 트리 기초
02-expressionspecification-class
ExpressionSpecification 클래스
03-valueobject-primitive-conversion
프리미티브 변환
04-expression-resolver
표현식 리졸버
리포지토리 통합
01-repository-with-specification
명세 기반 리포지토리
02-inmemory-implementation
인메모리 구현
03-propertymap
PropertyMap
04-efcore-implementation
EF Core 구현
실전 패턴
01-usecase-patterns
유스케이스 패턴
02-dynamic-filter-builder
동적 필터 빌더
03-testing-strategies
테스트 전략
04-architecture-rules
아키텍처 규칙
도메인 예제
01-ecommerce-product-filtering
전자상거래 상품 필터링
02-customer-management
고객 관리
부록
명세 vs 대안 비교
안티패턴
용어집
참고 자료
GitHub
테마 선택
어두운 테마
밝은 테마
자동
언어 선택
English
한국어
참고 자료