-
스프링 프레임워크(spring framework)에 대한 기본 개념Spring Framework 2023. 10. 4. 19:00
스프링 프레임워크
- 경량 컨테어너
- 자바 객체를 담고 직접 관리하는 프레임워크
- 객체의 생성 및 소멸 그리고 라이프 사이클을 관리한다.
- Spring 컨테이너로 부터 필요한 객체를 가져와 사용할 수 있습니다.
- IOC 기반
- 객체에 대한 제어권을 사용자가 가지지 않고, 프레임워크에 위임하는 것을 의미
- POJO를 사용한다.
- 불필요한 로직이 줄어들며 코드가 간결해지는 장점이 있다.
- 의존성이 없고 추후 테스트 및 유지보수가 편리한 유연성의 장점을 가진다.
- AOP(관점지향 프로그래밍)
- 객체지향 원칙에 따라 관심사가 같은 데이터를 한곳에 모아 분리하고 낮은 결합도를 갖게하여 독립적이고 유연한 모듈로 캡슐화를 하는 과정 중에 중복된 코드 발생으로 인해 가독성, 확장성, 유지보수성이 떨어지는 점을 보안하기 위해 등장
- 핵심기능과 공통기능을 분리시켜 핵심 로직에 영향을 끼치지 않게 공통기능을 끼워 넣는 개발 형태이며 이렇게 개발함에 따라 무분별하게 중복되는 코드를 한 곳에 모아 중복 되는 코드를 제거 할 수 있어지고 공통기능을 한 곳에 보관함으로써 공통 기능 하나의 수정으로 모든 핵심기능들의 공통기능을 수정 할 수 있어 효율적인 유지보수가 가능하며 재활용성이 극대화된다.
- MVC 구조를 사용한다.
- 사용자 인터페이스와 비지니스 로직을 분리하여 개발한다.
- 모듈화를 통해 어디서든 재사용이 가능
- View의 정보가 달라지더라도 Controller에서 Service에 넘겨줄 매개변수 데이터 가공만 처리하면 되기 때문에 유지보수 비용을 절감 할 수 있는 효과
- model
- Serivce영역과 DAO영역으로 나누어지게 된다.
- Service 부분은 불필요하게 HTTP통신을 하지 않아야한다.
- Service는 view에 종속적인 코드가 없어야 하고 View 부분이 변경되더라도 Service 부분은 그대로 재사용 할 수 있어야 한다. (확장성)
- View와 Controller의 어떠한 정보도 가지고 있어서는 안된다.
- view
- 사용자 Interface를 담당하며 사용자에게 보여지는 부분
- Controller를 통해 모델에 데이터에 대한 시각화를 담당
- 자신이 요청을 보낼 Controller의 정보만 알고 있어야한다.
- model이 가지고 있는 정보를 저장해서는 안된다.
- model, controller에 구성 요소를 알고 있으면 안된다.
- controller
- View에 받은 요청을 가공하여 Model(Service 영역)에 전달
- Model로 부터 받은 결과를 View로 넘겨주는 역할
- 모든 요청 에러와 모델 에러를 처리하며 View와 Controller에 정보를 알고 있어야한다.
- WAS에 독립적인 개발환경
- 단순한 서버 환경인 Tomcat과 Jetty에서도 완벽하게 동작한다.
스프링 프레임워크 구조

- Spring Core
- Spring Container을 의미
- Bean (Factory) Container는 IOC패턴을 적용하여 객체 구성 부터 의존성 처리까지 모든 일을 처리하는 역할
- Spring Context
- Spring Framework의 context 정보들을 제공하는 설정 파일 ( 엔터프라이즈 서비스들을 포함)
- Spring AOP
- AOP를 적용 할수 있게 도와주는 Module
- Spring DAO
- Database Data에 접근하는 객체
- Spring JDBC DAO는 추상 레이어를 지원함으로써 코딩이나 예외처리 하는 부분을 간편화시켜 일관된 방법으로 프로그래밍
- Spring ORM
- Object relational mapping
- 간단하게 객체와의 관계 설정을 하는 것
- Ibatis, Hibernate, JDO 등 인기있는 객체 관계형 도구(OR도구)를 사용 할 수 있도록 지원
- Spring Web
- Web기반의 응용프로그램에 대한 Context를 제공하여 일반적인 Web Application 개발에 필요한 기본적인 기능을 지원
- Spring MVC
- 웹 응용 프로그램을 작성하기위한 완전한 기능을 갖춘 MVC를 구현
출처)
'Spring Framework' 카테고리의 다른 글
spring과 spring boot 비교하기 (0) 2023.10.04 스프링 컨테이너에 대한 개념 (0) 2023.10.04 Spring bean 정리(3)_Spring Bean 스코프 (0) 2023.08.13 Spring bean 정리(2)_Bean 생성과 singleton (0) 2023.08.13 Spring bean 정리(1)_bean 등록 (0) 2023.08.13 - 경량 컨테어너