5분 이내에 설명되는 Spring 프레임워크
게시 됨: 2022-12-28Spring Framework는 강력한 오픈 소스 Java 애플리케이션 개발 프레임워크로 강력한 고성능 애플리케이션을 쉽게 만들 수 있습니다.
오픈 소스는 소스 코드를 자유롭게 사용할 수 있으므로 사람들이 자유롭게 액세스, 수정 및 공유할 수 있는 것을 말합니다.
오픈 소스 애플리케이션 프레임워크는 소프트웨어 개발자 그룹이 만든 소프트웨어 개발용 템플릿입니다. 사용자 인터페이스, 웹 사이트 및 기본 소프트웨어 응용 프로그램 생성과 같은 다양한 용도로 사용되는 다양한 유형의 템플릿이 있습니다.
애플리케이션 개발이 처음이라면 Spring Framework를 시작하는 것이 좋은 출발일 수 있습니다. 이 기사에서는 그것이 무엇이며 어떻게 사용하는지 배우게 될 것입니다.
스프링 프레임워크란?
Spring Framework는 개발자가 엔터프라이즈 Java 애플리케이션을 만드는 데 사용하는 오픈 소스 프레임워크입니다. 이 프레임워크는 Rod Johnson에 의해 만들어졌으며 Apache 2.0 라이선스에 따라 2003년에 출시되었습니다.
일부 프로그래머는 일반적으로 Java를 강타하고 기본 응용 프로그램을 만드는 것이 번거롭다고 주장합니다. Spring Framework는 번거롭고 복잡한 엔터프라이즈 Java 애플리케이션 개발 프로세스를 단순화하는 것을 목표로 합니다.
봄은 넓다. 따라서 Spring Boot, Spring GraphQL 및 Spring Cloud와 같은 다른 Spring 기반 프로젝트를 사용하기 전에 먼저 Spring 프레임워크가 무엇인지 이해하는 것이 좋습니다.
스프링 프레임워크를 사용하는 이유
- 유연한 . 이 프레임워크는 AOP(Aspect-Oriented Programming), DI(Dependency Injection) 및 POJO(Plain Old Java Object)와 같은 기술을 제공합니다. 따라서 Spring을 사용하여 다른 목표를 달성할 수 있습니다.
- 봄은 빠르다 . 이러한 모든 기술을 갖추고 있음에도 불구하고 Spring Framework는 여전히 가볍기 때문에 확장 가능하고 강력한 엔터프라이즈 웹 애플리케이션을 만드는 데 이상적입니다.
- 멋진 커뮤니티 . Spring에는 다양한 커뮤니티가 있으며 필요한 시간에 다양한 솔루션을 제공하기 위해 신뢰할 수 있습니다.
- 보안 . Spring은 보안대책으로 유명하며 취약점은 잦은 패치를 통해 항상 수정됩니다. 타사 종속성은 해당 취약성이 핵심 프로세스를 방해하지 않도록 항상 모니터링됩니다.
- 생산적 . Spring Framework는 Java 엔터프라이즈 애플리케이션 개발 경험을 간소화합니다.
스프링 기능
Aspect 지향 프로그래밍 지원
Aspect 지향 프로그래밍은 크로스커팅 문제에 더 많은 모듈성을 제공합니다. AOP는 또한 객체 지향 프로그래밍을 칭찬합니다.
AOP에서 모듈화의 주요 단위는 교차 절단 문제(Aspect)입니다. 따라서 개발자는 선언적 엔터프라이즈 서비스 및 사용자 지정 측면을 만들 수 있습니다.
IoC(Inversion of Control) 컨테이너
IoC 컨테이너는 Java 개체를 관리하고 구성하는 능률적인 방법을 제공합니다. 정의된 Java 개체의 수명 주기는 이 컨테이너에 의해 관리되므로 Spring 기반 애플리케이션의 재구성 가능성이 크게 향상됩니다.
Inversion of Control은 종속성 조회 또는 종속성 주입 패턴을 활용하여 개체 참조 런타임을 제공합니다. IoC 컨테이너는 구성 관리에 필요한 어셈블러 코드와 함께 제공됩니다.
데이터 액세스 프레임워크
Spring이 Hibernate, JDBC, Java Persistence API(JPA), Java에서 가장 많이 사용되는 데이터 액세스 프레임워크를 직접 지원하므로 데이터 통신 프로세스가 간소화됩니다. 또한 이 프레임워크를 활용하여 지원되는 모든 데이터 액세스 프레임워크에 대한 리소스 래핑, 예외 처리 및 리소스 관리와 같은 기능을 제공할 수 있습니다.
스프링 MVC 프레임워크
개발자는 이 요청 기반 프레임워크를 사용하여 필요에 맞는 맞춤형 MVC 구현을 생성할 수 있습니다.
사용자의 요청을 처리하고 올바른 컨트롤러로 전달하는 DispatcherServlet 클래스는 Spring MVC의 핵심입니다. 따라서 컨트롤러는 요청을 처리하고 모델을 생성하며 지정된 보기를 통해 최종 사용자에게 정보를 제공할 수 있습니다.
여러 테스트 프레임워크 보유
Mock 객체, TestContext 프레임워크 또는 Spring MVC 테스트를 통해 Spring 기반 애플리케이션을 개발하면서 테스트할 수 있습니다.
언어 지원
Spring 프레임워크는 Groovy와 Kotlin을 지원합니다.
스프링 아키텍처
Spring Framework는 약 20개의 모듈과 함께 제공됩니다. 이 프레임워크의 좋은 점은 사용 사례에 적용할 수 있는 모듈을 선택할 수 있다는 것입니다. 이러한 모듈은 Core Container, AOP(Aspect Oriented Programming), Data Access/Integration, Web, Instrumentation 및 Test로 그룹화됩니다.
#1. 코어 컨테이너
Spring Framework의 Core Container에는 Core, Beans, Context 및 Expression Language 모델이 포함되어 있습니다. 이러한 언어 모델은 다음과 같은 방식으로 유용합니다.
- Core 모듈은 프레임워크의 기본 부분입니다. Core에서 IoC 및 종속성 주입 기능을 찾을 수 있습니다.
- Bean 모듈은 팩토리 패턴의 정교한 구현인 BeanFactory로 알려져 있습니다.
- 컨텍스트 모듈은 코어 및 빈 모듈에 구축됩니다. 이 모듈은 Bean 모듈에서 기능을 상속하지만 국제화 지원을 추가합니다.
- Expression Language 모듈은 런타임에 개체 그래프를 조작하고 쿼리하기 위한 강력한 표현 언어를 제공합니다.
#2. 데이터 액세스/통합
JDBC, ORM, OXM, JMS 및 트랜잭션 모듈은 데이터 액세스/통합 계층을 구성합니다. 이러한 모듈은 다음을 수행합니다.
- JDBC 모듈에는 지루한 JDBC 코딩과 데이터베이스 공급업체별 오류 코드의 구문 분석을 수행할 필요가 없는 JBDC 추상화 계층이 있습니다.
- ORM 은 JPA, JDO, Hibernate 및 iBatis와 같은 일부 인기 있는 개체 관계형 매핑 API에 대한 통합 계층입니다. '
- OXM 모듈은 XStream, JAXB, JiBX, Castor 및 XMLBeans에 대한 객체/XML 매핑 구현을 지원하는 추상화 계층입니다.
- 트랜잭션 모듈은 특수 인터페이스를 구현하는 클래스에 대한 선언적 및 프로그램적 트랜잭션 관리를 지원합니다.
- JMS( Java Messaging Service ) 모듈에는 메시지를 생성하고 소비하는 기능이 있습니다.
#삼. AOP(Aspect Oriented Programming) 및 계측
이 모듈은 메서드 인터셉터와 같은 것을 쉽게 정의할 수 있도록 하는 AOP Alliance 호환 측면 지향 프로그래밍 구현과 함께 제공됩니다. 반면 Instrumentation 모듈은 특정 애플리케이션 서버에서 사용할 클래스 로더 및 클래스 계측 지원을 제공합니다.
#4. 편물
Web, Web-Servlet, Web-Struts 및 Web-Portlet 모듈은 웹 계층을 구성합니다.
- 웹 모듈은 멀티파트 파일 업로드 기능과 같은 기본적인 웹 지향 통합 기능을 담당합니다.
- Web-Servlet 모듈은 웹 애플리케이션을 위한 Spring의 MVC 구현을 특징으로 합니다.
- Web-Portlet 모듈은 Web-Servlet 모듈의 기능을 미러링합니다. Web-Portlet 모듈은 포틀릿 환경에서 사용할 MVC 구현을 제공합니다.
- Web-Socket 모듈은 웹 애플리케이션에서 서버와 클라이언트 간의 양방향 통신을 지원합니다.
#5. 테스트
테스트 모듈은 Spring 아키텍처의 마지막 부분입니다. TestNG 또는 JUnit으로 Spring 구성 요소의 테스트를 지원하는 모듈입니다.
스프링 프레임워크 설치
자바가 설치되어 있는지 확인
Spring Framework 작동 방식을 배우기 전에 먼저 PC에 Spring을 설치해야 합니다. Spring 문서에는 운영 체제에 따라 시작하는 방법에 대한 광범위한 리소스가 있습니다.
우리의 경우 Linux 기반 운영 체제인 Ubuntu 20.04.5를 사용합니다.
Spring을 설치하기 전에 이 명령을 사용하여 Java가 설치되어 있는지 확인하십시오.
java -version
Java가 설치되어 있으면 이 스크린샷과 유사한 출력이 표시됩니다.
PC에 Java가 없는 경우 필요에 따라 Java를 설치하는 몇 가지 방법이 있습니다.
스프링 프레임워크 설치
Spring 문서에서 강조된 것처럼 Spring 프레임워크를 설치하는 방법에는 여러 가지가 있습니다.
우리의 경우에는 GVM(Groovy Environment Manager)을 사용합니다. GVMtool을 사용하여 GVM을 가져오거나 명령줄에 설치할 수 있습니다.
GVM이 있으면 다음 명령을 사용하여 설치하고 Spring 프레임워크가 설치되었는지 확인합니다.
gvm install springboot
spring --version
Spring이 설치된 경우 다음과 같은 출력을 얻을 수 있습니다.
Spring 프레임워크와 관련된 중요 용어
의존성 주입
종속성 주입은 개발자가 클래스 외부에서 독립적인 개체를 만들 수 있도록 하는 기능입니다. 또한 DI를 사용하면 사용자가 이러한 개체를 다양한 방식으로 클래스에 제공할 수 있습니다.
제어 역전(IoC)
IoC는 프로그램 또는 개체의 일부에 대한 제어를 프레임워크 또는 컨테이너로 이전하는 개념입니다. 기존 프로그래밍에서 사용자 지정 코드는 라이브러리를 호출합니다. 반면에 IoC는 프레임워크(이 경우 Spring)가 사용자 정의 코드를 호출하고 프로그램의 흐름을 제어할 수 있도록 합니다.
측면 지향 프로그래밍(AOP)
AOP는 전체 애플리케이션에 적용할 수 있는 공통적이고 재사용 가능한 루틴을 구축하기 위한 기술입니다. 이러한 접근 방식은 반복 가능한 작업(예: 입력 유효성 검사, 로깅 및 오류 처리)을 핵심 응용 프로그램 논리에서 분리합니다.
Spring Framework 학습 리소스
#1. Spring Framework 5를 사용한 반응형 프로그래밍
이 봄 과정은 비디오, 기사 및 다운로드 가능한 리소스로 구성됩니다. 이 과정은 Java를 사용한 기능적 프로그래밍, Spring WebFlux로 마이크로 서비스하는 방법 및 Spring Data MongoDB에서 Reactive 유형을 활용하는 방법을 가르칩니다.
#2. 스프링 프레임워크 마스터 클래스
Spring Framework Master Class는 Java 프로젝트에서 Spring Framework를 사용하는 실제 방법을 가르치는 유료 과정입니다. Spring Boot, JUnit & Mockito, Spring JDBC, Spring AOP, Hibernate와 같은 다양한 도구를 사용하는 방법을 배우게 됩니다.
#삼. 쉬운 단계의 Spring 프레임워크
Spring Framework In Easy Steps는 Spring Framework를 사용하여 엔드투엔드 Java EE 웹 애플리케이션을 생성하려는 경우에 수강할 수 있는 이상적인 프리미엄 코스입니다. Spring MVC를 사용하여 웹 애플리케이션을 개발하는 방법, JQuery와 Spring MVC를 사용하여 Ajax 호출을 만드는 방법, Spring JDBC를 사용하여 데이터베이스 작업을 수행하는 방법 등을 배우게 됩니다.
#4. 스프링 프레임워크 5
Spring Framework 5 과정은 Spring Framework 5, Spring Data MongoDB, Spring Boot 2, Spring MVC, Spring Data JPA 및 Hibernate를 배우려는 경우에 이상적입니다. 57시간 분량의 주문형 비디오, 13개의 기사 및 다운로드 가능한 많은 자료를 활용할 수 있습니다.
저자의 메모
Java는 현대 세계에서 가장 인기 있는 프로그래밍 언어 중 하나입니다. 새로운 언어가 도입되고 있지만 Spring과 같은 프레임워크는 Java에 새로운 생명을 불어넣고 유용성을 확장합니다. 따라서 우리는 레거시 코드를 유지하고 새로운 애플리케이션을 만드는 데 필요한 Java 엔지니어에 대한 수요를 계속해서 가질 가능성이 높습니다.
결론
Spring은 Java EE 프레임워크 중에서 높은 순위를 차지하고 있으며 이제 Spring Framework가 무엇인지, 기능, 아키텍처 및 작업 프로세스를 이해하셨기를 바랍니다. 다른 Spring 프로젝트와 결합하면 Spring Framework는 개발자에게 다양한 개발 환경에서 사용할 수 있는 다양한 개발 도구를 제공합니다.