
Symfony 아키텍처
Hexagonal architecture, DDD, CQRS, repositories, DTOs, value objects, bounded contexts
1hexagonal architecture에서 ports의 주요 역할은 무엇입니까?
hexagonal architecture에서 ports의 주요 역할은 무엇입니까?
답변
ports는 비즈니스 도메인과 외부 세계 사이의 계약을 정의하는 인터페이스입니다. primary ports(또는 driving ports)는 외부 행위자가 도메인 내 작업을 트리거할 수 있게 하고, secondary ports(또는 driven ports)는 도메인이 데이터베이스나 서드파티 서비스 같은 외부 인프라와 상호작용할 수 있게 합니다. 이 추상화 덕분에 비즈니스 도메인에 영향을 주지 않고 구현을 변경할 수 있습니다.
2Symfony hexagonal architecture에서 adapter란 무엇입니까?
Symfony hexagonal architecture에서 adapter란 무엇입니까?
답변
adapter는 외부 세계와 domain을 연결하는 port의 구체적인 구현입니다. 예를 들어 DoctrineUserRepository는 UserRepositoryInterface port를 구현하는 adapter입니다. primary 측에서는 Symfony controller가 HTTP 요청을 domain의 use case로 적응시키는 adapter입니다. 이러한 분리 덕분에 infrastructure와 독립적으로 domain을 테스트할 수 있습니다.
3Domain-Driven Design에서 Value Object의 주요 특징은 무엇입니까?
Domain-Driven Design에서 Value Object의 주요 특징은 무엇입니까?
답변
Value Object는 식별자가 아니라 속성에 의해 정의됩니다. 동일한 값을 가진 두 Value Object는 동등한 것으로 간주됩니다. 이들은 불변이며, 어떤 변경이든 새로운 인스턴스를 생성합니다. 예를 들어 Email이나 Money 객체는 전형적인 Value Object입니다. 이러한 불변성은 데이터 일관성을 보장하고 복잡한 시스템에서 코드를 추론하기 쉽게 만듭니다.
DDD에서 Aggregate Root의 역할은 무엇입니까?
DTO(Data Transfer Object)란 무엇이며 Symfony에서는 언제 사용합니까?
+21 면접 질문