728x90
반응형
'토비의 스프링3' 개발 서적을 읽으며 내용을 정리한 글입니다.
8.1 스프링의 정의
스프링을 한 줄로 정의를 내린다면 아래와 같다고 할 수 있다.
자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크
풀이
- 애플리케이션 프레임워크
- 엔터프라이즈 전 계층과 전 영역에 전략과 기능을 제공해줌으로써 애플리케이션을 편리하게 개발하게 해주는 애플리케이션 프레임워크로 사용된다.
(단지 JDBC/ORM 지원 or IoC/DI 프레임워크 or AOP툴이라고만 본다면 일부만 본 것이다.)
- 엔터프라이즈 전 계층과 전 영역에 전략과 기능을 제공해줌으로써 애플리케이션을 편리하게 개발하게 해주는 애플리케이션 프레임워크로 사용된다.
- 경량급
- 개발환경과 서버가 불필요하게 복잡하거나 무겁지 않다.
- 비교 : EJB기술은 느리고 무거운 자바(WAS)서버가 필요했다. 제대로 된 개발환경(패키징,서버 배치) 갖추지 않고는 개발이 어려웠다.
- 만들어진 코드가 지원하는 기술수준은 비슷하더라도 그것을 훨씬 빠르고 간편하게 작성하게 해줌으로써 생산성과 품질 면에서 유리하다는 의미.
- 오해 : 기술 수준이나 규모가 작고 가벼운게 X, 유치하고 용도가 제한적이라는 의미X
- 비교 : 작고 가볍지만 고성능의 스포츠카(=스프링)와 덩치 크고 성능 떨어지는 차(EJB 같은 타 기술)
- 개발환경과 서버가 불필요하게 복잡하거나 무겁지 않다.
- 자바 엔터프라이즈 개발을 편하게
- 기본 설정과 적용 기술만 잘 선택하고 준비해두면 이후 개발 중 스프링 관련 코드나 API에 대해 개발자가 신경쓸 일이 없다.
- 🔍엔터프라이즈 개발이 뭘까?
- 기업을 대상으로 하는 개발. (ex. 은행 전산망) 커다란 규모의 환경에서의 개발.
- 오픈소스
- 스프링은 오픈소스이기 때문에 수많은 버그, 이슈, 기술에 대해 누구나 참여하여 만들어나갈 수 있다. 매우 빠르고 유연한 개발이 가능하다.
- 오픈소스인 만큼 지속적, 불안정적이라는 단점이 존재한다. 그 해결방안으로 지속적인 개발을 책임지고 품질관리를 하는 전문 기업을 만들어서 전문 개발자가 오픈소스 개발을 책임지고 지원할 수 있게 되었다.
- -> 장점을 충분히 취하며 오픈소스의 단점과 한계를 작 극복하는 전문적이고 성공적인 오픈소스 소프트웨어
8.2 스프링의 목적
- 굳이 스프링을 사용해서 엔터프라이즈 애플리케이션 개발을 편하게 하려는 이유?
-> 엔터프라이즈 시스템 개발이 복잡해서 - 복잡함의 근본적인 이유?
- 기술적인 제약조건과 요구사항의 증가
- 구현할 핵심인 비즈니스 로직의 복잡함의 증가
- 원인: 엔터프라이즈 기술과 핵심인 비즈니스 로직의 복잡함이 한데 얽혀있다.
- 예시
비즈니스 로직 : 거래내역을 분석하고 특성을 파악해 적절한 추천상품 선정하기
엔터프라이즈 기술 : XML파서 라이브러리로 고객ID추출 / DB조회 시 캐시API 호출 후 DB풀 커넥션 가져와서 JDBC API 이용해 정보 가져오기 / 로그 라이브러리 호출 / 사용자 정보 보안 API 통해 권한 파악 / 예외 처리
- 자바 : 객체지향 기술 그 자체이다.
스프링 : 객체지향 언어의 장점을 제대로 살리지 못하게 방해했던 요소를 제거하고 도와주기 위해 존재한다. - 스프링의 모든 기술과 전략은 객체지향이라는 자바 언어가 가진 강력한 도구를 극대화해서 사용할 수 있도록 돕는 것. 스프링은 단지 거둘 뿐! (객체지향 전략을 이용해서 - DI, AOP, 템플릿/콜백, ...)
- 그래서 스프링의 목적은? (추상적 의미)
: 애플리케이션 개발의 복잡함을 줄여주는 것 또는 효과적으로 대응하게 해주는 것
이번 글에서는 스프링의 이론적이고 추상적인 목적을 이해했다면,
다음 글에서는 POJO를 알아보며 스프링의 기술적인 목적에 대해 알아볼 것이다.
728x90
반응형
'개발 독서 > 토비의 스프링3' 카테고리의 다른 글
[토비의 스프링3] 1. 오브젝트와 의존관계(1) - DAO 분리 (0) | 2021.04.13 |
---|---|
[토비의 스프링3] 8-4. 스프링의 기술(2) - AOP, PSA (0) | 2021.03.25 |
[토비의 스프링3] 8-4. 스프링의 기술(1) - IoC/DI (0) | 2021.03.25 |
[토비의 스프링3] 8-3. POJO 프로그래밍 (0) | 2021.03.23 |