(AngularJS) 서비스 생명주기

1. angular.module 객체가 제공하는 메소드 중 하나를 이용하거나 $provide 서비스를 직접 이용해서 서비스를 정의한다.

2. 컴파일 과정에서 서비스는 객체의 생성을 위해 인스턴스 팩토리에 등록된다.
3. 다른코드가 서비스 객체를 요청하면 $injector 서비스가 객체 인스턴스 캐시(instance cache)에 필요한 서비스 객체가 존재하는 지 확인.
만일 객체의 인스턴스가 존재하면 $injector 서비스는 캐시에 등록된 객체를 사용해 서비스가 필요한 곳에 주입.
캐시에 객체가 존재하지 않으면 $injector서비스는 인스턴스 팩토리에 새로운 객체를 요청한다.
이때 팩토리는 새로운 객체를 생성하여 리턴한 후 이 객체를 캐시에 저장해 이후의 객체 요청에 활용한다.



<두 가지 중요한 점>
1. 서비스는 실제로 객체가 필요해지기 전까지 로드되지 않는다.
2. 오직하나의 인스턴스만이 생성되어 애플리케이션 내에서 싱글턴 객체로 활용된다.



댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기