가장 지루한 Spring Framework 서론.


Spring Framework 는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서, 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다.

모듈 별로 구분되어 있어서 모듈 전체를 가져오지 않고 않고 필요한 부분만 가져와 사용할 수 있기 때문에, 경량의 어플리케이션도 구축할 수 있다.

트랜잭션 관리, RMI 나 웹 서비스를 통한 로직으로의 원격 액세스, 데이터를 유지하기 위한 다양한 옵션도 지원한다. 



Spring Framework 특징


POJO (Plain Old Java Object)

일반적인 J2EE 프레임워크에 비해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 라이브러리 등을 사용하기 편하고 객체가 가볍다.

POJO 어플리케이션을 빌드하는 것도 가능하고, POJO 에 비-침입적(non-invasively) 으로 엔터프라이즈 서비스를 적용하는 것도 가능하다.


DI (Dependency Injection)

각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.


IoC (Inversion of Control)

컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서, IoC 컨테이너가 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 이 객체를 bean 이라고 한다.


AOP (Aspect-Oriented Programming)

로깅이나 보안, 트랜잭션 등 핵심적인 비즈니스 로직과 관련이 없으나 여러 곳에서 공통적으로 쓰이는 기능들을 따로 분리하여 개발하고 실행 시에 다시 조합할 수 있다.


Data Access

JDBC, iBATIS(MyBatis), Hibernate 등의 데이터베이스에 접속하고 자료를 저장 및 읽어오기 위한 인터페이스를 제공한다.


MVC Pattern

웹 프로그램밍 개발 시 거의 표준적인 방식인 Spring MVC라 불리는 모델-뷰-컨트롤러(MVC) 패턴을 사용한다. 

DispatcherServlet 이 Contoller 역할을 담당하여 각종 요청을 적절한 서비스에 분산, 이를 각 서비스들이 처리, 그 결과를 다양한 형식의 View 서비스로 화면에 표시할 수 있다.


Batch

Quartz 기반으로 특정 시간대에 실행하거나 대용량의 자료를 처리할 수 있다.



Spring Framework vs Spring Boot


Spring 을 처음 시작한다면, Spring Boot 기반의 어플리케이션을 생성하여 Spring Framework 를 사용할 수 있다.

Spring Boot CoC(Convention over Configuration: 설정 이상의 관례) 를 선호하며, 코딩/설정 등을 최소화 할 수 있고 가능한 빠르게 작동하도록 설계되었다.

https://spring.io/guides 에 Spring Boot 를 기반으로 한 많은 예제가 있으며, 특정 문제를 해결할 때 고려해야 할 Spring 의 다른 프로젝트들도 포함되어 있다.


Spring Boot 를 사용하는 것이 훨씬 편리하고 간단하다. 추세도 그러하다.

이 시점에 Spring Boot 를 사용하지 않고 Spring Framework 로 개발하는 것은 회칼을 옆에 두고 과도로 횟감을 뜨고 있는 모양새와 같을 수 있다.

그럼에도 불구하고 Spring Framework 를 계속 보고 있는 이유는, 

어찌됐든 Spring Framework 를 간편화 한 프로젝트이므로 그 근간을 모르고서는 방식/동작 등에 대해 이해가 부족할 것 같아서 이다.

그렇게 따지자면 java1 부터 공부를 해야 맞는 것이 겠지만; 선택은 하고 싶은 사람들 마음이다.

꼭 필요해서 한다면 Spring Boot 를 먼저 봐도 좋을 것이고, 알고 싶다면 Spring Framework 부터 봐도 좋을 것이고...




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,