본문 바로가기

뭐라도 공부해보자!!( 이론 )/Web

0. Spring/SpringBoot에 대한 간단한 설명

반응형

 Spring Framework는 자바 플랫폼을 위한 오픈 소스 어플리케이션 프레임워크이다. 동적인 웹 사이트를 개발하기 위한 여러 서비스를 제공하고 있으며, 대한민국의 경우 공공기관의 웹 서비스 개발 시 권장하는, 전자정부 표준 프레임워크이다. 스프링은 다른 프레임워크에 비해 다음과 같은 특징을 지닌다. 

 

  • 경량 컨테이너로서 자바 객체를 직접 관리한다.( = 사용자가 별도로 객체의 생성과 소멸을 관리할 필요없이 필요하면 스프링이 알아서 가져와 준다.)
  • Plain Old Java Object 방식의 프레임워크이다. 자바만을 이요하여 생성한 객체로 특징만 말하자면 인터페이스를 구현하거나 상속받을 필요가 없어, 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍다.
  • 제어 반전(Inversion of Control)을 지원한다. 즉 작성한 프로그램이 재사용 라이브러리의 흐름 제어를 받게 된다는 것이다. 
  • DI(Dependency Injection)을 지원한다. 서비스 간 의존성이 존재할 경우, 스프링이 서로 연결하여 준다. 이 부분이 중요한데 A 객체의 생성을 위해 B 객체가 필요하다고 하였을 때, 직접 B 객체를 생성하는 것이 아닌, 스프링에서 이미 생성된 B 객체를 가지고 옴으로써 서로에 대한 의존성을 낮출 수 있다.(의존성이 낮다는 말은 혹시나 A, B에 대해서 수정할 부분이 생기더라도 그 부분만 수정하면 되는 경우가 많아진다는 것이다.)
  • AOP(Aspect-Oriented Programming)를 지원한다. 로깅, 보안, 트랜젝션 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우, 그 기능만을 따로 모아서 관리할 수 있다.
  • 영속성과 관련된 다양한 서비를 지원한다. 
  • 높은 확장성을 가지고 있다. 스프링 프레임워크에 외부 라이브러리를 감싸는 것은 아주 쉬운 일이다. 이미 수많은 라이브러리가 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도 용이하다.

 결론적으로 말하자면 스프링은 웹과 관련된 여러가지 기능들을 제공하면서도, 높은 확장성을 지니고 있으며, 개발의 효율성을 높여주는 프레임워크라고 볼 수 있다. 

 

 

 스프링은 그 역사가 긴 만큼, 다양한 기능들을 제공하고 있다. 스프링에서 제공하는 여러 기능들을 사용하기 위해서는 세팅을 해주어야 하는 데, 이는 만만치 않다. 스프링 부트(Spring Boot)는 스프링을 더 쉽게 사용하기 위한 일종의 도구이다. 차후에 다루겠지만 Java를 지원하는 IDE를 이용하여 Spring Boot로 프로젝트를 만들면 별도의 설정없이 바로 빈 페이지를 띄우는 웹 앱을 만드는 것이 가능하다. 

 스프링에서 생성되는 주요 모듈에 대해서 설명해보고자 한다. 주요 모듈로는 제어 반전 컨테이너(IoC Container), 관점 지향 프로그래밍 프레임워크(IoC Framework), 데이터 엑세스 프레임워크(Data Access Framework), 트랜젝션 관리 프레임워크(Transaction Mangement Framework), 배치 프레임워크(Batch FrameWork) 등이 있다. 각각 객체의 생명주기 관리 및 의존성 주입을 통한 계층, 서비스 간의 의존성 조정, AOP 프로그래밍을 지원, JDBC 등 데이터베이스 CRUD 기능 제공, 트랜젝션 관리, 일괄 처리 기능 지원을 담당한다.

 정리하자면 스프링은 자바 기반 웹 앱을 쉽게 만들수 있도록 제공되는 프레임워크다. 많은 웹들이 스프링들로 만들어져 왔었고, 역사가 오래된 만큼 제공되는 기능들도 많고, 기능을 어떻게 사용할 수 있는 지 관련 자료 및 커뮤니티들도 크게 활성화가 되어 있다. 웹, 그 중에서도 백엔드에 대해서 관심이 있는 사람이라면 스프링은 반드시 공부해야하는 기술이라 해도 과언이 아니다.

 

글의 출처

https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%94%84%EB%A7%81_%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC

 

스프링 프레임워크 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. -->

ko.wikipedia.org

반응형