Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.51 KB | None | 0 0
  1. <h1 id="스프링의-소개">스프링의 소개</h1>
  2.  
  3. <h2 id="스프링이란">스프링이란?</h2>
  4.  
  5. <ul>
  6. <li>자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크</li>
  7. <li>EJB(Enterprise Java Beans)의 단점을 보완한 프레임 워크</li>
  8. <li>DI(Dependency Injection, 의존성 주입)과 AOP(Aspect-Oriented Programing, 관점 지향 프로그래밍)이 지원되는 경량 컨테이너 & 프레임워크</li>
  9. <li>자바 플랫픔으로서 자바 애플리케이션을 개발하는데 필요한 하부 구조를 포괄적으로 제공한다.</li>
  10. <li>스프링이 하부 구조를 처리하므로 개발자는 애플리케이션 개발에 집중할 수 있다.</li>
  11. </ul>
  12.  
  13.  
  14.  
  15. <h3 id="경량화">경량화</h3>
  16.  
  17. <ul>
  18. <li>스프링 자체가 가볍거나 작은 규모의 코드로 이루어진 것은 아니다.</li>
  19. <li>오히려 스프링은 20여개의 모듈로 세분화되고 복잡하고 방대한 코드를 가진 프레임워크이다.</li>
  20. <li>경량화가 특징인 이유는 기존 자바 엔터프라이즈 기술의 불필요한 복잡함에 반대되는 개념에서 시작되었다.</li>
  21. <li>주류 기술이었던 EJB는 고가의 무거운 자바 서버(WAS)가 필요했고, 다루기 힘든 설정파일 구조, 패키징, 불편한 배포 등이 단점이었다.</li>
  22. <li>반면, 스프링은 톰캣과 같은 단순한 서버환경에서도 동작하며, 단순한 개발환경으로도 엔터프라이즈 애플리케이션 개발하는데 충분하다.</li>
  23. <li>또 EJB 등의 기존 프레임워크에서 만들어진 코드에 비해 코드량이 적고 단순하기도 하다.</li>
  24. <li>즉, 기존에 비해 빠르고 간편하게 애플리케이션을 개발할 수 있어 생산성이 뛰어난 프레임워크다.</li>
  25. </ul>
  26.  
  27. <h3 id="스프링-기능">스프링 기능</h3>
  28.  
  29. <ul>
  30. <li>경량 컨테이너로서 자바 객체를 직접 관리 <br>
  31. <ul><li>각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다.</li></ul></li>
  32. <li>POJO(Plain Old Java Object) 방식의 프레임워크 <br>
  33. <ul><li>일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍다.</li></ul></li>
  34. <li>제어 반전(또는 제어의 역전)(IoC: Inversion of Control)을 지원 <br>
  35. <ul><li>컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.</li></ul></li>
  36. <li>의존성 주입(DI: Dependency Injection)을 지원 <br>
  37. <ul><li>각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.</li></ul></li>
  38. <li>관점 지향 프로그래밍(AOP: Aspect-Oriented Programming)을 지원 <br>
  39. <ul><li>트랙잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.</li></ul></li>
  40. <li>확장성이 높음 <br>
  41. <ul><li>스프링 프레임워크에 통합하기 위해 간단하게 기존 라이브러리를 감싸는 정도로 스프링에서 사용이 가능하다.</li>
  42. <li>수많은 라이브러리가 이미 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도 용이하다.</li></ul></li>
  43. <li>다른 프레임워크들의 통합</li>
  44. </ul>
  45.  
  46.  
  47.  
  48. <h3 id="스프링의-구성">스프링의 구성</h3>
  49.  
  50. <p>*Spring Core <br>
  51. * Core 컨테이너 기능 <br>
  52. * Spring 프레임워크의 근간이 되는 IoC (또는 DI) 기능을 지원하는 영역 <br>
  53. * BeanFactory를 기반으로 Bean 클래스들을 제어할 수 있는 기능을 지원한다. <br>
  54. * Spring Context <br>
  55. * Spring Core에서 지원하는 기능외에 추가적인 기능들과 좀 더 쉬운 개발이 가능하도록 지원한다. <br>
  56. * 또, JNDI, EJB 등을 위한 Adaptor들을 포함하고 있다. <br>
  57. * AOP <br>
  58. * Spring 프레임워크에 AOP를 지원하는 기능이다. <br>
  59. * DAO <br>
  60. * JDBC 기반하의 DAO 개발을 좀 더 쉽고, 일관된 방법으로 개발하는 것이 가능하도록 지원한다. <br>
  61. * ORM <br>
  62. * Object-Relational Mapping 프레임워크인 Hibernate, MyBatis, JDO와의 결합을 지원하기 위한 기능이다. <br>
  63. * Spring Web <br>
  64. * Web Application 개발에 필요한 Web Application Context와 MultipartRequest 등의 기능을 지원한다. <br>
  65. * Portlet <br>
  66. * 포탈 서버에서 돌아가는 독립된 웹 애플리케이션 원격 지원 기능</p>
  67.  
  68.  
  69.  
  70. <h3 id="스프링-창시자">스프링 창시자</h3>
  71.  
  72. <ul>
  73. <li>스프링의 창시자인 로드 존슨(Rod Johnson) <br>
  74. <ul><li>2003년 『Expert One-on-One J2EE Design and Development』책을 출간하여 JE22 애플리케이션 설계와 독창적인 개발 전략을 다루었다.</li>
  75. <li>“항상 프레임워크 기반으로 접근하라”를 강조하였다.</li></ul></li>
  76. </ul>
  77.  
  78.  
  79.  
  80. <h3 id="오픈소스">오픈소스</h3>
  81.  
  82. <ul>
  83. <li>스프링은 아파치 라이선스 2.0(Apache License Ver 2.0)을 따른다. <br>
  84. <ul><li>영리 목적 및 비공개 프로젝트에 자유롭게 이용가능하다.</li>
  85. <li>스프링을 사용하고 원 저작자를 밝히고 라이선스 정보를 포함시키는 등의 의무사항을 지켜야 한다.</li></ul></li>
  86. <li>오픈소스는 무료로 이용할 수 있고 소스코드가 모두 공개되어 수많은 다양한 환경의 개발자들이 사용하므로 테스트에 용이하고, 빠른 피드백을 받을 수 있는 장점이 있다.</li>
  87. <li>반면, 오픈소스 프로젝트 팀의 사정 상 개발이 여의치 않을 경우 프로젝트가 중단에 드랍되거나 버그 수정에 많은 시간이 소요될 수도 있다.</li>
  88. <li>특히 스프링은 애플리케이션 프레임워크로 그 규모가 일반 오픈 소스 프로젝트에 비해 크고 엔터프라이즈 개발자들에게는 중요한 프레임워크이므로 오픈 소스의 문제점을 안고 가기에는 부정적이었다.</li>
  89. <li>그래서 로드 존슨과 스프링 오픈소스화의 대표적 공로자인 유겐 흴러(Juergen Hoeller)와 자바 엔터프라이즈에서 최상급 개발자들이 스프링 소스(SpringSource)를 만들어 스프링 프레임워크의 실질적인 개발을 책임지고 있다.</li>
  90. <li>스프링 소스는 2009년 세계적인 IT업체인 Vmware가 인수하여 더욱 안정적인 환경에서 개발되고 있다.</li>
  91. </ul>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement