럿고의 개발 노트

Spring과 Spring Boot 본문

Java Note

Spring과 Spring Boot

KimSeYun 2019. 12. 25. 15:44

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 : 객체 자체가 아니라 프레임워크에 의해 의존성이 조입되는 설계 패던
      자세한 내용
  • 관점 지향 프로그래밍(AOP: Aspect-Oriented Programming)을 지원하여, 트랜잭션, 로깅, 보안같은 여러 모듈에서 공통 사용 기능 경우 해당 기능 분리하여 관리

    • AOP(Aspect-Oriented Programming) : 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화를 하겠다는 것
      자세한 내용
  • 데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공하는 등 영속성과 관련된 다양한 서비스 지원

    • 영속성(Persistence) : 지속성
  • 확장성이 높아, 많은 라이브러리가 지원되고 라이브러리를 별도로 분리하기도 용이

SpringBoot

정의

  • 애플리케이션을 개발할 때 필요한 라이브러리 의존성들을 안전성이 확인된 버전으로 조합하여 미리 준비된 구성으로 제공하여 MVC 환경, 데이터베이스, 뷰 템플릿 등을 자동 구성을 지원

  • 기본 요구사항들을 처리하기 위해 프로퍼티를 통한 설정값을 제어할 수 있도록 하며, XML 기반 설정파일, 코드를 요구하지 않음

  • 내장된 웹서버를 이용해 별도 웹 서버 환경 없이 즉시 단독으로 애플리케이션 실행 가능

특징

  • 임베디드 서버, 시큐리티, 외부 설정 연계 등 개발의 모든 사이클 제공

  • 로직에 집중할 수 있도록 설정을 없앰

  • 즉, Spring에서의 기본 셋팅이 너무 많고 어려웠던 점을 해소하기 위해 제작했다고 생각하면 됨!

Spring Boot Reference Document

출처

Comments