Spring Container에 대해서

2023. 3. 2. 04:52·Web/Spring

Spring Contanier 란?

 

Spring Container는 IoC(Inversion of Control)을 구현하며, 객체의 생성, 초기화, 연결, 구성, 관리 등의 작업을 담당한다. 즉, Spring Container는 개발자가 객체를 직접 생성하고 관리하는 것이 아니라, 객체 생성과 관리를 Spring Container에 위임함으로써 개발자는 비즈니스 로직에만 집중할 수 있도록 해준다..


 

Spring Container의 타입

BeanFactory

  • Spring IoC의 핵심 인터페이스
  • 가장 기본적인 Spring Container
  • XML 파일을 사용하여 객체를 생성하고 관리
  • Bean의 라이프사이클을 관리하는데 필요한 인터페이스를 제공2

ApplicationContext

  • BeanFactory를 상속한 인터페이스
  • BeanFactory가 제공하는 모든 기능을 포함
  • 다양한 추가 기능을 제공 (메시지 소스 처리, 이벤트 처리, 웹 어플리케이션 컨텍스트 등)
  • XML 파일 또는 JavaConfig를 사용하여 객체를 생성하고 관리

Spring Container의 장단점

Spring Container의 장점

  • 객체 생성과 관리를 위한 코드를 줄일 수 있어 개발 시간을 단축시킵니다.
  • 의존성 주입을 통해 객체 간의 결합도를 낮출 수 있어 유연한 애플리케이션을 개발할 수 있습니다.
  • 스프링에서 제공하는 다양한 모듈을 사용하여 개발을 용이하게 할 수 있습니다.
  • 객체 생성과 관리, 의존성 주입 등을 관리하는 컨테이너를 통해 객체의 라이프사이클을 관리할 수 있습니다.

Spring Container는 Spring Framework의 핵심이며, Spring Framework에서 다양한 기능들을 사용할 때마다 사용된다.

따라서 Spring Container의 이해는 Spring Framework를 사용한 애플리케이션 개발에서 필수적이다.

 


Spring Container의 단점

학습 곡선이 가파르다

  • Spring Container는 학습 곡선이 가파립니다. Spring Framework는 다양한 모듈과 기능을 제공하므로 처음 사용하는 개발자들은 어려움을 느낄 수 있습니다. 또한 Spring Container를 사용하여 객체를 생성하고 관리하는 방식이 다른 프레임워크나 플랫폼과 차이가 있을 수 있어 학습하는 데 시간이 걸립니다.

성능 문제가 발생 가능

  • Spring Container를 사용하면 객체의 생성과 의존성 주입 등의 작업을 컨테이너가 수행하므로 일부분의 성능 저하가 발생할 수 있습니다. 대신 개발자는 Spring Container가 제공하는 다양한 기능들을 사용할 수 있으므로 이러한 성능 저하를 감수해야합니다.

불필요한 코드가 추가

  • Spring Container를 사용하면 의존성 주입 등의 작업을 수행하기 위한 코드가 추가될 수 있습니다. 불필요한 코드가 추가되면 코드의 가독성이 떨어지고 유지보수가 어려워질 수 있습니다.

다른 프레임워크와의 결합도가 높을 수 있다

  • Spring Container를 사용하면 Spring Framework와의 결합도가 높아집니다. 따라서 다른 프레임워크와 결합하는 경우 Spring Container를 사용하는 것이 적절하지 않을 수 있습니다. 이러한 경우에는 다른 프레임워크의 컨테이너를 사용하는 것이 더 적합할 수 있습니다.
저작자표시 (새창열림)

'Web > Spring' 카테고리의 다른 글

[SpringBoot] WebClient  (0) 2026.01.22
[JAVA] 객체지향 프로그래밍(OOP)의 핵심 개념  (1) 2024.04.18
MVC 패턴이란?  (0) 2023.03.21
Spring Framework에 대해서  (0) 2023.03.02
'Web/Spring' 카테고리의 다른 글
  • [SpringBoot] WebClient
  • [JAVA] 객체지향 프로그래밍(OOP)의 핵심 개념
  • MVC 패턴이란?
  • Spring Framework에 대해서
DevelopJJong
DevelopJJong
기록에서 기억까지
  • DevelopJJong
    기록에서 기억까지
    DevelopJJong
  • 전체
    오늘
    어제
    • 분류 전체보기 (62)
      • 프로젝트 (1)
        • 팀 프로젝트 (0)
        • 토이프로젝트 (1)
        • 디스코드 봇 개발 (0)
      • Web (8)
        • Spring (5)
        • Server (1)
      • Knowledge (0)
        • 자료구조 (0)
        • 디자인 패턴 (0)
        • 개발 지식 (0)
      • DBMS (2)
        • Oracle (2)
        • MySQL (0)
      • 알고리즘 (25)
        • 알고리즘 기초 (1)
        • 백준 (22)
        • 프로그래머스 (2)
        • 코드업 (0)
      • Programming Language (9)
        • Java (9)
        • Python (0)
      • 이론 공부 (4)
        • 자료구조 (0)
        • 컴퓨터과학(CS) (1)
        • 이산수학 (0)
        • 네트워크 (3)
      • Tool (8)
        • IntelliJ (6)
        • Git (1)
        • etc. (1)
      • 일상 (0)
        • 맛집 리뷰 (0)
        • 소소한 이야기 (0)
      • 독서 후기 (0)
      • etc. (1)
      • TIL (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

    • 쫑이가 공부하는 공간 (광고 및 수익창출 X)
  • 인기 글

  • 태그

    네트워크 #LAN #랜선 #WAN #근거리 통신망 #원거리 통신망 #인터넷 #네트워크 공부 #프로토콜 뜻 #프로토콜
    생성자만드는법#생성자단축키#인텔리제이
    인터넷 뜻
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
DevelopJJong
Spring Container에 대해서
상단으로

티스토리툴바