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이나 객체와의 의존성을 주입받아 사용하므로 코드의 결합도가 낮아지고 유지보수가 쉬워진다