NYO_O

서버와 서비스 차이가 뭘까? MSA 명칭 정리 본문

IT 용어 사전

서버와 서비스 차이가 뭘까? MSA 명칭 정리

NYO_O 2026. 5. 27. 11:32
반응형

 

명칭이 왜 중요한가

MSA 구조를 처음 설계하다 보면 자연스럽게 이런 고민이 생깁니다. Config를 띄우면 이건 서버인가, 서비스인가. 유레카(Eureka)가 올라가 있는 인스턴스는 어떻게 부르는 게 맞을까. 주문을 처리하는 Order 모듈은 또 어떻고.

처음에는 그냥 "다 서비스 아닌가?" 하고 넘겼습니다. 그런데 팀원과 이야기를 나눌 때마다 같은 단어가 다른 의미로 쓰이고 있다는 걸 알게 됐습니다. "서비스 재시작해"라는 말 한 마디에 "어떤 서비스요?"가 자동으로 따라붙는 상황, 한 번쯤 겪어보셨을 겁니다.

핵심 질문: 인프라 역할을 하는 컴포넌트와, 실제 비즈니스 로직을 담은 컴포넌트를 같은 이름으로 불러도 되는가.

혼란의 출발점 — 모두 "서비스"라고 부르던 시절

MSA를 처음 접할 때 보통 "마이크로서비스"라는 단어부터 배웁니다. 그러다 보니 구조 안에 있는 모든 것에 서비스라는 단어를 붙이는 습관이 생기게 됩니다. Config 서비스, Eureka 서비스, Gateway 서비스, Order 서비스, 전부 서비스입니다.

문제는 이 컴포넌트들이 하는 일이 성격적으로 완전히 다르다는 점입니다. Config나 Eureka는 다른 컴포넌트들이 제대로 동작하기 위해 필요한 인프라 역할을 합니다. 반면 Order나 User는 실제 비즈니스 요구사항을 처리하는 주체입니다. 둘 다 "서비스"라고 부르면 역할의 차이가 이름에서 전혀 드러나지 않습니다.

Spring Cloud 공식 문서

Spring Cloud 공식 문서를 찾아보면 흥미롭게도 명확한 구분이 있습니다.

컴포넌트 공식 명칭 공식 문서 표현

컴포넌트 공식 명칭 공식 문서 표현
spring-cloud-config Config Server Spring Cloud Config Server
spring-cloud-netflix-eureka Eureka Server Eureka Server / Service Registry
spring-cloud-gateway Gateway (Server 계열) Spring Cloud Gateway
비즈니스 모듈 Service (Client) Eureka Client, Config Client

즉, Spring Cloud는 인프라 역할을 하는 컴포넌트에는 일관되게 Server라는 단어를 씁니다. 그리고 이 서버들에 붙어 동작하는 비즈니스 모듈은 Client라고 부릅니다. 서버에 등록되어 서비스를 제공하는 주체라는 의미에서 Service라는 표현도 함께 사용됩니다.

서버 vs 서비스

공식 문서를 참고해 정리하면, 구분 기준은 꽤 직관적입니다.

구분 역할 예시
서버 (Server) 다른 컴포넌트가 동작하기 위한 인프라 제공. 비즈니스 로직 없음. Config Server, Eureka Server, API Gateway
서비스 (Service) 실제 비즈니스 요구사항을 처리. 서버에 등록되어 운영. Order Service, User Service, Payment Service

핵심은 "비즈니스 로직이 있는가"입니다. Config Server는 설정값을 배포하는 역할만 하고, 그 자체로 어떤 비즈니스 요구사항도 처리하지 않습니다. Eureka Server도 마찬가지입니다. 서비스들이 어디에 있는지 알려줄 뿐입니다.

기준: 직접 비즈니스 요구사항을 처리하면 서비스, 다른 컴포넌트의 운영을 지원하면 서버로 구분하는 것이 좋습니다.

적용 예시

모듈 명칭 이유
config-server Config Server Spring Cloud 공식 명칭 그대로 사용
eureka-server Eureka Server 동일
api-gateway Gateway (서버 계열) 라우팅 인프라 역할
order-service Order 서비스 비즈니스 로직 처리 주체
user-service User 서비스 동일

이렇게 정리하고 나니 커뮤니케이션이 훨씬 명확해졌습니다. "Config Server 재시작해"와 "Order 서비스 재시작해"는 더 이상 헷갈리지 않습니다. 이름 하나가 역할을 설명해주기 때문입니다.

마무리

오늘은 MSA 구조에서 자주 혼용되는 서버와 서비스라는 명칭을 어떻게 구분할 수 있는지 살펴보았습니다. Spring Cloud 공식 문서의 표현을 기준으로 삼으면 인프라 역할을 하는 컴포넌트는 Server, 비즈니스 로직을 담은 컴포넌트는 Service로 구분하는 것이 일관성 있고 혼란도 줄어듭니다.

반응형