럿고의 개발 노트
Spring과 Spring Boot 본문
Spring vs Spring Boot
Spring
정의
-
자바 플랫폼, 엔터프라이즈 개발을 편하게 해주는 오픈 소스 애플리케이션 프레임워크
-
종속 객체를 생성해주고, 조립해주는 도구
-
POJO(Plain Old Java Object) BEAN CONTAINER
-
POJO(Plain Old Java Object) : 말 그대로 해석하면 오래된 방식의 간단한 자바 객체라는 말로, 이상적으로 POJO는 자바 언어 사양 외에 어떠한 제한에도 묶이지 않은 자바 오브젝트
POJO Wikipedia -
BEAN : Spring이 관리하는 인스턴스로 개발자가 직접 인스턴스를 생성, 호출, 삭제하는 것이 아니라 Spring이 제공하는 Container를 통해 관리되는 인스턴스
-
특징
-
자바 객체를 직접 관리하기 때문에, 라이프 사이클을 관리하며 Spring으로부터 필요한 객체를 얻어 올 수 있음.
-
POJO방식의 프레임워크로 구현을 위해 특정한 인터페이스를 구현하거나 상속받을 필요가 없어 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가벼움.
-
의존성 주입(DI:Dependency Injection)을 지원하여 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결
- Dependency Injection : 객체 자체가 아니라 프레임워크에 의해 의존성이 조입되는 설계 패던
자세한 내용
- Dependency Injection : 객체 자체가 아니라 프레임워크에 의해 의존성이 조입되는 설계 패던
-
관점 지향 프로그래밍(AOP: Aspect-Oriented Programming)을 지원하여, 트랜잭션, 로깅, 보안같은 여러 모듈에서 공통 사용 기능 경우 해당 기능 분리하여 관리
- AOP(Aspect-Oriented Programming) : 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화를 하겠다는 것
자세한 내용
- AOP(Aspect-Oriented Programming) : 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화를 하겠다는 것
-
데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공하는 등 영속성과 관련된 다양한 서비스 지원
- 영속성(Persistence) : 지속성
-
확장성이 높아, 많은 라이브러리가 지원되고 라이브러리를 별도로 분리하기도 용이
SpringBoot
정의
-
애플리케이션을 개발할 때 필요한 라이브러리 의존성들을 안전성이 확인된 버전으로 조합하여 미리 준비된 구성으로 제공하여 MVC 환경, 데이터베이스, 뷰 템플릿 등을 자동 구성을 지원
-
기본 요구사항들을 처리하기 위해 프로퍼티를 통한 설정값을 제어할 수 있도록 하며, XML 기반 설정파일, 코드를 요구하지 않음
-
내장된 웹서버를 이용해 별도 웹 서버 환경 없이 즉시 단독으로 애플리케이션 실행 가능
특징
-
임베디드 서버, 시큐리티, 외부 설정 연계 등 개발의 모든 사이클 제공
-
로직에 집중할 수 있도록 설정을 없앰
-
즉, Spring에서의 기본 셋팅이 너무 많고 어려웠던 점을 해소하기 위해 제작했다고 생각하면 됨!
Spring Boot Reference Document
출처
'Java Note' 카테고리의 다른 글
자바(Java)란? (0) | 2020.01.23 |
---|---|
템플릿 메소드 패턴(Template Method Pattern) (0) | 2019.12.26 |
Tomcat 다운 및 설치 하기 (0) | 2019.11.27 |
이클립스(Eclipse) 인코딩 설정하기 (0) | 2019.11.27 |
이클립스(Eclipse) for Enterprise Java Developers 다운로드 및 설치 (0) | 2019.11.27 |