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 분리
# 출처
'[DEV] App Dev ∕ Web Front > Framework ∕ Angular' 카테고리의 다른 글
NestJs+TypeOrm B+ 앱 만들기 (0) | 2020.10.12 |
---|---|
기초 Tip 기록 (0) | 2020.09.21 |
[예제로 배우는 Angular] 재사용가능한 Component - avatar image (0) | 2020.09.01 |
[라이브러리]Gridjs : Typescript 기반 게시판 모듈 (0) | 2020.08.24 |
[라이브러리]Akita : JS 어플리케이션을 위한 State관리 (0) | 2020.08.20 |
최근댓글