Services의 기본 이해하기
4.1. Services의 기본 이해하기
이제부터 서비스(Service) 란 무엇인지 알아보도록 하겠습니다. 우리가 일상생활에서 사용하는 서비스란 무엇인가 대접을 받는다, 편의를 위한 도움을 받는다 와 같은 개념으로 사용하고 있습니다. 앵귤러에서 말하는 서비스 또한 이와 크게 다르지 않습니다. 앵귤러에서의 서비스는 각각의 컴포넌트들은 각각 본연의 일(뷰와의 상호작용)에 집중할 수 있도록 공통기능들을 모아놓고 이를 컴포넌트에 제공해주는 역할을 합니다.
이렇게만 설명하면 서비스가 무엇인지 잘 이해가 안될 수 있습니다. 서비스를 어떤 상황에서 사용하는지 예를 들어볼까요?
- 로그서비스
- 피자주문 서비스
- 피자목록 서비스
- 단위환산 서비스
- 날짜변환 서비스
위 예시를 보면 알겠지만, 무엇이든 서비스가 될 수 있습니다. 다만 그 기능은 명확하고 잘 정의된 목적에 따라 설계되어야 합니다. 서버로부터 데이터를 직접 가져오거나, 로그를 출력하거나, 단위를 환산하는 등의 행위를 컴포넌트에 직접 구현하지 않도록 서비스가 이러한 기능들을 수행하도록 구성해야합니다.
개념 설명은 이제 이해되었으니 어떻게 구현해야 할지, 어떤 문법을 사용해야 할지 궁금하실겁니다. 하지만 앵귤러에서는 '이것이 서비스 문법이다.' 라고 명시적으로 제공해주는 문법은 없습니다. 가령 AngularJS에서는 angular.module('ngPizza', []).service(...)
와 같은 서비스 기능을 제공하였지만, Angular로 넘어오면서 이러한 문법이 사라졌습니다.
"지금까지 서비스가 무엇인지 열심히 설명해놓고 구현할 방법이 없다니? 장난해?" 라고 생각하는 독자분들이 계실겁니다. 걱정마세요! 앵귤러는 이전 버전보다 훨씬 간단하게 서비스를 구현할 수 있습니다. 다음 장에서 설명하게 될 DI(Dependency Injection) 를 이용하면 가능합니다.