스프링이란

자바, 스프링 개발자들의 종착역이자, 주기적으로 다시 돌아오는 그곳, <토비의 스프링 3.1>을 드디어 읽는다.

한창 개발 걸음마를 막 떼고 스프링으로 아장아장 기어다니며 CRUD를 할 때즈음, 토비의 스프링을 찬양하고 있는 많은 개발자들을 보았고, 역시 지식이 깊어지려면, 책을 통해서 지식을 정리하고 깊이를 다지는 시간이 필요하겠구나, 생각했다. 하지만, 개발을 이제 막 배운 그때의 나에게 토비 책은 너무나도 무시무시했고, 토비책을 읽다가 개발을 포기한 사람들의 증언도 여럿 읽고 나니, 이 책은 개발자로서 레베루업이 필요할 때즈음, 다시 꺼내봐야겠다고 생각했다.

그리고 지금이다. 퇴사 후, 이직을 준비하는 동안, 지식의 깊이를 좀 더 다져놓고 싶다는 생각이 들었고, 집앞 도서관에서 (아무도 빌려가지 않는) 토비님의 책을 빌려서 읽기 시작했다. 처음에는 가볍게 읽기 시작했지만, 읽을 수록 인사이트가 쌓여, 기록하면서 제대로 읽고 싶어졌다. 그래서 나의 세컨 브레인인 이곳 블로그에 짧은 글들로 그 내용을 적어보며, 토비님으로부터 얻은 인사이트를 내것으로 만들어보고자 한다.

스프링이란

  • 자바 엔터프라이즈 어플리케이션 개발에 사용되는 웹 어플리케이션 프레임워크이다.

  • 스프링을 통해 개발을 보다 빠르고 효율적으로 할 수 있다.

    • 어플리케이션의 바탕이 되는 틀, 공통 프로그래밍 모델, 기술 API 등을 제공

  • 어플리케이션 기본 틀 : 스프링 컨테이너

    • 스프링은 스프링 컨테이너(어플리케이션 컨텍스트)라고 불리는 스프링 런타임 엔진을 제공한다.

    • 스프링 컨테이너는 설정정보를 참고하여 어플리케이션을 구성하는 오브젝트를 생성하고 관리함

  • 공통 프로그래밍 모델 : IoC/DI, 서비스 추상화, AOP

    • IoC/DI

      • 오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델

      • 객체지향 설계 원칙과 디자인 패턴의 핵심 원리를 담음

      • 가장 중요한 기술

    • 추상화

      • 이식성이 뛰어나 특정 환경, 서버, 기술에 종속되지 않는 어플리케이션을 만들 수 있다.

      • 구체적인 기술과 환경에 종속되지 않도록 추상 계층을 두는 방법이다.

    • AOP

      • 어플리케이션 코드와 섞인 부가 기능 코드를 독립적으로 모듈화하는 프로그래밍 모델이다.

  • 기술 API

    • 표준 자바 엔터프라이즈 플랫폼에 기반을 두고 있다.

    • 개발의 다양한 영역에 바로 활용할 수 있는 기술 API 를 제공한다.

Last updated