작성
·
257
0
안녕하십니까 강사님 너무 좋은강의를 올려주셔서 참 행복하게 듣고있습니다!
다름아니라 MSA 서버 구성이 모든 client 요청은 apigateway를거쳐 (실습에서는 8000번 포트를 사용하였습니다)
user-service 나 order-service 등으로 매핑값에 맞는 노선의 서버로 찾아가 response 를 받아오는 로직으로 진행되는데
포스트맨을 이용하지않고 실제로 화면단 즉 View 단을 구성하였을때는 그 View 단을 어디에다가 만들어야 하는것인지 궁금합니다.
예를들어 user-service view 단에서 order-service 가 제공하는 주문목록을 가져 오고싶을때 ajax url 에
http://localhost:8000/order-service/{userName}/users 이런식으로 적을 수 는 없을것같습니다.
user-service 에 존재하는 html View 단에서 order-service 서버가 갖고있는 정보를 얻고자 할때 어떤식으로 url 매핑을 해줘야 할지 궁금합니다.
혹은 user-service 또는 order-service 에 view 단을 구성하는것이 아니라면 View 단을 어느 서버에 구축하는것이 효율적인 것인지 여쭤보고싶습니다.
초급개발자의 바보같은 질문 올려봅니다.
답변 1
0
안녕하세요, 이도원입니다.
마이크로서비스의 특징 중에 Polyglot이라는 특징이 있습니다. 다양한 언어와 다양한 스토리지를 사용하여 목적에 맞는 서비스를 개발하자는 패러다임입니다. 말씀하신 것 처럼 user-service와 order-service를 용도에 맞게 개발하셨고, 이들은 모두 서버 사이드에서 처리되어야 하는 로직(비즈니스 로직 포함)을 처리하게 됩니다. View을 가지게 되는 Frontend 처리는, 별도의 애플리케이션을 따로 구현하셔도 됩니다. 최근에 Vue.js난 React 등으로 개발되는 경향이 많습니다. 해당 Frontend에서 http://localhost:8000/order-service/{userName}/users 와 같이 정보를 요청하고, 반환 값을 처리하면 됩니다. 마이크로서비스 간의 통신은 RESTful API외에도 gRPC, GraphQL과 같은 방법을 사용할 수 있으며, 서비스의 성격이나 중요시 되는 기능에 따라 구분해 사용하시면 되는데, 지금까지 이기종 간에 통신에는 RESTful API가 많이 사용되어 왔습니다.
View는 user-service또는 다른 애플리케이션의 형태로 개발할 수 있습니다.
감사합니다.