• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

MSA 각 서비스 분리시에, 공유되는 클래스는 어떻게?

23.02.01 17:04 작성 23.02.01 22:39 수정 조회수 317

1

안녕하세요.

강의에서 , UserService 와 OrderService 가 서비스로 분리되어 있는 상태에서

UserService 에서 OrderService API 호출해서 데이터를 가져올때,

ResponseOrder 클래스를 UserService 프로젝트안에 만드셨던데,

실제 현업에서는 ResponseOrder 를 UserService 와 OrderService 에 중복으로

클래스를 생성하지는 않을 거 같은데요.

서로 다른 프로젝트(UserService 와 OrderService) 에서 공유되는 클래스는 어떻게

관리를 해야하나요.. 프로젝트에 각각 중복해서 클래스를 만들어서

사용하나요?

 

 

답변 1

답변을 작성해보세요.

0

안녕하세요, 이도원입니다.

말씀하신 내용처럼 ResponseOrder 클래스는 user-service, order-service에 생성된 중복 클래스입니다. 다만, 클래스명을 구분해서 각각 생성하고 Response body에 포함 될 저장되는 데이터들만 같다면 어떨까요? 하나의 클래스를 생성해서 라이브러리 식으로 공유하거나, 별도의 공유 서비스를 통해 작업하셔도 되지만, 간단한 파라미터를 공유하는 경우라면 클래스명이 같다고 문제 될거 같지는 않습니다. 실제 저희가 진행하는 프로젝트에서도 클래스명은 달라도, 각각의 서비스에서 입출력 파라미터의 내용은 통일하는 경우(물론 100% 동일하지 않을수도 있습니다)가 많습니다. 만약, ResponseOrder가 아니라, Map<Object, Object>와 같은 Collection이라면 어떨까요? 이것도 공유 클래스가 필요할까요? 그렇지 않을거 같네요. 다른 의견 있으시면 글 남겨 주세요 .

감사합니다.