# 목적
❓ Spring framework 란?
- 서버용 자바 애플리케이션 개발을 지원하는 프레임워크
- Spring 생태계의 핵심
(보통 Spring 이라고 하면 Spring Framework를 의미함)
- POJO(Plain Old Java Object)를 사용해서 서버용 자바 애플리케이션 개발을 지원하는 프레임워크
POJO
- Plain
- 특정한 라이브러리나 프레임워크에 종속적이지 않다.
- 애플리케이션을 실행하기 위해서 특정한 서버가 필요하지 않다.
- 재사용성이 높다. 이식성이 높다.
- Old
- EJB가 등장하기 전 자바 클래스를 정의하고, 생성하고, 실행했던 그 옛날 방식
- EJB에서는 EJB서버가 제공하는 서비스를 사용하기 위해서는 특정한 인터페이스를 구현하고, 특정한 클래스를 상속받아서 개발해야 한다.
- EJB에서는 애플리케이션을 실행하기 위해서 애플리케이션을 패키징하고 XML을 작성하고, 패키징된 애플리케이션을 서버에 배포하고, 서버를 재시작해야 한다.
- ex) Controller, Service, DAO (<-> Servlet은 Tomcat 없이 작동 불가)
🔎 Spring의 주요 특징
-
의존성 주입(DI, Dependency Injection)
-
관점지향 프로그래밍
-
선언적 트랜잭션 처리
-
MVC 패턴의 웹 애플리케이션 개발
-
다양한 데이터베이스 액세스 지원
💡 Spring Framework의 기능
- 애플리케이션 실행에 필요한 객체를 생성해주는 기능 제공
- 애플리케이션 실행에 필요한 모든 객체의 생성을 스프링에게 위임한다.
- ex) Controller 객체, Service 객체, DAO 객체 등
- 객체들간의 의존관계에 맞게 객체를 조립해주는 기능 제공
- 의존성 주입(Dependency Injection) 지원
- 다양한 데이터베이스 액세스 기술 연동을 지원해 쉽게 개발 가능
- ibatis, mybatis, JPA, hibernate 등
- 관점지향 프로그래밍을 활용한 공통기능 개발 지원
- 관점지향 프로그래밍 : 소스코드를 바라보는 시각
- 공통기능을 별도의 클래스로 따로 개발
ex) 12명이 1개의 사무실에서 각자 손선풍기를 들고 다른 업무
-> 사무실에 에어컨 1개만 틀면 끝
* eGovFrame 이클립스 실행파일 경로
C:\eGovFrame-4.1.0\bin\eclipse
etc) 관련 내용 기록
-
Spring Boot : 톰캣도 내장되어 있고, 환경설정이 기본적으로 다 구성되어 있음
버전 3 이후로는 Java17 요구
현재 한국 실무에서는 대부분 Ver.3 미만 사용 -> Java8 이하(11도 많이 안씀)
-
orm, jdbc : 데이터베이스 액세스 지원
-
tx : 트랜잭션 처리 지원
-
moc : mvc 패턴의 웹애플리케이션 개발
-
aop : 관점지향 프로그래밍 개발
-
web, bean, core, context : 스프링 컨테이너 제공
-
Spring Data : JPA, Mongo DB