Post

[Spring] Spring Framework(스프링 프레임워크)란?



spring logo



Spring Framework(스프링 프레임워크)란 자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 프레임워크이다.

*프레임워크 : 애플리케이션 개발을 위한 뼈대를 제공
*엔터프라이즈 : 기업/사업


스프링 핵심


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

객체의 생성부터 소멸까지의 제어흐름을 사용자가 아닌 특별한 객체에게 위임하는 것을 말한다. 스프링 프레임워크에서는 애플리케이션 컨텍스트가 흐름을 제어하기 때문에 IoC 프레임워크다.

어떤 객체의 사용 여부가 타 객체에 의해 수동적으로 결정되어 사용된다면 IoC 개념이 적용된 것이라고 볼 수 있다.


DI(Dependency Injection) : 의존성 주입

각 클래스 간의 의존성을 빈 설정 정보를 바탕으로 런타임 시점에 컨테이너가 자동으로 주입하는 것이다. 외부에서 의존성을 넣어줬다고 하여 의존성 주입이라고 한다. DI는 스프링 프레임워크가 가진 차별화 요소이다.


DL(Dependency Lookup) : 의존성 검색

의존관계가 있는 객체를 외부에서 주입 받는 것이 아닌 의존관계가 필요한 객체에서 직접 검색하는 방식을 말한다. 해당 객체는 의존하고자 하는 인터페이스 타입만 지정해서 검색할 뿐 해당 인터페이스를 구현한 구체적인 클래스 객체에 대한 결정과 해당 객체에 대한 생명주기는 IoC 컨테이너에서 책임진다.


스프링 특징


AOP(Aspect Oriented Programming) : 관점 지향 프로그래밍

횡단 관심사를 모듈로 분리하여 중복을 없애고 효율적인 유지보수와 재활용성을 극대화한 프로그래밍 패러다임을 뜻한다.

*회당관심사 : 보안이나 로그, 트랜잭션과 같이 비즈니스 로직은 아니지만 반드시 처리가 필요한 부가적인 공통 기능을 일컫는다.


POJO(Plain Old Java Object)

getter/setter만 가진 단순한 자바 오브젝트를 뜻한다. 스프링을 사용하면 자바 코드를 이용해서 객체를 구성하는 방식을 그대로 사용할 수 있다. 그럼 생산성에 유리하고, 코드 테스트 작업에 유리하다는 장점이 생긴다.


MVC(Model View Controller) 패턴

Model, View, Controller의 세 구성요소로 나누어 사용자 인터페이스와 비지니스 로직을 분리해 개발하는 방법을 말한다. MVC에서는 Model1과 Model2로 나누어져 있으며 일반적인 MVC는 Model2를 지칭한다.

  • Model
    Model은 애플리케이션의 데이터와 비즈니스 로직을 담당하는 부분이다. 주로 데이터를 다루고 가공하는 역할을 수행하며, View나 Controller와 직접적으로 상호작용하지 않는다.

  • View
    View는 사용자에게 보여지는 부분으로, 사용자 인터페이스(UI)를 담당한다. 웹 애플리케이션의 경우 HTML, CSS, JavaScript 등을 이용하여 화면을 구성하고 사용자에게 정보를 시각적으로 전달한다. View는 주로 사용자가 보는 부분을 생성하며, 사용자의 요청을 Controller로 전달한다.

  • Controller
    Controller는 Model과 View를 연결하는 부분으로, 사용자가 어떠한 요청을 하면 Controller가 그 요청을 받아들이고, 해당 요청에 대한 처리를 Model에게 지시하고, Model이 데이터를 처리한 후 다시 Controller로 결과를 전달하고, Controller는 View에게 전달하여 사용자에게 최종 결과를 보여준다.


MVC 패턴은 각 부분이 서로 독립적으로 구성되어 유지보수 및 확장이 용이하며, 코드의 가독성과 유지보수성을 높여주는 장점이 있다


This post is licensed under CC BY 4.0 by the author.