아무 생각없이 사용했던 스프링을 한번 정리해 보려고 한다..
그 동안은 딱 찍어냈다는 표현이 맞다고 생각된다.
아무생각 없이도 할 수 있는 걸 보면..아주 잘 만들어진 프레임워크라고 생각된다..
이번 기회로 더 나은 방법이 무엇인가 생각하며 만들어보려고 한다.
Spring Framework란
- 스프링 첫 수업에 교수님께서 하셨던 말이 생각난다. '코딩에 봄이 왔다. 그래서 스프링이다.'
- 엔터프라이즈 어플리케이션에서 필요로 하는 기능을 제공하는 프레임워크이다 = 개발을 편하게 하기 위한 툴이다.
엔터프라이즈
: 대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로부터 행해지는 매우 큰 규모의 환경
Spring framework의 특징
- 경량 컨테이너다. 자바 객체의 생성/소멸 라이프 사이클을 관리하며 스프링 컨테이너로부터 필요한 객체를 가져와 사용할 수 있다.
- IoC(Inversion of Control) / DI(Dependency Injection) 컨테이너다.
- POJO를 지원한다. (기존 순수 자바코드로 개발이 가능하다.)
- AOP를 지원한다.(공통으로 필요하지만 핵심모듈이 아닌 기능을 분리해서 사용가능하다.)
- 자바 어플리케이션을 개발하는데 필요한 하부구조(Infrastructure)를 포괄적으로 제공
- Spring이 하부구조를 처리하기 때문에 개발자는 어플리케이션 개발에 집중할 수 있음
- 동적 웹 사이트를 개발하기 위한 여러가지 서비스를 제공
- 전자 정부 표준 프레임워크의 기반 기술
Spring Framework의 구조
1) Spring Core
Spring Core는 Spring Container를 의미한다.
Container는 Spring Framework의 핵심이며 그 중 핵심은 Bean Factory Container이다.
그 이유는 Bean Factory는 IoC패턴을 적용해 객체 구성부터 의존성 처리까지 모든 일을 처리하는 역할을 하고 있기 때문이다.
2) Spring Context
Spring Context는 Spring Framework의 context정보들을 제공하는 설정파일이다.
Spring Context에는 JNDI , EJB, Validation, Scheduiling, Internaliztion 등 엔터프라이즈 서비스들을 포함하고 있다.
3) Spring AOP
Spring AOP 모듈은 Spring Framework에서 관점지향 프로그래밍을 할 수 있고 AOP를 적용할 수 있게 도와주는 모듈이다.
4) Spring DAO(Data Access Object)
DAO는 Database Data에 접근하는 객체이다. Spring JDBC DAO는 추상 레이어를 지원함으로써 코딩이나 예외처리하는 부분을 간편화 시켜 일관된 방법으로 코드를 짤 수 있게 해준다.
5) Spring ORM(Object relational mapping)
ORM은 객체와의 관계를 설정하는 것이다.
Spring에서는 Ibatis, Hibernate, JDO등 인기있는 객체관계형 도구(OR도구)를 사용할 수 있도록 지원한다.
6) Spring Web
Spring에서 Web context module은 Application module에 내장되어 있고 Web기반의 응용프로그래에 대한 Context를 제공하여 일반적인 Web Application개발에 필요한 기본적인 기능을 지원한다. 그로인해 Jakarta Struts와의 통합을 지원한다.
Jakarta Struts
https://kimseunghyun76.tistory.com/9
- Jakarta Project의 Struts는 MVC 모델(Model 2)을 자바 웹 기술로 구현 할 수 있게 해주는 오픈 소스 프레임워크 입니다.
7) Spring MVC
Spring MVC에서는 Model2구조로 Application을 만들 수 있도록 지원한다.
MVC(Model - View - Controller)프레임 워크는 웹 응용 프로그램을 작성하기 위한 완전한 기능을 갖춘 MVC를 구현한다. MVC프레임워크는 전략 인터페이스를 통해 고급 구성이 가능하며 JSP, Velocity, Tiles, iText, POI를 포함한 수많은 뷰 기술을 지원한다.
[참조]
https://yoo-hyeok.tistory.com/129
https://velog.io/@suwon-city-boy/%EC%8A%A4%ED%94%84%EB%A7%81%EC%9D%B4%EB%9E%80
https://greatlaboratory.dev/spring/spring-01/
'차근차근 > Spring' 카테고리의 다른 글
2.용어정리(3)-AOP (0) | 2021.12.08 |
---|---|
2.용어정리(1)-Model1,Model2,SpringMVC,POJO (0) | 2021.12.08 |
mybatis-spring SqlSessionTemplate Public Methods (0) | 2021.12.07 |
ibatis (0) | 2021.12.06 |
Missing 'tools.jar' (0) | 2020.12.09 |