JAVA의 웹 프레임워크로 JAVA 언어를 기반으로 사용한다. JAVA로 다양한 어플리케이션을 만들기 위한 프로그래밍 틀이라 할 수 있다.
옛날에 비교하면 지금은 JAVA의 활용도가 높아졌고 따라서 프로젝트 규모도 커졌다. JAVA를 이용한 기술은 JSP, MyBatis, JPA 등 여러가지가 있는데 즉, 이 기술들이 프로젝트에 많이 쓰인다고 할 수 있다. Spring은 이 기술들을 더 편하게 사용하기 위해 만들어진 것이다.
프로젝트를 진행하다 보면 아무리 분업을 해도 분명 중복되는 코드가 있기 마련이다. Spring은 이런 중복코드의 사용률을 줄여주고, 비즈니스 로직을 더 간단하게 해줄 수 있다.
Spring을 사용하면 다른 사람의 코드를 참조하여 쓰기 편리한데 이말의 의미는 오픈소스를 좀더 효율적으로 가져다 쓰기 좋은 구조라는 것이다.
위에 글에서 나와있듯이 다른 사람의 코드를 참조하여 사용하기 좋은 구조로 되어있다고하는데 어떤형식으로 참조하기에 그럴까? 그것에대한 답은 아래에있다.
스프링 프레임워크에도 객체를 생성하고 관리하고 책임지고 의존성을 관리해주는 컨테이너가 있는데,
그것이 바로 IoC 컨테이너(Spring 컨테이너) 이다.
인스턴스 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해준다.
객체관리 주체가 프레임워크(Container)가 되기 때문에 개발자는 로직에 집중할 수 있는 장점이 있다.
한마디로 다른 코드를 가져다쓸때 의존성을 낮추고 재사용성을 높이며 테스트하기 편리하며 가독성이 높아지는 4가지의 효과를 가져올수있다는것이다.
그림으로 살펴보도록 하자
위그림들처럼 원래는 new 생성자를 통한 객체생성이 필수였다면 IOC 컨테이너에 있는 객체를 setter로 객체화 construct로 매개변수를 설정해서 사용이 가능하게되는 짱짱맨 인것이다.
이런 짱짱맨을 가능하게한것은 로드존슨
그는대체...