API 란? API란 개발자와 API 제공자 사이에 프로그램을 작성하기 위해 만든 규약(Protocol)이자 계약(Contract)이다. 더 자세히 들어가면 API는 Application Programming Interface의 약자로 개발자가 Application을 Programming하기 위해 만든 인터페이스이다. 개발자는 API 제공자가 정의한 프로토콜을 이용해 API 제공자가 정의한 기능을 사용할 수 있다. *인터페이스 : 외부에 공개되는 프로토콜 헷갈리지 말아야 할 것은 API는 인터페이스이므로 API는 그 자체로는 실제 어떻게 동작하는지에 대한 구현이 들어가지 않으며, API 제공자가 구현을 한다. 개발자는 API에서 제공하는 기능을 가져다 쓸 뿐이고, API 제공자는 API를 구현해 실제로..
Application
지금까지는 하나의 컴포넌트만 사용하였다. 하지만, 안드로이드 프레임워크 같은 곳에서는 여러 컴포넌트들 간에 의존 관계가 필수적이다. 어플리케이션은 여러 액티비티(Activity)를 포함하며, 각 액티비티는 여러 프레그먼트(Fragment)를 포함할 수 있다. 즉, 각 Component들은 의존 관계가 생긴다. 따라서 의존 관계가 있는 컴포넌트는 상위 컴포넌트에 대한 참조를 포함해야 한다. Dagger2에서는 이를 위해 모듈에 포함할 수 있고, 상위 프로바이더를 사용할 수 있는 서프컴포넌트를 제공한다. 서브 컴포넌트(SubComponent) 서브 컴포넌트란 어떤 컴포넌트의 하위에 포함되는 컴포넌트를 뜻한다. 정확히는 모듈 내부에 포함되는데, 이를 통해 해당 서브컴포넌트는 부모 모듈과 컴포넌트의 프로바이더를..