공부하는 블로그

Spring | Introduction 본문

Spring/Spring Framework

Spring | Introduction

치킨닮은닭 2020. 5. 12. 00:41

Spring Framework?

스프링 프레임워크 Overview    출처  https://docs.spring.io/spring/docs/4.2.0.RELEASE/spring-framework-reference/html/

 

 스프링 프레임워크(Spring Framework)는 자바 기반의 경량급 어플리케이션 프레임워크로서 자바를 이용한 어플리케이션 개발을 더욱 간편하게 해주는 틀이다. 줄여서 스프링이라고 한다.

* Framework : 코드 품질 및 개발 속도를 상향 평준화시키기 위해 고안된 규약이자 표준 개발 방법을 제공해주는 어플리케이션

왜 스프링을 사용할까?

 IoC와 DI나 AOP 같은 개발을 더욱 편리하게 해주는 기능을 사용하기 위해 스프링을 사용한다. 원래는 개발자가 해야하는 작업을 스프링 컨테이너에서 자체적으로 수행해주어 개발자가 비즈니스 로직에 더욱 집중할 수 있도록 도와준다.

스프링의 특징

POJO(Plain Old Java Object)

 POJO는 EJB(Enterprise JavaBeans) 같은 중량형 프레임워크에 반하여 나타난 용어로 getter와 setter를 가진 단순 자바 오브젝트이다. 이런 단순 객체는 의존성이 없고 추후 테스트 및 유지보수가 편리한 유연성의 장점을 가진다.

 

IoC(Inversion of Control) / DI(Dependency Injection)

 IoC는 말 그대로 제어의 역전이다. 자바가 등장하고 자바 기반의 어플리케이션이 개발되던 초창기에는 객체의 생성, 의존관계 연결, 메소드 호출 등의 제어권을 개발자가 직접 가지고 있었다. 하지만 IoC에서는 개발자가 가진 객체에 대한 권한을 외부 컨테이너(IoC Container)로 위임하여 모든 객체에 대한 제어권이 바뀌게 된다. 

IoC의 두 가지 구현 방법(DL, DI)    출처  https://gangnam-americano.tistory.com/60

 의존성 주입(DI)은 IoC를 구현하는 방법 중 하나로, 각 서비스들 간에 의존성이 존재할 경우 프레임워크 자체적으로 연결을 해주는 기능이다. 개발자가 미리 추가해둔 빈(Bean) 설정 정보를 바탕으로 한다. 이 기능을 통해 의존관계에 있는 객체를 생성하지 않아도 그 종속 객체를 사용할 수 있다.

*DL(Dependency Lookup) : 컨테이너에서 제공하는 API를 이용해 개발자가 사용하고자 하는 빈을 저장소에서 검색하는 방법

 

AOP(Aspect Oriented Programming)

 관점 지향 프로그래밍(AOP)은 핵심 기능과 공통 기능을 분리시켜 핵심 로직에 영향을 끼치지 않게 공통 기능을 끼워넣는 개발 방법이다. 이는 공통 기능을 한 곳에 보관하여 효율적인 유지보수가 가능토록 해준다. 주로 트랜잭션이나 로깅, 보안 기능을 분리하여 따로 관리한다.

 

MVC(Model-View-Controller)

 MVC는 사용자 인터페이스와 비즈니스 로직을 분리하여 개발하는 디자인 패턴이다. Model1과 Model2로 나뉘어져 있으며 일반적인 MVC는 Model2를 지칭한다.

 

· Model : 서버 데이터 처리 담당 (Service 영역 + DAO 영역)

· View : 클라이언트에게 보여질 인터페이스를 응답

· Controller : 클라이언트에게 받은 요청을 가공하여 서버에게 전달, 반대로 서버로부터 받은 결과를 View로 전달


Reference

 

· https://gmlwjd9405.github.io/2018/10/26/spring-framework.html

· https://khj93.tistory.com/entry/Spring-Spring-Framework%EB%9E%80-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-%ED%95%B5%EC%8B%AC-%EC%A0%95%EB%A6%AC

· https://engkimbs.tistory.com/601

'Spring > Spring Framework' 카테고리의 다른 글

Spring | Eclipse에서 Spring 프로젝트 생성하기  (0) 2020.06.24
Comments