중복된 코드가 컴포넌트마다 있을때 중앙집중화를 하여 코드를 간결하게 만든다.
데이터 저장하고 관리하기 위해서 만든다.
그냥 최고다.
만약에 App Module이나 App Component에 서비스를 주입하였더라도 그 아래 단일 컴포넌트에 서비스를 주입하면 인스턴스를 덮어쓸 수도 있다.
다른 컴포넌트나 디렉티브처럼 데코레이터가 없기 때문에 주입 받는 서비스에 @Injectable()을 사용한다.
서비스에 서비스를 주입하기 위해선 AppModule에 주입하는 서비스를 추가해야 한다.
서비스에서 EventEmitter로 이벤트를 발생시키고, 1번 컴포넌트에서는 emit(변수)로 해당 이벤트를 내보낸다. 2번 컴포넌트에서는 .subscribe()로 해당 이벤트를 구독해서 사용하면 된다.
이벤트 이미터는 결국 옵저버블을 래핑하기 때문에 .subscribe를 사용한다.