본문 바로가기

스프링

스프링 - 시작

국비지원에서 처음 접하게 된 스프링은 매우 어려웠다. 다른 것은 어느정도는 이해해도 국비가 끝나고 일주일이 흐른 지금도 스프링 설정은 이해가 완벽히 가지 않는다. 그래서 다시한번 책을 보며 스프링의 설정과 스프링에대해 깊이 있는 공부를 하려한다. 

 

서론을 끝내고 이제부터 스프링에 대해 공부를 해보자. 책은 '자바 웹을 다루는 기술' 과 여러 구글에서 검색한 내용들을 바탕으로 이해한 것을 적어본다. (혹시라도 누군가 이 글을 본다면 제발 지적을 해주시고 바르게 이해할 수 있도록 도와주세요!!)

 

[스프링]

  • 프레임워크  
    스프링을 알기 위해서는 프레임워크가 무엇인지 알아야 한다. 프레임워크란 "뼈대, 구조" 란 의미이다. 애플리케이션에서는 아키텍처에 해당하는 골격 코드라고 할 수 있다
    애플리케이션에서는 전체구조를 결정하는 아키텍처 중요하다. 그런데 이런 아키텍처에 해당하는 코드를 작성하기란 쉽지 않다. 또 자주 사용되는 코드들도 있다. 그래서 이런 기능들을 클래스, 인터페이스로 만들어 제공하는 것이 프레임워크 라고 할 수 있다. 이것을 사용자가 자신의 필요에 맞추어 변혀으 추가 할 수 있다.
  • 스프링 프레임워크 정의
    스프링 프레임워크는 크게 두가지라 이해하였다(혹시 누군가 이 글을 보신다면 피드백 제발제발 주세요!!)

    - 자바 웹 애플리케이션 개발을 위한 오픈소스 프레임워크
    - 경량급 애플리케이션 프레임워크

    자바를 이용하여 개발 할 때, 스프링 프레임워크로 개발한다면 초기설정과 적용기술만 잘 선택하고 준비하면 개발자는 비즈니스 로직에만 집중하도록 도와주는 프레임워크이다. 다른 API 같은 것에 신경쓰지 않아도 되니 더 좋은 코드를 작성 할 수 있다고 한다. 

    경량급이란 스프링 이전에 사용하던 EBJ 프레임워크의 복잡한 절차와 코드를 제거하고 배우기 쉬우면서 사용하기에도 쉬운 프레임워크로 만든 것을 의미한다고 한다.

  • 스프링 프레임워크의 특징
    - 경량 컨테이너 : 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로 부터 필요한 객체를 얻어                           올 수 있다.
    - POJO방싱의 프레임워크 : Plain Old Java Object로 평범한 엤날 자바객체이다.(ㅎㅎ) 기존의 라이브러리를 지원하                                    기에 용이하고 객체가 가볍다.
    - 제어역행 : 애플리케이션 간의 느슨한 결합을 제어한다. 제억역행으로 서블릿이나 빈 들을 개발자가 코드에서 생                  성하지 않고 프레임워크가 집적 수행한다.
    - 의존성 주입 : 각각의 계층이나 서빗그들 간의 의존성이 존재할 경우 프레임워크가 연결해준다.
    - 관점지향 : 핵심기능 외 부수기능들을 분리 구분하여 모듈성을 증가시킨다.
    -영속성과 관련된 다양한 서브슫들을 지원한다.
    -수많은 라이브러리와의 연동 기능을 지원한다.

[느낀점]

책을 다시 천천히 읽으며 전부 처음 보는 것 같은 느낌이 들었다. 이 짧은 글을 쓰기위해 4시간 동안 이해하려고 노력했다. 이 글은 스프링의 전체적인 그림을 그리는 느낌이지만 이제 각각의 특징들에 대해 상세히 들어가면 지금보다 이해도가 더욱 깊어 질 것이라 생각한다. 

[출처]

1. 자바 웹을 다루는 기술/이병승/2019.01.07/길벗

2. https://ooz.co.kr/170#comment12454058 /이러쿵저러쿵/스프링(Spring) 프레임워크 기본 개념 강좌 (1) - 스프링 이해하기(아직 문의는 남겼지만 허락을 받지 않았습니다. 문제시 바로 지우겠습니다!!)

3. 누구나 끝까지 따라 할 수 있는 스프링 부트/채규태/2019.06.26/Ruby Paper