Services & Dependency Injection
Services, @Injectable, providedIn, dependency injection, hierarchical injectors, injection tokens, providers
1Angular에서 service란 무엇인가요?
Angular에서 service란 무엇인가요?
답변
service는 @Injectable로 데코레이트된 TypeScript 클래스로, 비즈니스 로직이나 공유 데이터를 캡슐화합니다. service는 재사용 가능한 로직을 컴포넌트에서 추출하여 관심사 분리 원칙을 따릅니다. Angular의 dependency injection 시스템을 통해 다른 클래스에 주입될 수 있어 코드의 모듈성과 테스트 가능성을 향상시킵니다.
2Angular에서 클래스를 injectable하게 만드는 데코레이터는 무엇인가요?
Angular에서 클래스를 injectable하게 만드는 데코레이터는 무엇인가요?
답변
@Injectable 데코레이터는 클래스가 Angular의 dependency injection 시스템에서 service로 사용되기 위해 필수입니다. 이 데코레이터는 Angular가 service의 의존성을 해결하는 데 필요한 메타데이터를 생성할 수 있게 합니다. @Injectable이 없으면 TypeScript 컴파일러는 injection에 필요한 타입 정보를 보존하지 않아 런타임 오류를 발생시킵니다.
3기본 service를 생성하는 올바른 구문은 무엇인가요?
기본 service를 생성하는 올바른 구문은 무엇인가요?
답변
Angular service를 생성하는 완전한 구문에는 @angular/core에서 Injectable 데코레이터를 임포트한 다음 providedIn 옵션과 함께 클래스에 적용하는 것이 포함됩니다. 이 최신 구성은 service를 애플리케이션의 루트 injector에 자동으로 등록합니다. providedIn: 'root' 옵션은 tree-shaking을 가능하게 하고 전역 싱글톤을 보장하므로 모범 사례입니다.
@Injectable의 providedIn: 'root'는 무엇을 의미하나요?
컴포넌트에 service를 어떻게 주입하나요?
+17 면접 질문