본문 바로가기
java

컴포넌트, 컴포지트, 컨텍스트, 컨테이너

by 포잉띠 2024. 7. 23.

이런 왜이렇게 이름이 비슷한가요!!!!!!!!!!!!!!!!!!!!!!!!!

 

기록용 + 컨닝페이퍼용으로 저장해두기로 했다.

GPT햄에게 요약을 맡겼다.

컨테이너 (Container)

  • 정의: 객체의 생명주기와 의존성을 관리하는 시스템입니다.
  • 예시:
    • Spring IoC 컨테이너: 애플리케이션의 빈(bean)을 생성하고, 그 빈들의 의존성을 주입하며, 빈의 생명주기를 관리합니다.
    • Servlet 컨테이너: 서블릿의 생명주기와 요청/응답을 관리합니다.
  • 역할:
    • 객체를 생성하고 관리합니다.
    • 의존성을 주입합니다.
    • 객체의 생명주기를 관리합니다.

컴포넌트 (Component)

  • 정의: 독립적으로 실행 가능한 모듈로, 시스템의 특정 기능을 담당합니다.
  • 예시:
    • Spring 컴포넌트: @Component 어노테이션을 사용하여 Spring 컨테이너에 의해 관리되는 빈(bean)을 정의합니다.
    • UI 컴포넌트: 버튼, 텍스트 필드, 체크박스 등과 같은 그래픽 사용자 인터페이스(GUI) 요소들입니다.
  • 역할:
    • 시스템의 특정 기능을 담당합니다.
    • 재사용 가능하고 독립적으로 실행됩니다.

컨텍스트 (Context)

  • 정의: 애플리케이션 환경 설정이나 상태를 포함하는 객체로, 실행 중인 애플리케이션의 정보와 자원을 제공합니다.
  • 예시:
    • Spring ApplicationContext: 애플리케이션의 설정 정보를 포함하고, 빈을 생성 및 관리하며, 의존성을 주입합니다.
    • ServletContext: 웹 애플리케이션의 설정 정보를 포함하고, 서블릿 간의 데이터를 공유합니다.
  • 역할:
    • 애플리케이션의 환경 설정을 제공합니다.
    • 애플리케이션의 상태와 자원을 관리합니다.

컴포지트 (Composite)

  • 정의: 객체들을 트리 구조로 구성하여 개별 객체와 그 객체의 집합을 동일하게 취급할 수 있도록 하는 디자인 패턴입니다.
  • 예시:
    • 컴포지트 패턴: 파일 시스템에서 파일과 디렉토리를 동일한 방식으로 다루는 것처럼, 개별 객체와 복합 객체를 동일하게 다루는 디자인 패턴입니다.
  • 역할:
    • 개별 객체와 복합 객체를 동일하게 다룰 수 있도록 합니다.
    • 트리 구조로 객체를 구성하여 복잡한 계층 구조를 단순화합니다.

요약

  1. 컨테이너 (Container):
    1. 목적: 객체의 생명주기와 의존성을 관리합니다.
    2. 예시: Spring IoC 컨테이너, Servlet 컨테이너
  2. 컴포넌트 (Component):
    1. 목적: 독립적으로 실행 가능한 모듈로, 시스템의 특정 기능을 담당합니다.
    2. 예시: Spring 컴포넌트, UI 컴포넌트
  3. 컨텍스트 (Context):
    1. 목적: 애플리케이션 환경 설정이나 상태를 포함하는 객체로, 실행 중인 애플리케이션의 정보와 자원을 제공합니다.
    2. 예시: Spring ApplicationContext, ServletContext
  4. 컴포지트 (Composite):
    1. 목적: 객체들을 트리 구조로 구성하여 개별 객체와 그 객체의 집합을 동일하게 취급할 수 있도록 합니다.
    2. 예시: 컴포지트 패턴 (파일 시스템에서 파일과 디렉토리를 동일하게 다루는 것처럼)