# Annotation 이란?

  - Angular에서는 Annotation 중요 합니다. Annotation에 다라 Class의 역할이 달라지기 때문입니다. 

  - Annotation의 용도는 Class를 어떤 용도로 사용할 것인지를 정해주는 용도 입니다. 

  - Annotation은 class위에 @를 사용해서 정의합니다.

    -> class에 @Component를 사용 하면 해당 class는 Component가 됩니다. 

    -> class에 @NgModule을 사용 하면 해당 class를 Module이 됩니다. 

    -> class에 @Directive를 사용하면 해당 class는 Directive가 됩니다.

  - Annotation은 class의 용도를 좀더 잘 설명하기위해서 metadata를 사용하여 좀더 상세하게 정의합니다.

 

# Annotation : @Injectable

- 기술적으로, @Injectable() decorator는 Service class 자체적으로 종속성이 있을 때 필요하다
- @Injectable() decorator가 있음으로, Angular는 이 두가지 의존성(LoggerService, UserService)의 type을 식별할 수 있게된다.
```

@Injectable()

export class UserContextService { constructor(private userService: UserService, private loggerService: LoggerService){ } }

```

- Angular에서는 모든 Service Class에 @Injectable 을 적용할 것을 권장한다. 그리고 필요한 경우에만 선택적으로 추가하는 방법도 합리적인 방법이라고 말하고 있다.

- 단, @Injectable를 모든 Service class에 필수적으로  적용 해야한다는 것은 아니다.

- 주입된(Injected) service를 소비하는 곳에서는 해당 Service를 만드는 방법을 알 수 없다. 이것을 걱정하지 않아도 된다. 그것은 Service를 만들고 캐시할 수 있는 의존성 주입(Dependency Injection) 작업

 

# 출
- https://doitnow-man.tistory.com/177 [즐거운인생 (실패 또하나의 성공)]

https://visualize.tistory.com/462 [시각화를 배우고 정리합니다]

 

'[DEV] App Dev ∕ Web Front > Framework ∕ Angular' 카테고리의 다른 글

Angular Project와 FullCalendar 통합하기  (0) 2020.08.05
Angular Routing  (0) 2020.08.03
Angular Directive (미완)  (0) 2020.08.03
Angular Project와 adminLTE 테마 통합  (0) 2020.07.27
Angular Pipe(|)  (0) 2020.07.09
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기