Spring Framework란?
- Java 기반의 개발을 위한 오픈소스 framework
- Dependency Injection(DI, 의존성 주입) 을 지원하는 Container
더보기
컨테이너란 우리가 작성한 코드의 처리과정을 위임받은 독립적인 존재라고 생각
컨테이너는 적절한 설정만 되어있다면 누구의 도움없이도 프로그래머가 작성한 코드를 스스로 참조한 뒤 알아서 객체의 생성과 소멸을 컨트롤
- Spring을 이용한 애플리케이션 개발의 장점
1) Plain Old Java Objects (POJOs)를 이용한 쉬운 개발 (lightweight development)
2) Dependency injection과 interface를 활용한 객체들 간의 느슨한 결합 (loose coupling)
3) Aspects와 common conventions, annotation을 통한 선언적 프로그래밍 (declarative programming)
4) Aspects와 templates을 이용한 단순 반복 코드 제거 (boilerplate reduction)
즉, 단순한 구조를 갖는 자바객체이고, 미리 정해져있는 공통적인 코딩(설정) 방법을 적용해서 쉽게 개발 가능 - 특징
1) Light-weight container and framework: 크기가 작고 성능이 우수해 효율적임
2) Dependency Injection 지원: 자바 객체 사이의 의존관계를 직접하지 않고 컨테이너를 통해서 함
3) Aspect-Oriented Programming(AOP) 지원: 핵심 business logic과 system services 사이의 독립성 보장
4) JDB, JPA, MyBatis, 선언적 transaction 처리 등 데이터베이스 연동 지원
5) 다양한 기술들과의 연동 지원
Components
- 구성 요소(modeules): WebMVC가 가장 핵심적이다
- 주요 module의 기능 (모듈: 자료파일이라고 생각..)
1) Container 핵심모듈
: spring-beans (스프링 컨테이너를 이용해 객체를 생성하는 기본 기능을 제공)
: spring context (객체생성, 라이프 사이클 처리, 스키마 확장 등의 기능을 제공)
2) 웹 모듈
: spring-web (REST클라이언트, 데이터 변환 처리, 서블릿 필터, 파일 업로드 지원 등 웹 개발에 필요한 기반 기능 제공)
: spring-webmvc (스프링 기반의 MVC 프레임워크, 웹 어플리케이션을 개발하는데 필요한 컨트롤러, 뷰 구현을 제공)
spring-websocket (스프링 MVC에서 웹 소켓 연동을 처리할 수 있도록 함)
3) 데이터베이스 모듈
: spring-tx
: spring-jdbc
: spring-orm - 주요 module 간 의존 관계: 밑에 있는 모듈이 있어야만 위에 있는 모듈이 잘 동작할 수 있음
'Web' 카테고리의 다른 글
Springboot Security는 어떤 역할을 할까? (0) | 2024.06.01 |
---|---|
[springboot] DB연결하기 - local MySQL+MyBatis (프로젝트 구조, 환경변수 설정, 연결확인) (0) | 2024.06.01 |
[Springboot] 프로젝트 생성 후 에러발생: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.3.0 (0) | 2024.05.29 |
[Springboot] 프로젝트 생성하기 (0) | 2024.05.29 |
[spring-thymeleaf] th:field 사용시 th:value값 안나올 때 (0) | 2021.06.17 |