Spring 개념

oyeon·2021년 1월 14일
0

Spring Framework란?

  • Enterprise급 어플리케이션을 구축할 수 있는 가벼운 솔루션
  • One-Stop-Shop(모든 과정을 한꺼번에 해결하는 상점)
  • 원하는 부분만 가져다 사용할 수 있도록 모듈화가 잘 되어있다.
  • IoC 컨테이너이다. (IoC = Inversion of Control : 제어의 역전)
  • 선언적으로 트랜잭션을 관리할 수 있다.
  • 완전한 기능을 갖춘 MVC Framework를 제공한다.
  • AOP 지원
  • 도메인 논리 코드와 쉽게 분리될 수 있는 구조
  • 아래 그림과 같이 약 20개의 모듈로 구성되며 필요한 모듈만 가져다 사용하면 된다.

과정에서 배울 모듈

  • spring-jdbc : 자바 JDBC프로그래밍을 쉽게 할 수 있도록 기능을 제공한다.
  • spring-tx : 선언적 트랜잭션 관리를 할 수 있는 기능을 제공한다.
  • spring-web : 멀티 파트 파일 업로드, 서블릿 리스너 등 웹 지향 통합 기능을 제공하며 HTTP클라이언트와 Spring의 원격 지원을 위한 웹 관련 부분을 제공한다.
  • spring-webmvc : Web-Servlet 모듈이라고도 불리며, Spring MVC 및 REST 웹 서비스 구현을 포함한다.

spring이 익숙해지면 spring-AOP도 공부하자

Framework

  • IoC (제어의 역전) 개념이 적용된 대표적인 기술
  • 소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합(프로그래머가 클래스를 완성해야 한다.)
  • 객체 지향 개발 중 통합성, 일관성의 부족이 발생되는 문제를 해결할 방법 중 하나
  • Framework 특징
    - 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성 (컴포넌트는 재사용 가능)
    - 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법 정의
    - 높은 수준에서 패턴들을 조작화 할 수 있다.

Library

  • 단순 활용가능한 도구들의 집합
  • 개발자가 만든 클래스에서 호출하여 사용
  • 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식

Framework vs Library

  • 차이는 제어 흐름에 대한 주도성이 누구에게/어디에 있는가에 있다.
  • Framework은 전체적인 흐름을 스스로가 쥐고 있고, 사용자는 그 안에서 필요한 코드를 작성한다.
  • Library는 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰는 것이다.
  • 다시 말하면 Library는 Library를 가져다 사용하고 호출하는 측면에서 주도성이 있으며, Framework는 틀안에 제어 흐름에 대한 주도성을 내포하고 있다.
  • Framework는 가져다가 사용한다기 보다는 Framework 안에 들어가서 사용하는 느낌이다.

제어의 역전 (IoC = Inversion of Control)

  • 어떠한 일을 하도록 만들어진 Framework에 제어의 권한을 넘김으로써 클라이언트 코드가 신경 써야 할 것을 줄이는 전략
  • Framework의 메서드가 사용자(나)의 코드를 호출한다.

reference

profile
Enjoy to study

0개의 댓글