728x90
스프링이란?
- 자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크
- Java Virtual Machine에서 작동하며, 아파치 라이선스를 따르는 오픈 소스 프레임워크
스프링 컨테이너
- 설정 정보를 참고하여 애플리케이션을 구성하는 오브젝트를 생성하고 관리
- 독립적으로 동작할 수도 있지만 보통 웹 모듈에서 동작하는 서비스나 서블릿으로 등록하여 사용
Ioc/DI, 서비스 추상화, AOP
IoC/DI
- 오브젝트의 생명 주기와 의존관계에 대한 프로그래밍 모델
- 객체지향 설계 원칙과 디자인 패턴의 핵심 원리를 담고 있다.
- 스프링이 직접 제공하는 모든 기술과 API, 컨테이너도 IoC/DI방식으로 작성됨
서비스 추상화
- 환경이나 서버, 특정 기술에 종속되지 않고 이식성이 뛰어난 애플리케이션을 만들 수 있도록 지원
- 구체적인 기술과 환경에 종속되지 않도록 유연한 추상 계층을 두는 방법
AOP
- 애플리케이션 코드에 산재해서 나타나는 부가적인 기능을 도긻적으로 모듈화하는 프로그래밍 모델
- 다양한 엔터프라이즈 서비스를 적용하더라도 깔끔한 코드를 유지할 수 있다.
기술 API
- 웹 프레젠테이션 계층, 비즈니스 서비스 계층, 기반 서비스 계층, 도메인 계층, 데이터 액세스 계층 등 필요한 주요 기술을 스프링에서 일관된 방식으로 사용할 수 있도록 지원해주는 기능과 전략 클래스 등을 제공
- 스프링의 프로그래밍 모델에 따라 작성되어 있기 때문에, 가져다 쓰는 것만으로 스프링의 프로그래밍 모델을 코드에 자연스럽게 적용할 수 있다.
스프링의 성공요인
단순함(Simplicity)
- 목적을 이룰 수 있는 가장 단순하고 명쾌한 접근 방법
- 객체지향 언어의 장점을 살릴수 있도록 도와주는 도구
- POJO프로그래밍을 주장
유연성(Flexibility)
- 스프링은 다른 많은 프레임워크와 편리하게 접목하여 사용 가능
- 스프링 기능의 대부분은 핵심 기능을 확장해서 발전시킨 결과물
- 시간이 지남에 따라 경험하게 되는 버전 호환성의 문제가 스프링에는 거의 없다.
POJO(Plain Old Java Object)
- 특정 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트
- ex) Vo, Entity, DTO
POJO 장점
- 특정 규약에 종속되지 않기 때문에 객체지향적인 설계를 할 수 있게 된다.
- 특정 환경에 종속되지 않기 때문에 테스트하기에 좋다.
- 특정 규약에 종속되지 않기 때문에 로우레벨 코드와 비즈니스 코드가 분리되어 깔끔한 코드 작성이 가능하다.
참조
반응형
'Server > Spring&Spring Boot' 카테고리의 다른 글
[토비의 스프링] 오브젝트와 의존관계 - DAO의 분리 (0) | 2022.10.24 |
---|---|
[토비의 스프링] 오브젝트와 의존관계 - 초난감 DAO (0) | 2022.10.24 |
[Spring] @PathVariable로 불러온 값을 JSP에서 사용하기 (0) | 2022.07.07 |
[Spring] 스프링 셋팅 (국비지원 최종 Ver) (0) | 2022.07.06 |
[Spring] 파라미터가 없을 때(null) @RequestParam 사용하는 법 (0) | 2022.06.22 |