본문 바로가기

좋아하는 것_매직IT/1.spring

0.Spring, 도대체 무엇이 스프링 프레임워크일까? ^^ .. 한번 간단하게 알아보자!

반응형

· 블로그의 목적

 - 스프링 프레임 워크에 대해서 간단하게 알아본다.

· 스프링 프레임 워크에 대해서 알아보자. ^^

- 스프링 프레임 워크 1.0

 - 첫번째 버전은 2004년 3월에 릴리즈 됨.

- 스프링은 10년 넘게 JAVA 어플리케이션을 구축하는 데 기준이 되는 프레임 워크

- 스프링 프레임워크가 제공하는 것은?

 - 최신 JAVA기반 엔터프라이즈 애플리케이션을 위한 포괄적인 프로그래밍 및 구성 모델을 제공한다.

- 참고페이지

- https://spring.io/

- 위 참고페이지를 가면 아래 내용이 실시간으로 주르륵(?) 나온다. ^^;

 - Spring makes Java simple / modern / productive / reactive / cloud-ready .

  - 직독직해 하자면,

   - 스프링은 만든다 / 자바를 / 단순 / 현대적 / 생산적 / 반응적/ 클라우드 지원...

   - 다시 정리해서 요약하자면,

    - 스프링은 자바를 단순하고, 현대적이고, 생산적이고, 반응적이고, 클라우드 지원하게 만드는 것이라고 설명할 수 있을까? ^^ 암튼 그렇다..

- 위 참고페이지는 또 아래와 같이 말하고 있다.

 - Why Spring?

  - Spring makes programming Java quicker, easier, and safer for everybody. Spring’s focus on speed, simplicity, and productivity has made it the world's most popular Java framework.

   - 이번에는 그냥 해석해 보자.^^

    - Spring은 모든 사람을 위해서 Java 프로그래밍을 더 빠르고 쉽고 안전하게 만듭니다. Spring은 속도, 단순성 및 생산성에 중점을 두어 한국뿐만아니라, 전세계에서 가장 인기있는 Java 프레임 워크가 되었다고 하네요..^^

- 그럼, 스프링 프레임워크의 주요 사용 목적은?

 - 애플리케이션의 여러부분을 연결하는 데 필요한 모든 기술을 제공하고 전담처리하는 것.

   - 즉, 프로그래머는 오직 비즈니스 로직개발업무에만 집중할 수 있는 장점 제공.

· 스프링 프레임 워크가 인기있는 이유는?

- 스프링 프레임 워크가 2004년 3월에 릴리즈 되고 나서, 그 후 10년 동안 꾸준히 인기를 끔.

- 스프링 프레임 워크의 특징은 아래와 같음

 - 하나, 단순화된 단위 테스팅

 - 둘, 복잡한 코드 감소

 - 셋, 아키텍처의 유연성

 - 넷, 변화하는 시대를 선도

- 아래에서 자세히 알아보자 ^^;

· 단순화된 단위 테스팅

 - 스프링 프레임워크는 의존성 주입 개념을 도입함.

 - 의존성을 자신의 mock 로 쉽게 대체함으로 단위 테스팅을 가능하게 했음.

 - 즉, 단위 테스트를 위해 전체 어플리케이션을 배포할 필요가 없음.

· 복잡한 코드 감소

 - 스프링 프레임워크는 프로그래머가 비즈니스 로직을 작성하는 프로그래머의 주된 업무에 집중할 수 있게 해줌.

 - 복잡한 코드를 피하는 것은 코드의 중복을 줄이는 또 다른 이점이 존재함.

 - 트랜잭션 관리, 예외처리 등과 같은 모든 코드가 한곳에서 구현되므로 유지관리가 더 쉽게됨.

· 아키텍처의 유연성

- 스프링 프레임워크는 모듈식.

 - 핵심 스프링 모듈 위에 구축된 독립적인 모듈 세트로 구축 됨.

   - 대부분의 스프링 모듈은 독립적 특징을 가짐.

    - Web Layer

     - 스프링은 독자적인 프레임 워크인 Spring MVC 를 제공함.

      - but, 스프링은 스트럿츠, 바딘, JSF or 원하는 웹 프레임워크를 지원함.

    - Spring Beans

     - 비즈니스 로직을 위한 경량 구현체를 제공함.

      - but, EJB와도 통합될 수 도 있다고 함.

    - Data Layer

     - 스프링은 Spring JDBC 모듈을 사용해 JDBC 를 단순화 함.

      - but, 스프링은 JPA(Java Persistence API), 하이버네이트(JPA의 유무와 관계없다고함) or ibatis와 같이 원하는 Data Layer Framework를 지원한다고 함.

   - Spring AOP 를 사용해서 횡단 관심(Logging/Transaction/Security등등)을 구현할 수 있음.

    - AspectJ와 같이 완벽하게 구현된 AOP 구현과 통합도 가능하다고 함.

