-
-
Notifications
You must be signed in to change notification settings - Fork 0
Ok JaeOok edited this page Jul 1, 2024
·
2 revisions
헥사고날 아키텍처를 참고하여 멀티모듈 프로젝트를 구성
:app/
├── src/
│ └── App.java
└── resources/
├── static.assets
├── db.migration
└── templates
:domain/
├── base
├── common
├── community
├── dictionary
└── member
:infrastructure/
├── :external/
│ ├── cache
│ ├── database
│ ├── extract
│ ├── scheduler
│ ├── search
│ ├── storage
│ └── ui
└── :internal/
├── handler
├── persistence
├── security
└── ui
:usecase/
├── port
└── request
CQS 패턴을 적용하여 Command와 Query를 분리
@Validated
@PrimaryPort
public interface MemberCommand {
boolean addMember(@Valid AddMember command);
boolean updateMember(@Valid UpdateMember command);
boolean removeMember(@Valid RemoveMember command);
}
@Validated
@PrimaryPort
public interface MemberQuery {
@Validated(GetMemberValid.class)
@Valid Member getMember(@Valid GetMember query);
}
- Palantir 코드 스타일 강제 + Sonarlint 준수
- 깃 브랜치 전략 밋 커밋 컨벤션 X