라라벨의 서비스 컨테이너는 도시의 보이지 않는 기반 시설과 같은 역할을 하며, 파이프와 전력선처럼 의존성을 관리합니다. 컨테이너의 역할은 객체의 요구 사항을 충족시키는 것이며, 종종 인스턴스화 과정에서 필요한 의존성을 주입함으로써 이를 수행합니다. 컨테이너는 리플렉션을 사용하여 객체의 요구 사항을 파악한 다음 바인딩을 통해 이를 해결합니다. 바인딩은 의존성이 해결되는 방식을 정의하며, bind, singleton, scoped의 세 가지 주요 유형이 있으며, 각각 다른 수준의 약속을 가집니다. 컨테이너는 자동으로 의존성을 해결하여 객체 계보를 보이지 않는 곳에서 구성합니다. 이메일 클라이언트, 데이터베이스, 사용자 컨텍스트와 같은 다양한 시나리오에서 서로 다른 바인딩 유형이 유용합니다. 이 과정은 서비스 프로바이더가 애플리케이션 부팅 중에 바인딩을 등록하는 것으로 시작됩니다. 요청이 도착하면 라우터는 컨트롤러로 디스패치되며, 컨트롤러는 자동 해결을 통해 의존성을 해결하기 위해 컨테이너에 의존합니다. 마지막으로, 개발자는 의존성에 대한 불안감에서 컨테이너에 대한 자신감과 신뢰로 이어지는 여정을 경험합니다.
dev.to
Laravel Love Story: Getting Intimate with the Service Container
Create attached notes ...
