개발기록
Spring 개요 본문
1. 스프링 프레임워크
스프링 프레임워크는 주요기능으로 DI, AOP, MVC, JDBC(프로그래밍에 있어 어떠한 구조를 만들어가는 방법론)등을 제공한다.
스프링 프레임워크는 자바를 기반으로 만든 프레임워크이다. 주로 웹 어플리케이션 개발에 이용된다.
* 여기서 프레임워크란?
어떠한 프로그램을 만들기 위한 기본 틀이라고 생각하면 된다.
개발자들이 개발을 하기위해 어떠한 업무를 추상적으로 사전 정의해놓은 틀이다.
개발자는 이 틀 안에서 구현하면 된다.
예를 들어, 내가 어떠한 작업을 해야할때, 아무 어시스트 없이 하게 된다면 처음부터 어떻게 작업해야할지 막막하지만,
틀이 이미 생성되어 있어 그 틀의 형태대로 개발하게 된다면 훨씬 수월할 것이다.
하나의 예 : 컴퓨터 본체를 조립하는 회사라고 가정할때,
1) 메인보드내 CPU 장착
2) 메인메모리 장착
3) 하드디스크 장착
4) 외관 덮개 장착
등 이와 같이 본체를 조립하기위해 일련의 과정 또는 틀을 프레임워크라고 생각하면 훨씬 이해하기 쉽다.
이러한 틀 안에서, 내가 추가로 필요한 기능만 부가적으로 개발하면 탄탄한 웹 어플리케이션이 된다(!)
++ 추가로 라이브러리에 대해서 알아보자
라이브러리란 재사용이 가능한 필요 기능으로, 반복적인 코드작성을 없애기 위해 언제든지 필요한 곳에서 호출하여 사용할 수 있도록 Class 혹은 Function으로 만들어진 것을 뜻한다.
라이브러리를 사용하면 프로그래밍 시간을 줄여 생산성을 향상시킬 수 있고, 코드의 중복을 줄여 가독성과 유지보수를 향상시킬 수 있다.
정리하자면, 프레임워크는 내가 개발하기위해 지켜야하는 툴이라고 생각하면 되고, 라이브러리는 내가 개발하기위해 필요로 하는 미리 구현되어있는 대상을 뜻한다.
참고 : https://galid1.tistory.com/191
2. 스프링 프레임워크 모듈
앞서 위에서 스프링 프레임워크는 어떠한 프로그램을 구현하기위해 추상적으로 구현해놓은 틀이라고 하였다.
이 틀을 스프링 프레임워크 내에서는 모듈이라고 부른다.
스프링 모듈 | 기능 |
spring-core | 스프링의 핵심인 DI(Dependency Injection)와 IoC(Inversion of Control) 제공 |
spring-aop | AOP구현 기능 제공 |
spring-jdbc | DB를 쉽게(적은양의 코드) 다를 수 있는 기능 제공 |
spring-tx | 스프링에서 제공하는 트랜잭션 관련 기능 제공 |
spring-webmvc | 스프링에서 제공하는 컨트롤러(Controller)와 뷰(View)를 이용한 스프링 MVC 구현 기능 제공 |
스프링 프레임워크에서 제공하는 모듈을 사용하기 위해서는, 모듈에 대한 의존설정을 개발 프로젝트에 XML파일 등을 이용하여 직접 개발하면 된다.
3. IoC 컨테이너
스프링에서 객체를 생성하고 조립하는 컨테이너(container)로,
컨테이너를 통해 생성된 객체를 빈(bean)이라고 부른다.
Java를 가지고 OOP(Object Oriented Language)라고 한다.
우리가 코딩을 한 후, 컴파일을 하게되면 클래스로부터 객체가 생성된다.
그 객체에는 속성과 기능이 들어있고 이 객체는 은닉화되어 객체가 제공하는 라이브러리를 사용할 수 있게 된다.
이 객체는 하나의 오브젝트라고 한다.
스프링도 java기반으로 만들어졌기 때문에 이와 동일하다.
스프링은 우선 XML문서를 통해 객체를 만든다.
스프링 컨테이너는 XML문서를 통해 생성된 객체들을 담고 있는데, 스프링에서는 이 객체를 빈이라고 표현한다.
애플리케이션 구현시 내가 필요한 객체를 스프링 컨테이너에서 꺼내서 사용할 수 있다.