Spring

Spring이란?

wwns 2022. 11. 17. 00:54
반응형

Spring 프레임워크를 사용하여 백엔드 API 개발을 하는데 Spring 프레임워크의 정의와 특징을 정리하고 어떻게 작동하는지 Spring MVC Lifecycle에 대해서 정리해보려고 한다.

 

Spring이란?

  • JAVA의 웹 프레임워크로 Java 언어를 기반으로 사용하고 어플리케이션을 만들기 위한 프로그래밍 툴이라 할 수 있다.
  • Spring은 다른 사람의 코드를 참조하기 쉽고 편리한 구조로 JSP, Mybatis, JPA와 같은 기술들을 더 쉽게 사용할 수 있는 오픈소스 프레임워크이다.

프레임워크란?

  • 프레임워크는 어떠한 목적을 달성하기 위해, 복잡하게 얽혀 있는 문제를 쉽게 해결하기 위한 약속이자 도구이며, 소프트웨어 개발에 하나의 뼈대 역할을 한다.
  • 프레임워크는 자주 쓰일 만한 기능들을 한데 모아 놓은 유틸 모음이다.
  • 의자를 만든다고 가정할 때 의자를 만드는 망치나 못 같은 개념
  • 기본적인 설계나 필요한 라이브러리는 의존성을 주입해주고(프레임워크) 개발자는 개발에만 집중할 수 있게 해 줌
이러한 이유로 Spring 프레임워크는 JSP, Mybatis, JPA와 같은 기술들을 쉽게 사용할 수 있도록 도와주며, 필요한 라이브러리는 의존성 주입을 통해 관리해주어 개발자는 개발에 집중할 수 있도록 도와주는 툴이라고 할 수 있습니다.
프레임워크는 개발에 집중할 수 있도록 Model, View, Controller로 파트를 나누는 MVC 패턴을 적용하는 경우가 많고 Spring 프레임워크 또한 그렇습니다. 따라서 Spring MVC Framework라고도 불립니다.

 

MVC 패턴이란?

  • Model
    • 각 데이터를 가진 객체를 지칭
      • 데이터는 내부의 상태에 대한 정보를 가질 수 있고, 모델을 표현하는 이름을 속성으로 가질 수 있음.(Attribute) 
    • 모델은 뷰나 컨트롤러에 대한 어떠한 정보도 알면 안 된다.
      • 데이터의 변경이 일어났을 때 모델에서 화면 UI를 직접 조정할 수 있도록 뷰를 참조하는 속성을 가지면 안 된다는 뜻
    • 데이터와 비즈니스 로직을 관리한다.
    • 일반적으로 POJO로 구성
      • Plain Old Java Object, 단순한 자바 오브젝트 간단히 말하면 데이터의 껍데기 객체를 말하는 것 같다.
      • POJO에 대한 자세한 내용은 여기에 정리가 잘 되어있다.
    • Java Beans
  • View
    • 뷰는 텍스트, 체크박스 항목과 같은 사용자 인터페이스 요소
    • 데이터 및 객체의 입력, 그리고 보여주는 출력을 담당 ex) HTML, JSP
  • Controller
    • 모델과 뷰를 연결해주는 역할
    • 클라이언트의 요청을 받아 모델로 넘겨주거나 모델에서 받은 데이터를 뷰로 넘겨주는 역할

Spring의 특징

  • 경량 컨테이너로써 Java의 객체를 직접 관리해 준다.
  • 제어의 역전(IoC: Inversion of Control)을 지원
    • 객체에 대한 제어권이 프레임워크에 있어 필요에 따라 개발자 대신 제어한다.
  • 의존성 주입(DI: Dependency Injection)을 지원
    • 프레임워크가 의존성이 존재하는 서비스를 연결해준다.
  • 관점 지향 프로그래밍(AOP: Aspect-Oriented Programming)을 지원
    • 핵심 기능에서 공통 기능을 분리하여 따로 사용할 수 있게 해준다.
  • 확장성이 뛰어나다.

스프링이 무엇이고, 왜 사람들이 API 개발에 있어서 프레임워크를 활용하는지, 프레임워크들이 왜 MVC 패턴을 따르는지, Spring의 특징이 무엇인지 알아보았습니다. 그렇다면 Spring이 작동하는 방식이나 원리에 대해서 공부해야 할 것입니다.

다음 글에서는 Spring MVC Lifecycle에 대해 정리하면서 사용되는 용어들을 이해하고 작동 순서, 역할에 대해 정리해보겠습니다.

 

반응형