서브메뉴

본문

JAVA 웹 애플리케이션 프레임워크
JAVA 웹 애플리케이션 프레임워크
저자 : 이성기
출판사 : 정보문화사
출판년 : 2003
ISBN : 8956740666

책소개


자바 웹 애플리케이션에서 발견되는 공통적인 패턴을 분석하여 재사용 가능한 프레임워크를 만드는 방법을 설명한 책. 가장 간단한 서블릿 기반의 애플리케이션을 모델(Model), 뷰(View), 컨트롤(Control)의 관점에서 분화하여 재사용가능한 컴포넌트를 구성, 프레임워크로 만드는 과정을 구체적인 코딩 예제와 함께 소개하였다. 사용자 요구사항을 듣고 바로 코딩을 하던 개발자들에게 설계의 중요성을 인식시키고, 재사용할 수 있는 공통의 하부구조를 구성하는 것이 얼마나 유용한지를 알게 한다.

목차


1부 프레임워크의 소개

1장 왜 프레임워크가 필요한가?

재사용할 수 있는 소프트웨어를 만들려면?
복사\붙이기
메소드 호출
클래스 재사용
클래스 집합에서 디자인 패턴으로
디자인 패턴에서 프레임워크로
쓸만한 프레임워크가 되기 위한 조건들
상품화된 프레임워크들
무거운 프레임워크와 가벼운 프레임워크
그러면 J2EE만 가지고는 안되나요?
프레임워크와 J2EE의 관점 차이
Zoom out 방식의 한계
Zoom in 방식으로의 프레임워크
제 3자 프레임워크를 구입하려 할 때 고려해야 할 점들
직접 만든 프레임워크
프레임워크 생성 과정
올인원 서블릿(All in one servlet)
MVC 패턴을 향하여
티어 구조

2장 디자인 패턴으로 보는 프레임워크의 생성 과정

초기 형태 올인원 서블릿으로 구현
주소록 설계
은행 설계
MVC 패턴
주소록 프로그램의 분할 정복
은행 프로그램의 분할 정복
이슈 1 : 데이터베이스 로직의 위치
이슈 2 : 개체와 집합
이슈 3 : 서블릿의 일반화
어댑터 패턴 : 데이터 액세스 로직의 분리
세션 엔터티 패턴 : 개체와 집합의 관계
JSP 뷰 패턴 : 서블릿의 재사용
이슈 4 : 웹 화면 구성
확장된 MVC 패턴
웹 프레젠테이션 티어의 독립
비즈니스 로직 티어의 독립
데이터 액세스 티어의 독립
Front Controller 패턴
이슈 2 : 서로 다른 비즈니스 객체를 어떻게 서블릿이 호출할 수 있을까?
Command Processor 패턴
이슈 3 : 서로 다른 결과를 어떤 클래스 타입으로 받을 수 있을까?
추상 팩토리 패턴 1
이슈 1 : 다양한 종류의 Request Input을 서블릿이 어떻게 구분하나?
세션 퍼사드 패턴
어댑터 패턴
인터페이스 패턴
추상 팩토리 패턴 2
싱글톤 패턴
OR 매핑
각 티어 간의 데이터 변경 플로우차트
완성된 로자 프레임워크 아키텍처
마치면서


2부 프레임워크의 적용

3장 주소록 프로그램 적용

개발 순서
개발 환경 설치
조건
프레임워크 설치 과정
주소록 프로그램의 개요
설계
데이터베이스
테이블 정의
db.properties 정의
JDBC 클래스 파일 정의
JDBC 프로그램 테스트
엔터티 클래스
EntityObject로부터 상속받는다
setAttribute()와 getAttribute()를 코딩한다
객체 ID를 정의한다
모든 속성은 public으로 선언한다
import roja.*;를 포함한다
세션 클래스
데이터 소스와 저장될 객체 이름을 선언해둔다
SessionObject에서 상속받는다
init() 메소드를 코딩한다
CommandProcessor
CommandProcessor로부터 확장한다
doTheWork()를 구현한다
에러 핸들링
JSP/HTML
P2B 설계(Presentation To Business Logic Design)
웹 화면 설계
JSP(또는 Servlet) 코딩
배치(deployment)
프로젝트 디렉토리를 만든다
war 파일을 만든다
테스트
마치면서

