[번역] Spring 공식문서 - Overview

공혁준·2022년 3월 7일
0
post-thumbnail

Ref. Spring Framework Documentation v.5.3.16
📌 이 글에서는 공식문서의 Overview 부분만 다룹니다.

Spring Framework Overview

  • Spring을 사용하면 Java 엔터프라이즈 애플리케이션을 쉽게 만들 수 있습니다.
  • Spring Framework 5.1부터 Spring은 JDK 8+(Java SE 8+)를 필요로 하며 JDK 11 LTS에 대한 기본 지원을 제공합니다.
  • Spring은 광범위한 애플리케이션 시나리오를 지원합니다.
  • Spring은 오픈 소스입니다.
  • Spring은 다양한 실제 사용 사례를 기반으로 지속적인 피드백을 제공하는 크고 활동적인 커뮤니티가 있습니다.

What We Mean by "Spring"

  • Spring Framework는 모듈로 나뉩니다.
  • 핵심에는 configuration model 및 DI 메커니즘을 포함하는 core container 모듈이 있습니다.
  • Spring Framework는 메시징, 트랜잭션 데이터 및 지속성, 웹을 포함한 다양한 애플리케이션 아키텍처에 대한 기본 지원을 제공합니다.
  • Servlet 기반 Spring MVC 웹 프레임워크와 병렬로 Spring WebFlux 반응 웹 프레임워크도 포함됩니다.

History of Spring and the Spring Framework

  • Spring은 초기 J2EE의 복잡성을 해결하기 위해 2003년에 등장했습니다.
  • 일부에서는 Java EE와 Spring이 경쟁 관계에 있다고 생각하지만 실제로 Spring은 Java EE를 보완합니다.
  • Java EE 및 Spring의 초기에는 애플리케이션 서버에 배포하기 위해 애플리케이션이 생성되었습니다.
  • 오늘날 Spring Boot의 도움으로 Servlet 컨테이너가 포함되고 변경하기 쉬운 devops 및 cloud-friendly 방식으로 애플리케이션이 생성됩니다.
  • Spring Framework 5부터 WebFlux 애플리케이션은 Servlet 컨테이너가 아닌 서버(예: Netty)에서 실행할 수 있습니다.
  • Spring은 계속해서 혁신하고 진화합니다.
  • Spring Framework 외에도 Spring Boot, Spring Security, Spring Data, Spring Cloud, Spring Batch와 같은 다른 프로젝트가 있습니다.
  • Spring 프로젝트의 전체 목록은 spring.io/projects 를 참조하십시오.

Design Philosophy

  • 다음은 Spring Framework의 기본 원칙입니다.
    • 모든 수준에서 선택을 제공합니다. Spring을 사용하면 디자인 결정을 가능한 늦게 연기할 수 있습니다. 예를 들어 코드를 변경하지 않고 구성을 통해 지속성 공급자를 전환할 수 있습니다. 다른 많은 인프라 문제와 타사 API와의 통합도 마찬가지입니다.
    • 다양한 관점을 수용합니다. Spring은 유연성을 수용하며 일을 어떻게 수행해야 하는지에 대해 의견이 분분하지 않습니다. 다양한 관점에서 다양한 애플리케이션 요구 사항을 지원합니다.
    • 강력한 하위 호환성을 유지합니다. Spring의 진화는 버전 간의 주요 변경 사항이 거의 없도록 주의 깊게 관리되었습니다. Spring은 Spring에 의존하는 애플리케이션 및 라이브러리의 유지 관리를 용이하게 하기 위해 신중하게 선택된 범위의 JDK 버전 및 타사 라이브러리를 지원합니다.
    • API 디자인에 신경씁니다. Spring 팀은 직관적이고 여러 버전과 수년에 걸쳐 유지되는 API를 만드는 데 많은 생각과 시간을 투자합니다.
    • 코드 품질에 대한 높은 표준을 설정합니다. Spring Framework는 의미 있고 최신이며 정확한 javadoc에 중점을 둡니다. 패키지 간에 순환 종속성이 없는 깨끗한 코드 구조를 주장할 수 있는 몇 안 되는 프로젝트 중 하나입니다.
profile
몰입을 즐기는 개발자입니다.

0개의 댓글