• 스프링과 메이븐을 활용한 실전 프레임워크 설계와 구축

  • 강위민 지음

  • 오픈소스 & 웹 시리즈 _ 035
  • ISBN: 9788992939881
  • 25,000원 | 2011년 08월 19일 발행 | 360쪽



지금까지 스프링과 메이븐을 주제로 각종 서적이 출간됐지만 해당 기술을 실무에 적용하는 데 도움을 줄 수 있는 응용 기술서는 부족하다고 느껴왔다. 응용 기술서는 개발자로서 첫 발을 내 딛는 신입사원 등에게 특히 필요하며, 실무 적응력과 개념 정립이 필요한 시기에 그들을 이끌어 주는 데 큰 도움을 줄 수 있다. 이 책은 이러한 목적으로 집필된 응용 기술서로서, 초급 개발자와 더불어 중급 이상의 개발자에게도 유용할 것이다.

국내 프로젝트 상황을 둘러보면 신규 프로젝트를 진행할 때 프로젝트 설계나 문서화가 제대로 준비되지 않은 경우를 흔히 볼 수 있다. 이 책에서는 보편적인 웹 애플리케이션 개발을 주제로 범용적으로 적용할 수 있는 참조 구현물을 제공한다. 따라서 이 책에서 제공하고 있는 설계물을 실무 프로젝트에 적용한다면 설계와 문서화라는 두 가지 고민을 쉽게 해결할 수 있을 것이다.

이 책의 최종 목표는 표준화 프레임워크를 정의하는 데 있다. 많은 개발사들이 해마다 수많은 프로젝트를 진행하고 있지만 표준화 프레임워크가 정의돼 있지 않은 경우가 많다. 이로써 프로젝트를 진행할 때 업무의 지연과 혼선이 일어나고, 유지보수에 적지 않은 어려움을 발생한다. 이 책에서는 표준화 프레임워크를 정의하고자 각 기능을 컴포넌트 단위로 모듈화했으며, CBD 및 TDD 기반으로 개발해 나갈 수 있는 기틀을 마련한다. 따라서 사내 표준화 프레임워크를 준비하는 설계자라면 이 책을 참고해서 사내 프로젝트 특성에 맞는 자체 프레임워크로 발전시켜 나갈 수 있을 것이다.

이 책은 스프링을 활용한 프레임워크의 설계 및 개발을 위한 가이드로서, 자바와 스프링에 대한 기본 지식이 있는 독자를 대상으로 한다. 특히 이 책은 다음과 같은 독자에게 유익할 것이다.

  • 스프링 프레임워크의 기본 지식은 갖췄으나 활용 경험이 부족한 분
  • 메이븐의 활용 또는 설계 경험이 부족한 분
  • 신규 프로젝트를 진행하려고 하나 프레임워크 설계 및 문서화가 준비되지 않은 분
  • 사내 표준화 프레임워크 설계를 준비하려는 분

이 책은 메이븐을 활용한 CBD 및 TDD 개발 환경을 제시하고, 이와 더불어 스프링 기반의 표준화 프레임워크의 설계 방법을 보여준다. 표준화 프레임워크를 설계하고자 하는 분은 이 책에서 제시하는 모델을 기반으로 사내 프로젝트 특성에 맞는 표준화 프레임워크로 발전시켜 나갈 수 있을 것이며, 급히 프로젝트를 진행해야 하는 상황에서는 이 책에서 제공하는 설계물을 바탕으로 프로젝트 표준을 신속히 제공하여 업무 진행을 원활하게 할 수 있을 것이다. 또한 이 책에서 지향하는 개념에 맞춰 프로젝트를 진행한다면 개발자들이 자연스럽게 CBD 및 TDD 개념을 몸으로 익힐 수 있을 것이다.

강위민

1999년부터 자바 프로젝트를 진행해 왔으며, 한국 썬마이크로시스템즈에서 전임강사를 역임한 바 있다. 『Core EJB(영진닷컴)』을 비롯해 『Applied BluePrint Workshop(한국 Sun)』, 『온라인 EJB 강좌(한국 IBM)』을 집필했고, 현재는 체계적인 프로젝트 진행을 위한 프로젝트 표준화 및 개발 프로세스의 시스템화에 관심이 있다.

 

지은이 글

실무에서 일어나는 문제점의 가장 핵심적인 원인은 표준화가 이뤄지지 못했기 때문에 발생하는 문제라 생각하고 표준화의 필요성과 표준화를 위한 참조 구현물을 제안해 보고 싶었다.

스프링과 메이븐을 주제로 각종 서적이 출간됐지만 실무에 적용하는 데 도움을 줄 수 있는 응용 기술서가 부족하다고 느꼈다. 응용 기술서는 개발자로서 첫 발을 내딛는 신입사원에게 특히 필요하다고 생각하며, 실무 적응력과 개념 정립이 필요한 시기에 그들을 올바르게 이끌어 줄 가이드가 필요하다고 느꼈다.

