- Today
- Total
프로그래밍 농장
스프링이란? (Spring Framwork) [ Spring ] 본문
-스프링 프레임워크(Spring Framwork)란 ?
자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로, 줄여서 스프링이라고 불린다.
-> 애플리케이션 프레임워크 : 특정 계층이나 기술, 업무 분야에 국한되지 않고 애플리케이션의 전 영역을 포괄하는 범용적인 프레임워크를 뜻한다. 애플리케이션 프레임워크는 개발의 전 과정을 빠르고 효율적으로 진행하는데 일차적인 목표를 둔다.
-> 경량급 프레임워크 : 단순한 웹컨테이너에서도 엔터프라이즈 개발의 고급기술을 대부분 사용할 수 있다.
-> 엔터프라이즈 개발 용이 : 개발자가 복잡하고 실수하기 쉬운 Low Level에 대한 관심을 줄이고, 비즈니스 로직 개발에 전념할 수 있도록 지원한다.
-> 오픈소스 : Spring은 오픈소스 기반으로 소스코드가 공개 되어있고, 기능을 추가하거나 수정하는 것이 가능하다. / 국내의 전자정부 프레임워크가 스프링을 기반으로 제작되어 있다.
-스프링 프레임워크의 주요 구성 요소
-> AOP : 관점 지향 프로그래밍
-> IoC / DI : Ioc : 제어의 역전 / DI : 의존관계주입
-> PSA : Portable Service Abstractions / 쉬운 서비스 추상화
-> POJO : Plain Old Java Object : 별 다른 뜻이 아닌 단순히 자바 객체를 사용하겠다는 뜻
- POJO의 장점
->객체지향적인 설계를 자유롭게 가능
-> 자동화된 테스트에 매우 유리함
-> 특정 기술과 환경(규약)에 종속되지 않은 깔끔한 코드작성가능
- AOP(Aspect-Oriented Programming)의 특징
->기능의 관심사를 종단 관심사와 횡단 관심사로 구분하여, 프로그래머는 핵심 관심에만 집중하고, 횡단 관심사는 시스템( spring 프레임워크 ) 에서 담당하게 하는것 [ 개발자는 핵심기능 에 집중하도록 함 ]
- IoC (Inversion of Control) : 제어의 역전
-> 프로그램의 흐름을 개발자가 아닌 프레임워크가 주도한다는 의미로, 스프링 컨테이너가 프로그램의 흐름을 제어한다는 의미
-> 개발자가 아닌, 스프링 컨테이너가 객체에 대한 생명주기에 대한 컨트롤을 진행함으로써, DI, AOP 등이 가능해짐
- DI(Dependency Injection) : 의존성 주입
-> 객체간의 의존성을 자신의 내부 코드가 아닌, 외부의 주입으로 가능하게 하는 것으로, 외부의 설정파일 등을 통해 정의함
->의존관계 설정이 컴파일시가 아닌, 실행시에 이루어짐 - > 모듈간의 결합도를 낮춤
-> 코드 재사용율이 높음 -> 소스코드 수정없이 사용이 가능
- PSA (Portable Service Abstraction) : 쉬운 서비스 추상화
->환경의 변화와 관계없이 일관된 방식의 기술로 접근환경을 제공하려는 추상화 구조를 뜻함
-> 추상화? : 하위 시스템의 공통점을 뽑아내서 분리시키는 것
-> 추상화를 시켜서 좋은점 ? -> 하위 시스템이 어떤 것인지 알지 못하거나 하위 시스템이 변해도 일관된 방법으로 접근이 가능해짐 (사용방식 등 . . )
- Spring의 구동원리
: MVC( Model , View, Controller ) 구조
Dispather Servlet : 클라이언트의 요청에 가장 적절한 Controller에 접근해서 그 View를 출력시켜주는 기능을 함.
- Spring 구성도
Spring Core : 스프링 프레임워크의 근간이 되는 IoC, DI 를 지원하며, Bean 팩토리를 기반으로 Bean 클래스들에 대한 기능을 제공
Spring AOP : 관점지향적 프로그래밍이 가능
Spring DAO : 조금더 쉽고 일관되게 프로그래밍 가능
Spring ORM : ORM 프레임워크와의 연결, 통합을 쉽게 지원
Spring Context : 추가적인 기능 및 외부 타 라이브러리와의 통합을 지원
Spring Web : 웹 어플리케이션 지원, 타 프레임워크 (웹관련)와의 통합을 지원
Spring Web MVC : MVC 기능을 지원하기위한 기능
-> ex) JSP : 사용자에게 보여지는 View + 기능을 추가한것 ( Model 1 )
-> Spring : 다양한 UI 기능들을 사용하기위한 API들을 스프링에서 지원 ++
'IT 관련 정보' 카테고리의 다른 글
Metaverse - 메타버스에 대하여 (0) | 2021.08.11 |
---|---|
Polymorphism(다형성) (0) | 2021.08.08 |
프레임워크란 ? ( 장고(Django) , 스프링(Spring) , FastAPI . . ) (0) | 2021.06.21 |
IPv4 란? (+공인IP, 사설IP ) (0) | 2019.10.20 |
XML과 JSON의 특징, 공통점, 차이점 (0) | 2019.10.12 |