[77일차] Spring framework

SOSO·2022년 8월 6일
0

학원

목록 보기
56/59
post-thumbnail

Spring

Spring framework 란?

스프링은 EJB(Enterprise Java Beans)의 무겁고 복잡한 플랫폼에서 벗어나, POJO(Plain Old Java Object)기반의 경량화된 개발 환경을 제공하는 오픈소스 프레임워크이다.

중량급인 J2EE 컨테이너를 대신할 경량 컨테이너로서 스프링을 고안.
경량 컨테이너란 POJO(Plain Old Java Object)로 불리는, 컨테이너와 프레임워크 등에 의존하지 않는 일반 오브젝트의 생애 주기 관리나 오브젝트 간의 의존 관계를 해결하는 아키텍처를 구현한 컨테이너.

Spring framwork 특징

  • 경량(Lightweight)
    스프링은 여러 개의 모듈로 구성되어 있으며, 각 모듈은 하나 이상의 JAR 파일로 구성되어있다. 그리고 이 몇 개의 JAR 파일만 있으면 개발과 실행이 모두 가능하고 크기도 작다. 따라서 스프링을 이용해서 만든 애플리케이션의 배포 역시 매우 빠르고 쉽다.

  • IoC(Inversion of Control) 컨테이너
    IoC가 적용되기 전에는 애플리케이션 수행에 필요한 객체의 생성이나 객체와 객체 사이의 의존관계를 개발자가 직접 자바 코드로 처리했었다. 하지만 IoC가 적용되면 객체 생성을 자바코드로 직접 처리하는 것이 아니라 컨테이너가 대신 처리한다.
    IoC 컨테이너는 자바 객체의 생성, 소멸과 같은 라이프 사이클을 관리하며, 스프링 컨테이너로부터 필요한 객체를 가져와 사용.

  • DI(Dependency Injection)를 지원
    설정 파일이나 어노테이션을 통해서 객체 간의 의존 관계를 설정(의존관계 주입)

  • AOP(Aspect Oriented Programming) 지원
    관점지향 프로그래밍은 공통으로 사용하는 기능들을 외부의 독립된 클래스로 분리하고, 해당기능을 프로그램 코드에 직접 명시하지 않고 선언적으로 처리하여 적용하는 것을 말한다.
    트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통으로 필요로 하지만 실제 모듈의 핵심은
    아닌 기능들을 분리해서 각 모듈에서 적용

  • POJO(Pain Old Java) 지원.
    POJO란 말 그래도 평범한 옛날 자바 객체를 의미한다.

  • 트랜잭션 처리를 위한 일관된 방법 제공.

  • JDBC, MyBatis(iBatis), 하이버네트, JPA 등 데이터베이스 처리를 위한 라이브러리 연동

  • JMS, 메일, 스케줄링 등 엔터프라이즈 어플리케이션을 개발하는데 필요한 다양한 API 연동

  • Spring MVC
    Model,View,Controller 사이의 의존관계를 컨테이너에서 관리

AOP

AOP(Aspect Oriented Programming)는 공통의 관심사항을 적용해서 발생하는 의존 관계의 복잡성과 코드 중복을 해소해 주는 프로그래밍 기법. 보안이나 트랜잭션과 같은 공통 기능을 별도의 모듈로 구현한 뒤, 각 기능을 필요로 하는 곳에 적용.

Maven

메이븐(Maven)은 소프트웨어를 개발할 때 반복되는 작업을 자동화하는 빌드 도구.
메이븐을 사용하면 표준 프로젝트를 일관된 방식과 구조로 관리하고 배포하고 운영할 수 있다.

Maven의 특징

  • 정형화된 구조와 절차를 제공 : Maven은 컴파일(compile),패키징(package),테스트(test)등의 작업 프로세스를 정형화하고 이를 준수하도록 장제

  • 디펜던시 라이블러리 해결을 자동화 : 디펜던시 라이블러리 혹은 라이브러리 디펜던시는 라이브러리 의존성(혹은 종속성)을 의미한다. 애플리케이션을 실행하기 위해 필요한 라이브러리들과 그 라이브러리들이 필요로 하는 라이브러리들을 가리킨다.

  • 라이브러리 관리가 용이 : Maven에서는 라이브러리 전용 저장소(repository)를 제공하므로, 통합 관리가 가능

  • 라이프 사이클을 가짐 : 라이프 사이클에 따라서 연속적으로 단계를 설정

  • 다양한 플러그인을 활용할 수 있음 : 플러그인으로 기능을 확장한다. 플러그인을 사용하면 IDE 프로젝트로 자동 변환, 데이터베이스 통합, 다양한 리포트 생성 등의 작업을 수행할 수 있다. Maven은 pom.xml 파일에 위의 내용을 기술한다

profile
한다 열심히

0개의 댓글