스프링부트

핵심은 의존성 주입 (Dependency Injection)

: 디자인 패턴으로 Ioc(Inversion of Control)을 구현하는 방법 중 하나!

<aside> ❓ 의존이란 Todo 목록을 관리하는 TodoService 객체가 있고, 이 객체는 FileTodoPresistence라는 파일에 Todo 목록을 저장할 수 있도록 도와주는 객체를 사용할 때, Todo Service는 FileTodoPersistence 객체 없이는 재 기능을 수행할 수 없다 → Todo Service 는 FileTodoPersistence에 의존한다!

</aside>

<aside> ❓ 의존성 주입 클래스가 의존하는 다른 클래스들을 외부에서 주입시킨다… 한 오브젝트가 의존하는 오브젝트를 생성하는 것이 아니라 외부에서 넘겨받음 (자주 바꾸게 되거나 할 때 이점을 가짐) 방법

단위 테스트에서 가짜 프로젝트 (Mock) 를 주입할 때도 유용

</aside>

스프링 프레임워크는 의존성 주입 컨테이너의 도움을 받아 오브젝트 생성과 관리를 효율적으로 하게 한다

어노테이션이나 XML, 또는 자바 코드를 이용해서 오브젝트(Bean) 사이의 의존성을 명시할 수 있다…

어플리케이션 실행 시 스프링 프레임워크의 IoC 컨테이너라는 오브젝트가 우리가 등록한 오브젝트를 생성 및 관리해준다.

new 키워드를 이용해 일일이 생성하는 직업 필요없고, IoC 컨테이너 오브젝트가 대신 해줌

<aside> ❓ 스프링 부트 Stand-Alone( 홀로 실행 가능한 앱) 프로덕션급의 스프링 기반 애플리케이션 쉽게 구동 가능

Stand-Alone이 아니라면: 톰캣과 같이 웹 서버/서블릿 컨테이너가 필요한 경우…

스프링부트는 임베디드 톰켓이나 제티같은 웹 서버를 애플리케이션 실행 시 함께 실행 및 설정해줌 ⇒ 어플리케이션 실행 자체가 웹 서버

</aside>

스프링 프레임워크와 디스패쳐 서블릿

서블릿 : 클라이언트 요청을 돌려줄 때 동적인 데이터를 반환할 수 있게 도와주는 자바 소프트웨어 컴포넌트!

Http 요청이 서버로 전달되면 웹서버는 받은 요청을 해석해 해당되는 서블릿 클래스를 실행

HttpServlet을 상속하는 서브클래스 만들고 doGet(…) 매서드를 구현해야한다!

여기서