본문 바로가기

개발 독서/토비의 스프링3

[토비의 스프링3] 8.1~2 스프링의 정의, 목적

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
반응형