[Spring] 스프링이란?

extory1004·2022년 2월 12일

SpringFramework

목록 보기
1/4

스프링은 자바 애플리케이션 개발을 위한 경량 프레임워크이다.스프링은 크게 두가지 특징이 있습니다.

첫번째로, 스프링은 웹 애플리케이션의 개발에만 사용되는 여러 프레임워크와는 다르게 어떤 형태의 자바 애플리케이션이라도 개발할 수 있게 해줍니다.

두번째로, 스프링은 스프링 코어를 활용할 때 기존 애플리케이션 코드를 거의 바꾸지 않아도 된다는 점에서 매우 가벼우며, 사용하지 않기로 했을 때는 간단하게 스프링을 제거할 수 있습니다.

위 두가지 특징이 있기 때문에 스프링 프레임워크는 "경량 프레임워크"라고 불리는 것입니다.

스프링의 기능

1. 의존성 주입(DI)

일반적으로 객체를 생성할 때 코드에 new를 사용하여 생성하지 않고, 프레임워크가 직접 객체를 생성하여 그것을 필요한 클래스에게 전달해주는 기능

2. 관점 지향 프로그래밍(AOP)

애플리케이션의 여러 부분에 공통으로 적용되는 로직을 한 곳에 구현하고 애플리케이션 전반에서 자동으로 적용할 수 있게 해주는 기능

3. 스프링 표현식 언어(SpEL)

애플리케이션이 런타임 시점에 자바 객체를 사용할 수 있게 해주는 기능

4. 스프링 유효성 검증 API

유효성 검증 규칙을 일관된 방식으로 처리할 수 있게 도와주는 API(Validator 클래스)

5. JDBC, 하이버네이트, JPA 제공

데이터 액세스 도구와 통합이 잘 되며, 데이터 액세스 기술을 쉽게 혼용할 수 있는 기능

6. XML 매핑(OXM)

자바 빈을 XML로 XML을 자바 빈으로 자유롭게 변환이 가능

7. 트랜젝션 관리

트랜잭션 추상화 레이어를 사용해 기본 트랜잭션 프로토콜과 리소스 관리자를 쉽게 변경할 수 있는 기능

8. JEE 단순화 및 연동

JDNI로 접근할 수 있는 위치에 저장된 모든 리소스를 대상으로, 복잡한 코드없이 리소스를 런타임에 다른 객체에 의존성으로 주입할 수 있는 기능

9. 웹 MVC

웹 애플리케이션 개발 시 MVC 패턴과 광범위한 뷰를 제공(JSP,아파치 벨로시티, 프로마커, 타일즈 등등)

10. 웹소켓

웹소켓은 클라이언트와 서버 사이에 지속적인 연결을 생성하기 위한 API로, 웹소켓 스타일의 개발은 빠른 응답의 애플리케이션을 위한 실시간 메시지를 교환하는 효율적인 전중 통신을 지원

11. 리모팅 지원

원격 서비스에 쉽게 접근하고 원격 서비스를 노출할 수 있게 해주는 기능

12. 메일 지원

DI를 이용한 이메일 메세지를 전송할 수 있는 API 제공

13. 동적 스크립트 언어 지원(예. 그루비,자바스크립트)

자바 이외의 다른 언어로 작성된 스크립트를 실행할 수 있게 해주는 기능

14. 단순한 예외 처리

예외 처리 코드를 줄이고 에러 식별과 진단 기능을 향상시키는 기술

15. 잡 스케줄링 지원

유지보수 작업을 할 때 정해진 시간에 코드를 실행하도록 예약하는 기능

위와 같은 기능들로 자바 애플리케이션을 개발 할 때 코드양과 복잡성을 줄이고, 가독성과 크로스 커팅 이슈를 해결할 수 있게 된다.

profile
코딩하는 대학생

0개의 댓글