4장 비즈니스 객체 설계

페이퍼/펜 모델링
객체 지향 설계의 기본 순서
사용자 요구사항
스텝 1 : 평이한 영어로 재구성
스텝 2 : 영역을 정한다
스텝 3 : 주어, 동사, 목적어로 재배치한다
스텝 4 : 엔터티 클래스를 찾는다
엔터티 클래스에는 메소드보다 변수가 더 중요하다
두 종류의 객체
스텝 5 : 세션 클래스를 찾는다
영역을 포괄하는 객체(Scope Object)
Bank 영역 설계
스텝 3 : 주어 동사 목적어로 재배치한다
스텝 4 : 엔터티 클래스를 찾는다
클래스 재사용
스텝 5 : 세션 클래스를 찾는다
스텝 6 : 선정된 클래스에 메소드를 첨가한다
스텝 6 : 선정된 클래스에 자바 의사 코드를 구성해 보자
스텝 7 : 에이전트 관계도를 그린다
스텝 8 : 전체 의사 코드를 구성한다
마치면서

5장 은행 프로그램 적용

개발 순서
상세 설계
데이터 액세스 티어의 설계와 개발
데이터베이스 테이블 작성
db.properties 파일 조정
비즈니스 로직 티어의 설계와 개발
엔터티 클래스 개발
세션 클래스 개발
CommandProcessor를 위한 의사 코드
스크린 개발
시나리오
전체 클래스 다이어그램
프레젠테이션 티어의 설계와 개발
JSP/HTML 정의
배치와 테스트
마치면서


3부 프레임워크 확장

6장 프레젠테이션 티어의 확장

컨텐트 캐시
구현 방식
컨텐트 컨트롤 서블릿(ContentControlServlet)
로그아웃 서블릿(LogoutServlet)
세션 컨트롤
페이지 컨트롤(Page Control)
예정된 페이지 이동(Predefined page navigation)
동적 페이지 이동(Calculated page navigation)
샘플 애플리케이션
세션 컨트롤(Session Control)
예정된 페이지 컨트롤(Predefined Page Control)
동적 페이지 컨트롤(Dynamic Page Control)
마치면서

7장 비즈니스 로직 티어의 확장

레퍼런스 넘버(Reference number generator)
오브젝트 캐시(Object Cache)
컨텐트(Content)
로깅과 시스템 지원 프레임워크
마치면서

8장 비즈니스 룰 엔진

왜 비즈니스 룰 엔진이 필요한가?
아키텍처
룰 설계
비교의 기본 원리
연산자의 비교
날짜 비교
소수 비교
단일 조건과 복합 조건
복합 조건의 비교 방식
룰 베이스의 설계
룰 파서의 설계
룰 엔진의 설계
룰 에디터의 설계
룰 엔진(매트릭스 : Matrix)의 사용법
은행 프로그램에 소개된 룰 엔진 샘플
마치면서

9장 데이터 액세스 티어의 확장

OR 매핑
클래스 매핑과 XML 매핑 비교
OR 매핑의 기능 향상 PatternNote의 도입
OR 매핑 과정
ORmapper 사용 방법
객체와 XML의 바인딩
객체에서 XML로 변환하는 샘플
XML에서 객체로 변환하는 샘플
객체에서 XML로의 매핑 과정
XML에서 객체로의 매핑 과정
사용 방법
객체에서 HTML 생성
JDOM을 통한 리포트 프린팅 사례
객체에서 HTML을 만드는 과정
PropertyDB
PropertyDB의 구성 방식
사용 방법
마치면서

10장 EJB

왜 EJB를 찾는가?
EJB의 출발 동기
EJB 기본 설계와 J2EE
EJB의 유용성
로자/라일락 프레임워크와 EJB
호환성
적용 방법
EJB의 한계와 극복 방안
취약점
설계 방안
마치면서

QuickMenu