레이어드 아키텍처는 가장 기초적인 제약을 지켜야 한다고 생각한다.가장 기초적인 제약이란 레이어 간 의존 방향은 단방향을 유지해야 한다는 것이다. public User create(UserCreateRequest userCreateRequest) { return userRepository.save(User.from(userCreateRequest)); }위 코드 중 UserCreateRequest는 API(presentation)레이어의 모델이다.API로 들어오는 요청을 Body인 @RequestBody로 매핑하려고 만든 객체인데,하위 레이어인 서비스 컴포넌트로 전달해 서비스에서 이를 사용하고 있다.이는 양방향 의존성이 생겼다는 말이고, 양방향 의존은 순환 참조가 생겼다는 말과 같다..