아직 국내 프로젝트에서 메이븐의 보급과 활용 수준이 그리 높지 않은 듯하다. 그 이유는 메이븐에 대한 전반적인 이해 부족에서 비롯된 것이라 생각한다. 저자는 초보자에게 메이븐의 동작 원리와 활용법을 간단하면서도 효과적으로 전달할 수 있는 학습의 장을 마련해 보고 싶었고, 이와 더불어 메이븐을 활용한 모듈 단위의 프로젝트 개발 환경을 소개하고 싶었다. 메이븐의 모듈 단위 개발 환경은 CBD 및 TDD 방법론을 적용하는 데 이상적인 프로젝트 구성을 제공할 수 있다.

신규 프로젝트를 진행할 때는 프로젝트 설계와 문서화가 제대로 준비되지 않은 경우를 흔히 접한다. 저자는 이 책과 더불어 어느 프로젝트에서나 범용적으로 적용할 수 있는 참조 구현물을 제공해서 그러한 고민을 덜어줄 수 있기를 바랐다.

  • Chapter 01. 프레임워크 소개
    1. 사내 표준화 프레임워크의 필요성
    2. 웹 애플리케이션 설계 현황
    3. 프레임워크 컴포넌트 소개
    4. 메이븐 프로젝트 구조
      • store-root 프로젝트
      • store-comp 프로젝트
      • comp-user 프로젝트
      • store-web 프로젝트
      • web-frontend 프로젝트
      • 프로젝트 빌드 및 패키지
    •  
  • Chapter 02. 인프라 컴포넌트
    1. crypto 패키지
      • CipherTemplate
      • DigesterTemplate
    2. dao 패키지
      • AbstractIBatisDao
    3. dto 패키지
      • AbstractModel
    4. event 패키지
      • ApplicationEventListener
      • ApplicationEventHandler
      • EventHandlerAggregator
    5. exception 패키지
      • ApplicationException
      • 사용자 정의 예외 클래스
      • MessageException
    6. key 패키지
      • Constant
      • WebAttrKey
      • WebParamKey
    7. test 패키지
      • ObjectLoader
    8. type 패키지
      • Symbolic
      • 사용자 정의 데이터 타입
      • AbstractSymbolicEnumTypeHandler
      • 사용자 정의 타입 핸들러
    9. util 패키지
      • BeanFinder
      • ShellCommander
      • MessageUtil
      • SessionUtil
      • WebAttrAnalyzer
    10. web.filter, web.servlet 패키지
      • ParameterInjectionFilter
      • ParameterInjectionServlet
      • AccessProtectFilter
    11. web.form 패키지
      • AbstractOptionTemplate
      • CharRangeOptionTemplate
      • IntegerRangeOptionTemplate
      • ObjectOptionTemplate
      • CalendarTemplate
      • Enum 타입 템플릿
    •  
    •  
  • Chapter 03. 웹 컴포넌트
    1. 웹 컴포넌트의 디렉터리 구조
    2. 스프링 웹 MVC 구성
    3. DataSource 및 iBatis 설정
    4. 타일즈 및 다국어 지원
    5. 환경설정 파일 및 PropertyPlaceholder
    6. 예외 페이지
    7. Validator
    8. 스프링 시큐리티 설정
    •  
  • Chapter 04. 비즈니스 컴포턴트
    1. 비즈니스 컴포넌트의 디렉터리 구조
    2. User 컴포넌트
      • 테이블 정의
      • type, type.handler 패키지
      • dto 패키지
      • dao 패키지
      • web.listener 패키지
      • event, event.handler 패키지
      • service 패키지
      • 스프링 컨텍스트 설정
      • 웹 애플리케이션
    3. Control 컴포넌트
      • 공통 코드 및 캐시 관리
      • 동적 스케줄링
      • 제어 센터
      • 다중 서버 파일 업로드
    4. 컴포넌트 설계 가이드
    5. 단위 테스트
    •  
  • Chapter 05. 메이븐 퀵 스터디
    1. 메이븐 프로젝트 생성
    2. 메이븐 저장소
      • 중앙 저장소
      • 로컬 저장소
      • 내부 저장소
    3. 프로젝트 빌드 및 라이프사이클
    4. 의존성
    5. 웹 애플리케이션 컨테이너 배포
    6. 프로젝트 상속 및 집합 관계 구성
      • 프로젝트 상속 관계 구성
      • 프로젝트 집합 관계 구성
    •  
  • Chapter 06. 개발 환경 구축
    1. JDK 설치
    2. 프로젝트 소스 설치
    3. 메이븐 설치
    4. STS(SringSource Tool Suite) 설치
    5. 톰캣 설치

예제코드 관련 GitHub 페이지

관련 글


엮인 글

엮인 글 주소: http://wikibook.co.kr/spring-maven/trackback/