<aside> ▪️ 2024. 2. 2 (금) 오후 17시 00분~오후 17시 30분 - 권태관 멘토님
</aside>
<aside> 💡 프로젝트 매니징을 위해 사용 언어, 역할 분담, 프로젝트 진행 현황 등을 우선적으로 공유해주세요
✔️ 원활한 멘토링을 위해 미리 작성해주시면 감사드리겠습니다❗ ✔️ 필요시 이미지/링크/파일 등을 활용해도 좋습니다. ✔️ 멘토링 종료 후, 해당 템플릿을 수정/삭제 하지 말아주세요. 🚫
</aside>
<aside> ▪️ 프로젝트 깃허브 링크 https://github.com/Kernel360/f1-Orury-Backend (백엔드) https://github.com/Kernel360/f1-Orury-Client (프론트엔드_Client) https://github.com/Kernel360/f1-Orury-Admin (프론트엔드_Admin)
</aside>
<aside> 💡 ✔️ 질문 내용이나 갯수에는 제한이 없습니다:) ✔️ 효과적인 멘토링을 위해 히스토리, 요청사항 등을 최대한 상세하게 작성해주세요.
</aside>
질문 1
Nginx를 활용한 설계 질문
현재 아래와 같이 하나의 ec2 인스턴스에서 포트로 프론트와 백을 분리 처리하고 있습니다.
이제 프론트와 백 인스턴스를 구분한다면, 아래와 같이 구성이 되어야 할 것 같은데,
이렇게 총 3개의 인스턴스를 두는게 맞는건지 잘 모르겠어서, 옳게 된 설계인지 질문드립니다.
같은 계층 안에 있는 Service를 다른 Service가 의존한다면, 이와 같은 의존이 많아질 경우 순환참조가 발생한다는 이슈가 있는 걸로 알고 있습니다.
Service에서 (Facade 패턴을 적용된) 아래 코드와 같이 Service에서 Service의 메서드를 호출하는 것은, ~Facade라는 Service계층과 ~Service라는 Service계층을 분리시켰기 때문에 합리적인 것일까요?
@Slf4j
@Service
@RequiredArgsConstructor
public class OrderFacade {
private final OrderService orderService;
private final NotificationService notificationService;
public String registerOrder(OrderCommand.RegisterOrder registerOrder) {
var orderToken = orderService.registerOrder(registerOrder);
notificationService.sendKakao("ORDER_COMPLETE", "content");
return orderToken;
}
public OrderInfo.Main retrieveOrder(String orderToken) {
return orderService.retrieveOrder(orderToken);
}
public void paymentOrder(OrderCommand.PaymentRequest paymentRequest) {
orderService.paymentOrder(paymentRequest);
notificationService.sendKakao(null, null);
}
}