|
1. 개요
1.1. 목적 수 많은 프로젝트에서 프레임워크나 아키텍체에 대한 관심 없이 대부분의 개발을 개발자의 능력에 전담시키는 것이 일반적이다. 이는 프로젝트의 위험 요소를 증가시킬 뿐만 아니라 개발 완료 후 유지보수 비용을 증가시킴으로써 추가적인 비용 부담을 초래할 뿐더러 안정성에도 문제가 되곤 한다. 이에 본 내용은 Spring Framework를 통해 앞에서의 문제점들을 해결할 수 있는데 초점을 맞췄으며, Spring Framework은 J2EE 애플리케이션 개발을 보다 쉽고 완성도 높은 결과물을 보장해 준다. 1.2 대상 모든 Java 개발자를 대상으로 하지만 특히 Enterprise Java 개발자에 초점을 맞추고 있다. Spring Framework의 상당 부분이 Enterprise Java의 대안으로 활용될 수 있게 설계되었으며 이를 통해 보다 쉽게 개발할 수 있는 방법들을 제공한다. 참고로 Enterprise Java 개발자가 아닐지라도 Spring이 제공하는 기능들을 통해 보다 효율적이고 실용적인 개발을 할 수 있을 것이다. 1.3 범위 Spring Framework의 개념과 주요 기능에 대한 설명과 함께 주로 Spring MVC를 통한 Web Application 개발에 주된 범위를 두고 있다. 1.4 Spring Framework 활용 시 결정 사항 Java를 기반으로 Web Application 개발을 시작하는 초급 개발자에겐 접근하기 어려운 프레임워크이다. 먼저 J2EE 환경에 대한 기본적인 지식과 경험을 갖춘 다음에 접근하는 것이 Spring Framework를 이해하는데 많은 도움이 될 것이다. 참고로 본 프레임워크를 선정할 시엔 개발자들의 역량과 해당 프로젝트에 적합한지를 고려해야 할 것이다. - J2EE(Java, JSP, Servlet, EJB) 개발 환경에 1년 이상의 경험을 가진 개발자. - 효율적인 애플리케이션 개발 방법을 찾고 있는 개발자. - 개발 생산성과 유지보수성의 향상을 높이고자 하는 개발자. - 체계화된 개발을 하고자 하는 개발자. - 표준 프레임워크를 도입하고자 하는 개발자. Spring Framework는 표준 프레임워크로 채택해도 손색이 없을 만큼 모든 영역을 포괄하고 있다. 2. Spring 특징 2.1. Spring 공약 / 철학 - 좋은 설계가 기술 자체보다 더 중요하다. - Interface를 통한 느슨한 결합의 Java Beans는 훌륭한 모델이다. - 코드는 테스트하기 쉬워야 한다. 2.2. Spring 이란? Spring 프레임워크를 살펴보다 보면 Dependency Injection(이하 DI), Inversion Of Control(이하 IoC), Light Weight Container(이하 경량 컨테이너)라는 단어들이 무수히 많이 나온다. 먼저 Spring 프레임워크를 요약하자면 객체의 라이프 사이클을 관리하기 위하여 DI를 사용하는 경량 컨테이너 이다. 좀더 명확하게 설명하자면, Spring은 복잡한 Enterprise Application 개발을 겨냥해 만들어졌다. 평범한 Java Beans를 사용함에도 EJB에서만 가능했던 일들이 모두 이루어진다. 또한 서버측 개발에만 국한되지 않는 모든 Java Application 개발에 활용할 수 있으며 이를 통해 단순성, 테스트 용이성, 느슨한 결합성을 보장 받을 수 있다. 2.3. Spring 사용 이유 ![]() 1) AOP(기능별 모듈화, 진정한 OOP 제공) 컨테이너는 일관성을 유지시켜 주고 투명한 환경 내에서 느슨한 컴포넌트(POJO)의 집합에서 복잡한 시스템을 조립할 수 있는 능력을 제공하며 조직을 해치지 않음. 2) IOC(제어 역행) 애플리케이션 객체를 연결해 주고 자동화된 설정 및 집중화된 설정을 제공하는 가장 완전한 경량 컨테이너. 3) Test Unit(편리한 테스트) 제공 컨테이너는 민첩함을 제공하고 지렛대 역할을 하며 소프트웨어 컴포넌트를 먼저 개발하고 고립시켜 테스트할 수 있게 함으로써 테스트와 확장성을 향상시킨다. 4) 트랜잭션 트랜잭션 관리를 위한 공통의 추상화된 레이어, 트랜잭션 관리자를 플러그인할 수 있어서 저 수준 트랜잭션을 문제없이 처리한다. 5) JDBC 추상화 레이어 중요한 예외 계층을 제공하며 예외처리를 단순화시켜 코드의 양을 덜어준다. 6) ORM 프레임워크 연동 제공 Hibernate, iBatis, JDO 등과 같은 ORM 프레임워크와 통합되어 있다. 7) 좀더 쉬운 J2EE 개발 지향(저비용 유연한 코드 유지) 8) 다양한 프리젠테이션 계층 제공(jsp, velocity, excel, pdf ...) 9) 좋은 설계(아키텍처) 제공 10) 분산(원격) 서비스 11) 보안 Spring Framework는 비즈니스의 목적에 부합하기 위해 다양한 컴포넌트들의 집합체이며, 상호 의존성이 없는 유연한 구조를 통해 재사용과 단위 테스트를 쉽게 해준다. 이를 통해 연관관계를 관리할 책임이 없다. 그대신, 컨테이너에 의해 컴포넌트 간의 협업을 위한 참조가 주어질 뿐이다. 2.4. 스프링 모듈 Spring은 7개의 잘 정의된 모듈들로 구성되며 전체적으로 이들 모듈은 엔터프라이즈 애플리케이션 개발에 필요한 모든 것을 제공한다. 이는 애플리케이션이 완전히 Spring 프레임워크를 기반으로 해야 하는 것은 아니다. 즉, 애플리케이션에 적합한 모듈을 선택하여 적용하고 나머지 모듈들은 무시해도 된다. Spring 모듈은 모두 핵심 컨테이너 위에 구축되어있다. 핵심 컨테이너는 Bean 생성, 설정, 관리하는 방법을 정의하는데 이는 곧 Spring의 근본적인 기능이다. ![]() 1) 코어 컨테이너(core container) - 이 종 화 (ingenuity.egloos.com) - 이 글과 관련있는 글을 자동검색한 결과입니다 [?]
|
메모장
이글루 파인더
카테고리
전체
Agile Methodology Design Patterns JAVA Frameworks Open API DB관련 개발Tool System Web Server HTML/SCRIPT Talk Talk My Life 생활의 발견 허슬 두산! Fun Fun!!! 즐겨찾기 준비중 방명록 최근 등록된 덧글
우하하-_-' 유용해서 ..
by 미나 at 11/20 함께 생각하고 행동할 수.. by 강민철 at 10/21 신입개발자 인데 미흡한.. by seo at 10/13 유용한 정보 감사합니다.. by Nerv\\\'s at 09/23 저도 좋은글 담아갑니다.. by 풍 at 09/18 ㅎㅎㅎㅎ 저는 지금 개.. by 이종화 at 08/19 디자인패턴 공부하려는데.. by 이현승 at 07/22 좋은 글 잘 봤습니다. .. by 김진학 at 06/29 좋은글 감사합니다. 유.. by 엄성권 at 03/11 좋은 글 보고 갑니다. 제.. by 우기 at 01/10 최근 등록된 트랙백
Soma buy soma chea..
by Watson soma cheap. Buy soma online. by Buying cheap soma f.. Retin a. by Retin a and lip rhytid.. joinc wiki::소프트웨어.. by yundream의 프로그래.. 내 손안의 PC - 자바가 .. by 上善若水 저도 agile에 관심이 많.. by lovelove님의 이글루 JUnit 4로 뛰어들기 by 고안해 내는 재능 inheritnace vs dele.. by Bullshit Life framework = framewor.. by 고안해 내는 재능 Struts iBATIS Spring by 고안해 내는 재능 포토로그
이전블로그
이글루링크
라이프로그
| |||