Service는 싱글톤 객체이다. 독립적인 상태와 메소드를 가질 수 있다. 대체로 API 통신 부분을 분리할 때 사용한다. Service는 @Injectable를 통해 정의된다.


Service는 세 가지 역할을 수행하고 있다. API 통신, 상태관리, 헬퍼 이렇게 세 가지의 역할을 수행한다. 각각 폴더 위치를 다르지만 네이밍을 변경했다.


각 역할의 Suffix를 이렇게 변경된다.


- API 통신: API

- 상태관리: Store

- 헬퍼: Helper

기존 Service 컨벤션과 비교하면 이렇다.


- API 통신: ConfigService => ConfigApi

- 상태관리: DashboardService => DashboardStore

- 헬퍼: DateService => DateHelper

네이밍을 변경함으로써 Service의 역할이 기술된다. 역할이 기술되기 때문에 내부 코드를 작성할 때 해당 코드의 역할과 일치하는지 쉽게 알 수 있게 되었다.


탬플릿에만 사용되는 로직인가?

Pipe로 분리

DOM 조작이 중복되는가?

Directive로 중복 해결

Component의 볼륨이 큰가?

Service로 분리하기

Service에서 API 통신 역할을 하는가?

ConfigApi 형태로 Service 분리

Service에서 상태관리 역할을 하는가?

ConfigStore 형태로 Service 분리

Service에서 유틸리티, 헬퍼 역할을 하는가?

ConfigHelper 형태로 Service 분리


# 출처

https://chodragon9.github.io/blog/angular/

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기