Study/JAVA

01 / JVM 메모리 영역, Servlet, 스프링 Bean

gkkwlsl 2024. 9. 26. 20:37

 

JVM 메모리 영역

  • 메서드 영역
    • 클래스가 로딩될 때 할당된다
    • 패키지, 클래스, 인터페이스, 필드, 생성자, 메서드, 변수 등을 저장
    • 모든 스레드가 공유
  • Heep 영역
    • 런타임 시에 동적으로 할당
    • new 키워드로 생성된 객체와 배열에 저장되는 영역
    • garbage collector가 참조하지 않는 메모리를 제거
  • stack 영역
    • 스레드가 시작될 때 할당
    • 지역변수, 파라미터, 리턴값, 연산에 사용되는 값이 생성되는 영역
    • 메서드를 호출할 때마다 개별적으로 스택이 생성되며 종료시 해제
    • 선입선출

 

 

 

Servlet

  • 서버 측에서 HTTP 요청을 처리하고 클라이언트에 응답을 반환하는 Java 기반의 프로그래밍 기술
  • 웹 애플리케이션의 비즈니스 로직을 구현하는데 주로 사용된다 
  • Java 지원 웹 서버 또는 서블릿 컨테이너(Tomcat, Jetty 등)에서 실행된다 
  • MVC(Model-View-Controller) 아키텍처에서 주로 Controller 역할을 담당하여 코드의 구조를 명확히 하고 유지보수를 용이하게 합니다
  • JAVA thread를 이용하여 동작한다

 

 

 

Spring Bean

  • Spring IoC 컨테이너가 관리하는 자바 객체 = Bean
  • IoC 컨테이너에서 관리: Spring의 IoC 컨테이너가 객체의 생성과 의존성 주입을 관리하여, 개발자는 객체 간의 의존성을 직접 관리할 필요 없음 
  • 라이프사이클 관리: Bean은 생성, 초기화, 사용, 소멸 등의 라이프사이클이 IoC 컨테이너에 의해 자동으로 관리되며, 필요할 때 컨테이너가 Bean을 제공
  • 의존성 주입(Dependency Injection): Spring Bean은 다른 Bean이나 객체와의 의존성을 주입받아 사용하므로 코드의 결합도가 낮아지고 유지보수가 쉬워진다