#service-registry
글
-
Gradle 소스 파헤치기 2: 전체 지도 — 클라이언트와 데몬, 서비스 스코프, 빌드의 세 단계
Gradle 소스를 처음 여는 중급 개발자를 위한 지도입니다. gradle 명령 한 번에 움직이는 프로세스 넷, 데몬 안의 상태 계층(프로세스·세션·빌드 트리·빌드·프로젝트)과 그것에 1:1로 맞물린 서비스 스코프, 초기화·설정·실행 세 단계가 어느 클래스의 어떤 상태인지, 모델(Gradle·Settings·Project·Task)과 실행(실행 계획·노드·실행 엔진)의 큰 그림을 실제 소스와 직접 돌린 예제로 확인하고, 3~12편이 이 지도의 어디를 읽는지 정리합니다.
-
Gradle 소스 파헤치기 4: 서비스 레지스트리 — Gradle 안의 DI 컨테이너
태스크 생성자에 @Inject를 붙이면 FileSystemOperations가 들어오는 것은 누구 덕분일까요. 스코프마다 하나씩 만들어 부모를 따라 서비스를 찾는 DefaultServiceRegistry, @Provides 메서드로 서비스를 선언하는 규칙과 장식(decorator), 처음 찾을 때 만드는 게으른 싱글턴, 서비스가 제 스코프에 있는지 보는 ServiceScopeValidator, 모듈 57개가 스코프마다 서비스를 보태는 GradleModuleServices, 그리고 abstract 게터를 채운 _Decorated 클래스까지, 레지스트리를 빌드 밖에서 직접 써 보고 태스크 생성 스택을 찍어 소스와 함께 확인합니다.