728x90
반응형
Spring FrameWork 란
- 스프링은 JAVA 애플리케이션 개발을 위한 포괄적인 인프라를 지원해주는 프레임워크이다.
- 스프링 도입 전과 후
- 스프링 도입 전 : JAVA 웹개발 초기에는 데이터 소스에 레코드를 삽입하기 위해서 많은 코드를 작성해야 했다.
- 스프링 도입 후 : 스프링의 기능중의 하나인 Spring JDBC Template 을 사용하면 단 몇줄로 이 작업을 끝낼 수 있게된다.
- Spring 의 기능
- Spring JDBC
- Spring MVC
- Spring Security
- Spring AOP
- Spring ORM
- Spring Test
Spring Boot 란
- Spring Boot 는 기본적으로 Spring Framework 를 설정하는데 필요한 구성을 제거하는 Spring Framework 확장 버전이라고 생각하면 편하다.
- 개발자 입장에서 더 빠르고 효율적으로 프로그램 개발이 가능하도록 지원한다.
- Spring Boot 의 기능
- 빌드 및 애플리케이션 구성 단순화를 위한 Starter Dependency
- 애플리케이션 배포의 복잡성을 피하기 위한 임베디드 서버 제공
- 매트릭, 상태확인 및 외부 구성작업
- Spring 기능을 위한 자동구성 작업
- Spring-boot-starter-data-jpa
- Spring Boot Starter Security
- Spring Boot Starter Thymeleaf
Maven 종속성
- Spring 으로 웹 개발 프로젝트 할 경우
- Spring Test, Junit, Hamcrest, Mockito 라이브러리 종속성을 추가해줘야 한다.
- Spring Boot 로 웹 개발을 할 경우
- 모든 라이브러리 구성을 자동으로 포함하기 위한 Test 용 Starter Dependency 하나만 추가하면 끝이다.
- 단순함이 강력한 장점이다.
MVC 구성
- MVC구성을 보면 기타 지원 ( Dispatcher, Suvlet, Mapping ) 등 따로 개발자가 정의해야한다.
- web.xml 파일이나 initalizer 클래스를 이용해서 구성 작업을 해줘야 한다.
- 또한 구성 클래스에 EnableWebMvc 주석을 추가하고 컨트롤러에서 반환된 뷰를 확인하기위해 View resolver 를 정의해줘야 한다.
- Spring Boot 는 web starter 만 추가하면 작동하도록 몇 가지 속성만 추가해주면 된다.
- Spring 에서 필요한 모든 구성은 auto-configuration 이라는 프로세스를 통해서 Boot 웹 스타터를 추가하는 작업 하나로 자동으로 프로젝트가 구성된다.
Spring Boot 보안
- Spring 을 사용해서 보안을 활성화하기 위해서는 spring-security-web 과 spring-security-config 종속성을 모두 필요로 한다.
- 또한 WebSecurityConfigureAdapter 를 확장하고 EnableWebSecurity 주석을 사용하는 클래스를 추가해줘야 한다.
- 이 과정에서 inMemoryAuthentication 을 사용한 인증이 필요하다.
- Spring Boot 는 모든 종속성을 클래스 경로에 자동으로 추가하기 때문에 spring-boot-starter-security 의 종속성만 정의해주면 끝난다.
Spring Boot 배포
- Spring 이나 Spring Boot 모두 Maven 혹은 Gradle 과 같은 일반적인 패키지 관리 기술을 지원하지만, 배포에서는 다른 점을 보이고 있다.
- Spring Boot Maven Plugin 은 maven 에서 Spring Boot 를 지원하고 있다.
- 또한 실행 가능한 jar 또는 war 아카이브를 패키징하여 적재적소에서 애플리케이션을 실행할 수 있다.
- Spring Boot 의 배포 기능
- 임베디드 컨테이너 제공
- java -jar 명령을 사용해서 jar 를 독립적으로 실행하도록 프로비저닝
- 외부 컨테이너에 배포할 때 잠재적인 jar 충돌을 피하기 위해 종속성을 제외하는 옵션
- 배포 시 활성 프로필을 지정하는 옵션
- 통합 테스트를 위한 무작위 포트 생성
Spring Boot 는 Spring 자체의 확장 버전이다.
개발, 테스트, 배포가 Spring Fremework 에 비해서 혁신적으로 간편해지는 Freawork 이다.
특정 프로젝트에서 필수적인 종속성 구성이 필요하다면 Spring
일반적인 종속성 구성으로 구현이 가능한 프로젝트라면 SpringBoot
728x90
반응형
'개발중 > Spring' 카테고리의 다른 글
[SpringBoot] Spring Validation 기록 끄적 📸 (1) | 2022.10.22 |
---|---|
[Spring] '스프링 AOP (Spring AOP)' 가 뭐냐고 물어보면 바로 대답해주기 (0) | 2022.09.23 |
스프링 테스트 코드 작성하기 (1) | 2022.09.06 |
Response headers 에 Content-Disposition 안보임 😥Cors 관련인가 ? (0) | 2022.07.19 |
[API 설계] 서비스단에서 유효성 검사 분리하기 (0) | 2022.05.24 |