SpringFramework = Spring + Framework
- Framework : 어떤 대상을 구성하는 구조/틀을 사용한 작업
- (SW) 기능을 클래스/인터페이스 형태로 미리 구현해놓은 형태를 사용하는 것
- 음식으로 비유하자면, 밀키트 → 다 준비되있음
- 우리가 밀키트를 쓰는 이유: 편리함, 맛도 보장됨
- EJB(Enterprise Java Bean) - 대규모의 자바빈으로 설계되어있는 프로젝트
- 서버 중심 개발(백)
- 확장성, 유지보수
- 중량프레임워크
- 느림, 무거움 - 구동이 힘듦
- Spring Framework
- 클라이언트 중심(모바일 등장)
- 생산성, 안정성
- 경량프레임워크(확장성)
- EJB를 개선한 것
스프링 주요 개념/특징
- EJB보다 가볍고, 배우기 쉽다.
- 제어의 역행 기술을 사용해서 애플리케이션간의
느슨한 결합 제어한다.- 제어의 역행(Inversion Of Controller, IoC) : 제어권을 내가 가지고 있지 않음 음식점으로 비유하자면, 맥도날드 - 내가 제어권을 가지고 있지 않음
- 제어권 : 음식점으로 비유하자면, 서브웨이 - 내가 제어권을 가지고 있음
느슨한 결합: 나와 직접적인 연관이 없음. 특정 대상을 굳이 책임지지 않음 내 친구의 친구의 결혼식- 타이트한 결합: 나와 직접적인 연관이 있음 가족의 결혼식
- 의존성 주입 기능을 사용가능(Dependency Injection, DI) 서브웨이 빵공장에서 빵을 받아옴
- 관점지향 프로그래밍 지원(Asepect-Oriented Programming, AOP)
- 영속성 관련 다양한 서비스 지원(Presistence) DB관련된 다양한 것들을 지원받음
- 다양한 라이브러리 지원
- POJO 기반의 구성 (Plain Old Java Object) POJO : 순수 자바
스프링 주요 기능
- Spring Core : 다른 기능과 설정을 분리하기 위한 IoC 기능 제공
- Spring Context : 스프링 기본기능, 애플리케이션에 있는 기능(빈-객체)을 접근하도록 기능을 제공
- Spring DAO : JDBC(Java Database Connectivity) 기능을 좀 더 편리하게 사용
- Spring ORM : 영속성 관련 프레임워크 연동 기능 제공(하이버네이트, 마이바티스)
- Spring AOP : 관점지향 프로그래밍을 지원
- Spring Web : 웹 개발에 필요한 기능을 제공
- Spring WebMVC : 스프링MVC관련 기능 제공
'spring · spring boot' 카테고리의 다른 글
[spring] 스프링과 db 연결하기 (0) | 2023.12.03 |
---|---|
[spring] 스프링 MySQL Connector/J와 톰캣 설치하기 (1) | 2023.12.03 |
[spring] Spring Legacy project를 사용하는 이유 (0) | 2023.12.03 |
[spring] TDD 주도개발과 스프링 프로젝트 만들기 (1) | 2023.12.03 |
[spring] 스프링 개발환경설정 (1) | 2023.12.03 |