- 스프링 프레임워크는 애플리케이션의 서로 다른 부분들 간의 결합을 줄이고, 이를 테스트 할 수 있게 만드는 핵심 작업에 중점을 두면서 사용자가 선택한 Framework와 훌륭한 통합을 제공함.

 - 즉, 아키텍처에 융통성이 있다는 것을 의미함.

· 변화하는 시대를 선도

- 스프링 프레임워크는 애플리케이션을 테스트 할 수 있게 만드는데 중점.

 - but, 스프링 프레임워크는 제공되는 유연성과 모듈로 시대를 앞서가고 있음.

  - 예시)

   - 애플리케이션을 특정 구현과 분리하기 위해 JAVA EE보다 많은 추상화를 도입함.

   - JAVA EE보다 앞서 Spring MVC 용 어노테이션기반 컨트롤러 모델을 선보임.

 - 기타등등.

- 스프링 프로젝트 그룹이 존재함.

 - Spring Framework 는 스프링 프로젝트의 많은 프로젝트 중 하나일 뿐.

 - 아키텍처가 클라우드 및 마이크로서비스로 진화함에 따라 새로운 클라우드기반 스프링 프로젝트가 많이 나타남.

     - 스프링 클라우드

      - 마이크로서비스의 개발 및 배포를 단순화하는데 많은 기여를 함.

     - 스프링 클라우드 데이터 플로

      - 마이크로서비스 애플리케이션과 관련된 오케스트레이션을 제공함.

· 결론

- 스프링 프레임워크가 제공하는 것은 최신 JAVA기반 엔터프라이즈 애플리케이션을 위한 포괄적인 프로그래밍 및 구성 모델을 제공하고 있음.

- 스프링 프레임워크의 주요 사용 목적은 애플리케이션의 여러부분을 연결하는 데 필요한 모든 기술을 제공하고 전담하면서, 프로그래머는 오직 비지니스 로직 개발에만 전념할 수 있도록 해주는 것이 목적임.

- 스프링 프레임워크의 특징은 아래와 같음(아래 특징으로인해 현재까지 사랑받는 프레임워크가 됨)

 - 하나, 단순화된 단위 테스팅

 - 둘, 복잡한 코드 감소

 - 셋, 아키텍처의 유연성

 - 넷, 변화하는 시대를 선도

- 오늘도 Spring Framework 가 무엇인지 대한 마술(?) 한가지 획득완료, 감사합니다. ^^


오늘의 명언 한마디

- 모든게 변한다. 시간이 고무줄처럼 늘어났다가 줄어든다. 아무일도 안일어나는 것 같다가 돌연 마구잡이로 터진다.

- 그러다 또 아무일도 안일어난다. 죽음에 이르는 과정은 함께 길을 걷다 헤어지는 것과 같다.

- 우리는 나란히 길을 걷거나 한 사람이 앞서고, 나머지가 뒤따르며 걷는다.

- 갈림길에 이르러서 우리는 한동안 서성거린다. 그러다 한사람이 몸을 틀고 한쪽 길을 따라 걸어가면 남은 사람은 고개를 숙이며 배웅한다.

- 우리는 그 사람이 가는 모습을 지켜보며 손을 흔들고 이름을 부른다. 하지만 그는 고개를 돌리지 않는다.

- 그들은 세상 돌아가는 이야기도, 당신의 직장이나 아이들 이야기도 더 이상 나누고 싶어하지 않는다.

- 그냥 홀로 걸어가는 것 말고는 아무것도 하지 않는다.

 - 샐리 티스테일 지음, "인생의 마지막 순간에서" 중에서..


오늘의 영어 한마디

- More smoke is flowing from the house.

 - 더 많은 연기가 흘러나오고 있다. / 그 집에서

- 해설

 - "from" 은 연기가 나는 출처를 표시함.

 - "from" 은 무엇이 어디서 나왔는지 출처, 기원(origin)을 표시함

300x250