빈은 스프링 컨테이너가 관리하는 객체를 의미한다.
xml 파일에 빈을 정의하면 (<bean>) 스프링 컨테이너가 클래스 객체를 만든다.
빈은 맵에 key/value 형태로 저장되고 관리된다.
스프링 컨테이너는 빈의 저장소로 빈을 저장 및 관리(생성, 소멸, 연결)한다.
1. BeanFactory - 빈을 생성하고 연결하는 등 기본 기능을 저장한 인터페이스
2. ApplicationContext - BeanFactory를 확장하여 여러 기능을 추가 정의한 인터페이스
사실상 Spring Container는 ApplicationContext와 거의 동일하다고 보면 된다.

설정을 XML로 하냐 JavaConfing(javafile)로 하냐
웹으로 하냐 웹이 아닌 다른걸로 하느냐에 따라 사용하는게 다르다
요즘은 xml보다는 javaconfig를 많이 사용한다고 한다

톰캣에서 서버는 모든 컨테이너를 표현하는 요소이다.
서비스는 서버내에 있는 중간다리 컴포넌트로, 하나의 엔진과 하나 이상의 커넥터를 묶어놓은 컴포넌트다.
톰캣의 핵심 처리 엔진이다.
특정 서비스의 요청 처리 파이프라인을 나타낸다.
하나의 서비스는 여러 커넥터를 가질 수 있으며, 엔진은 이런 커넥터로부터 요청을 받아 처리하고 적절한 커넥터에 응답을 돌려줘 사용자에게 전달한다.
여러개의 호스트를 관리한다.
호스트는 톰캣 서버에서 www.abc.com과 같은 네트워크 이름과 관련이 있다.
엔진은 여러 호스트를 포함할 수 있고, 각 호스트는 별칭을 지원한다.
(하나의 웹 서비스라고 생각하면 됨)
사용자와의 소통을 담당한다. (사용차의 요청 처리)
톰캣에서는 여러 종류의 커넥트를 사용할 수 있다
웹 어플리케이션을 나타낸다.
한 호스트는 여러 컨텍스트를 포함할 수 있으며, 각 컨텍스트는 고유한 경로를 가진다.