Angular를 개발할 때 애매하게 이해하고 당연하게 되니까라고 생각하고 넘어갔던, DI, 모듈과 컴포넌트, 트리셰이킹, 지연 로딩을 예제를 다시 보며 하나하나 깨부수자고 생각했다.
ModuleInjector는 두가지 방법으로 설정할 수 있습니다:
- @Injectable() 데코레이터의 providedIn 프로퍼티에 @NgModule()이나 root를 지정합니다.
- @NgModule의 providers 배열을 사용합니다.
트리 셰이킹(tree-shaking)과 @Injectable()
@NgModule()에 providers를 등록하는 방법보다는 @Injectable()의 providedIn 프로퍼티를 사용하는 방법을 더 권장합니다. @Injectable()의 providedIn 프로퍼티를 root로 설정하면 최적화 툴이 트리 셰이킹 대상인지 검사하고 사용되지 않는 빌드 결과물에서 제거하기 때문에 빌드 결과물의 크기를 더 줄일 수 있습니다.
라는데 왜 이렇게 해야하는지를 아래 글을 보고 따라하면서 확인해보고자 한다.
그러면
등도 다시 정리하고 바로바로 찾을 수 있는 링크 모음집으로 만들고자 한다.
포스팅이 추가되면 위의 링크들이 공식 가이드가 아닌 블로그 글로 차곡차곡 쌓이겠죠?