네이버와 같은 사이트를 하나의 서비스 단위로 개발을 한다고 해보자. 블로그, 카페, 뉴스 등의 기능들을 하나의 애플리케이션에 통합한다는 것이다. 만약 이렇게 구성한다면 서버를 업데이트하거나 애플리케이션을 유지보수할 때마다 '유지 보수 중입니다~'라는 말을 내걸고 작업을 해야 한다. 즉, 개발에 보수적인 입장을 취할 수 밖에 없고, 서비스 자체의 규모도 커져 서비스를 구동하는 데 걸리는 시간도 걸린다는 것이다.
위와 같은 문제를 해결하기 위한 것이 '마이크로서비스 아키텍처(MSA : Microservice Architecture)'이다.
마이크로서비스 아키텍처는 말 그대로 서비스 규모를 작게 나누어 구성한 아키텍처를 뜻한다. 따라서 네이버 같은 사이트에 마이크로서비스 아키텍처를 적용하면 애플리케이션 하나에 여러 기능을 넣어 개발하는 것이 아닌, 블로그 프로젝트, 카페 프로젝트, 메일 프로젝트 등 애플리케이션을 기능별로 나눠서 개발하게 되는 것이다.
하지만 서비스 기능별로 구분해서 독립적인 애플리케이션을 개발하게 되면 각 서비스 간에 통신을 해야한다. 메일 기능을 사용하기 로그인 서비스를 거치는 경우를 생각해보면 된다. 이런 상황에서의 통신을 '서버 간 통신' 이라고 한다.
'서버 간 통신'은 서버가 다른 서버에 통신을 요청하는 것을 의미한다. 한 대는 '서버', 다른 한 대는 '클라이언트'가 되는 구조이다.
여러가지 프로토콜에 의해 다양한 통신 방식을 적용할 수 있는데, 가장 많이 사용되는 방식은 HTTP/HTTPS 방식이다.