<TIL> 125. List, Set, Map, HashMap / Spring Container

YUJIN LEE·2023년 6월 2일
0

개발log

목록 보기
116/149

List, Set, Map, HashMap의 차이

List

  • 순서가 있는 데이터 컬렉션
  • 데이터를 중복으로 저장 가능
  • 인덱스를 사용해 원하는 위치의 데이터에 직접 접근 가능

Set

  • 순서가 없는 데이터 컬렉션
  • 데이터의 중복을 허용X
  • 주로 데이터의 존재 여부를 확인하기 위해 사용

Map

  • 키-값(Key-value)쌍으로 데이터를 저장하는 자료구조
  • 중복 허용X
  • 순서 유지 X
  • 각 키는 유일해야 하며, 키를 통해 값을 검색하거나 업데이트

HashMap

  • Map 인터페이스를 구현한 가장 일반적으로 사용되는 클래스
  • Map Interface를 Implements한 클래스로 중복 허용X
  • Map의 특징인 Key-Value 쌍으로 이루어지며, Key 또는 value 값으로 Null 허용.
  • 데이터를 해시 함수를 사용하여 저장하고 검색
  • 데이터의 순서를 보장하지 않음

스프링 컨테이너(Spring Container)에 대해 설명해주세요.

Spring Container는 스프링 프레임워크의 핵심 컴포넌트
객체의 생성, 관리, 및 의존성 주입(Dependency Injection)을 담당하는 역할

스프링 컨테이너는 애플리케이션을 구성하는 객체들을 생성하고,
객체 간의 의존성을 해결하여 객체들을 조립하고 관리.

이는 개발자가 객체의 생성과 라이프사이클 관리에 대한 부분을 스프링 컨테이너에 위임해 개발자가 비즈니스 로직에 집중할 수 있도록 도움

Spring Container는 빈(Bean)이라고 불리는 객체를 생성하고 관리.
Bean은 스프링 컨테이너에 등록되어 컨테이너에 의해 생성되고 관리되는 객체를 의미.
Bean은 XML, 어노테이션 or 자바 설정 파일을 통해 정의,
스프링 컨테이너는 이러한 빈의 설정 정보를 기반으로 객체를 생성하고 필요한 의존성 주입.

-> 스프링 컨테이너는 자바 객체의 생명주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능 제공.
스프링에서는 자바 객체를 빈(Bean)이라고 함.

즉, 스프링 컨테이너는 내부에 존재하는 빈의 생명주기를 관리(생성, 관리 제어 등)하며,
생성된 빈에게 추가적인 기능을 제공

Spring Container는 Beanfactory와 ApplicationContext 두 종류의 인터페이스로 구현

빈팩토리 -> 빈의 생성과 관계 설정 같은 제어를 담당하는 IoC 오브젝트

애플리케이션 컨텍스트 - 빈 팩토리를 좀 더 확장한 것. IoC 방식을 따라 만들어진 일종의 빈팩토리.

주로 사용되는건 애플리케이션 컨텍스트.

BeanFactory

스프링 컨테이너의 최상위 인터페이스
빈을 등록, 생성, 조회 등의 빈을 관리하는 역할.
getBean() 메서드를 통해 빈을 인스턴스화함.
@Bean 어노테이션이 붙은 메서드의 이름을 스프링 빈 이름으로 사용해 빈 등록.

ApplicationContext

BeanFactory의 기능을 상속받아 제공.
빈을 관리하고 검색하는 기능은 BeanFactory, 그 외의 부가 기능 제공.

  • 부가 기능

MessageSource: 메시지 다국화를 위한 인터페이스

EnvironmentCapable: 개발, 운영, 환경변수 등으로 나누어 처리, 애플리케이션 구동 시 필요한 정보들을 관리하기 위한 인터페이스

ApplicationEventPublisher: 이벤트 관련 기능을 제공하는 인터페이스

ResourceLoader: 파일, 클래스 패스, 외부 등 리소스 편리하게 조회

profile
인정받는 개발자가 되고싶습니다.

0개의 댓글