(AngularJS) 서비스 생명주기
1. angular.module 객체가 제공하는 메소드 중 하나를 이용하거나 $provide 서비스를 직접 이용해서 서비스를 정의한다.
2. 컴파일 과정에서 서비스는 객체의 생성을 위해 인스턴스 팩토리에 등록된다.
3. 다른코드가 서비스 객체를 요청하면 $injector 서비스가 객체 인스턴스 캐시(instance cache)에 필요한 서비스 객체가 존재하는 지 확인.
만일 객체의 인스턴스가 존재하면 $injector 서비스는 캐시에 등록된 객체를 사용해 서비스가 필요한 곳에 주입.
캐시에 객체가 존재하지 않으면 $injector서비스는 인스턴스 팩토리에 새로운 객체를 요청한다.
이때 팩토리는 새로운 객체를 생성하여 리턴한 후 이 객체를 캐시에 저장해 이후의 객체 요청에 활용한다.
<두 가지 중요한 점>
1. 서비스는 실제로 객체가 필요해지기 전까지 로드되지 않는다.
2. 오직하나의 인스턴스만이 생성되어 애플리케이션 내에서 싱글턴 객체로 활용된다.
2. 컴파일 과정에서 서비스는 객체의 생성을 위해 인스턴스 팩토리에 등록된다.
3. 다른코드가 서비스 객체를 요청하면 $injector 서비스가 객체 인스턴스 캐시(instance cache)에 필요한 서비스 객체가 존재하는 지 확인.
만일 객체의 인스턴스가 존재하면 $injector 서비스는 캐시에 등록된 객체를 사용해 서비스가 필요한 곳에 주입.
캐시에 객체가 존재하지 않으면 $injector서비스는 인스턴스 팩토리에 새로운 객체를 요청한다.
이때 팩토리는 새로운 객체를 생성하여 리턴한 후 이 객체를 캐시에 저장해 이후의 객체 요청에 활용한다.
<두 가지 중요한 점>
1. 서비스는 실제로 객체가 필요해지기 전까지 로드되지 않는다.
2. 오직하나의 인스턴스만이 생성되어 애플리케이션 내에서 싱글턴 객체로 활용된다.
댓글
댓글 쓰기