서브메뉴

본문

열혈강의 자바 웹 개발 워크북 (MVC 아키텍처 마이바티스 스프링으로 만드는 실무형 개발자 로드맵)
열혈강의 자바 웹 개발 워크북 (MVC 아키텍처 마이바티스 스프링으로 만드는 실무형 개발자 로드맵)
저자 : 엄진영
출판사 : 프리렉
출판년 : 2014
ISBN : 9788965400677

책소개

이 책은 자바 웹 개발 기초에서 프레임워크를 사용하는 실무 내용까지 다루고 있다. jsp에 한정한 웹 프로그래밍이 아니라 변화한 현재의 동적인 웹 개발 환경에 맞도록 서블릿/JSP를 기본으로 웹 개발에 필요한 기술들을 설명하고 있다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

더 자바답게, 원리로 이해하는 자바 웹 개발 워크북
이 책은 자바 웹 개발 기초에서 프레임워크를 사용하는 실무 내용까지 다루고 있습니다. 여느 도서와 다를 바 없어 보이지만 '더 자바답게' 다루고자 하였습니다. jsp에 한정한 웹 프로그래밍이 아니라 변화한 현재의 동적인 웹 개발 환경에 맞도록 서블릿/JSP를 기본으로 웹 개발에 필요한 기술들을 설명하고 있습니다. 다만, 효율적인 측면에서 진일보하는 많은 프레임워크와 관련 기술들은 초급 자바 웹 개발자와 기초가 약한 중급 개발자들을 어렵게 하고 있습니다. 이 때문에 이 책은 자바 웹 개발자들을 위한 학습 로드맵이 될 수 있도록 구성하였습니다.

따라 하며 예제를 완성하기보단, 이해하고 난 뒤 예제를 풀어보는 방식으로 설명되어 있어 개념을 파악하고 나서 실습함으로 차별성을 두고 있습니다. 예제를 중심으로 실제 실무 개발 프로젝트에 사용되는 MVC 아키텍처의 이해와 활용, 마이바티스, 스프링, 그래들 등과 같은 기술을 하나씩 단계적으로 적용하여 소개하고 있으며 이를 통해 해당 기술을 도입하기 전과 도입한 후의 차이점을 확인함으로써 기술의 등장배경과 이점을 충분히 이해하여 활용할 수 있도록 하였습니다. 그저 요구에 의한 붙여넣기가 아니라 실습할 예제에 대한 이해를 먼저 하고 설계한 뒤, 활용할 수 있도록 말입니다. 차근차근 내용을 따라가다 보면 어느새 실무 개발에 필요한 기술을 자연스럽게 습득할 수 있을 것입니다.
[교보문고에서 제공한 정보입니다.]

목차정보

제1장 웹 애플리케이션의 이해
1.1 데스크톱 애플리케이션
1.1.1 데스크톱 애플리케이션 실습
1.1.2 데스크톱 애플리케이션의 문제점
1.2 클라이언트·서버 애플리케이션
1.2.1 계산기 서버 실행
1.2.2 계산기 클라이언트 실행
1.2.3 계산기 서버의 콘솔창 내용 확인
1.2.4 클라이언트·서버 구조의 장점
1.2.5 문제점과 개선방안
1.3 다중 클라이언트의 요청 처리
1.3.1 멀티 스레드 적용 실습
1.3.2 문제점과 개선방안
1.4 클라이언트·서버 아키텍처의 진화
1.4.1 전통적인 클라이언트·서버 아키텍처
1.4.2 개선된 클라이언트·서버 아키텍처
1.5 웹 애플리케이션 아키텍처의 특징
1.5.1 웹 애플리케이션 실습
1.5.2 웹 애플리케이션의 특징
1.5.3 문제점과 개선방안
1.6 정리

제 2장 웹 프로그래밍 기초 다지기
2.1 HTTP 프로토콜의 이해
2.1.1 HTTP 모니터링
2.1.2 HTTP 프록시 실행
2.1.3 HTTP 요청
2.1.4 HTTP 응답
2.1.5 HTTP 클라이언트 만들기
2.1.6 콘솔창의 출력 크기를 늘리거나 제한을 없애기
2.2 GET 요청
2.2.1 웹 애플리케이션 프로젝트 생성, 배치, 실행
2.2.2 GET 요청 1 웹 브라우저 주소창에 URL을 입력하는 경우
2.2.3 GET 요청 2 링크를 클릭하는 경우
2.2.4 GET 요청 3 입력폼의 method 속성값이 get인 경우
2.2.5 GET 요청의 데이터 전달 형식
2.2.6 GET 요청의 쓰임새
2.2.7 문제점과 개선방안
2.3 POST 요청
2.3.1 POST 요청의 장점 - 입력값을 URL에 노출하지 않는다.
2.3.2 POST 요청의 HTTP 프로토콜 확인
2.3.3 POST 요청의 단점 - 요청 결과를 공유할 수 없다.
2.3.4 문제점과 개선방안
2.4 파일 업로드
2.4.1 파일 업로드를 위한 태그 설정
2.4.2 멀티파트 방식의 POST 요청 프로토콜 분석
2.5 정리

제 3장 서블릿 프로그래밍
3.1 CGI 프로그램과 서블릿
3.1.1 CGI의 이해
3.1.2 서블릿 Servlet
3.2 서블릿, JSP vs. Java EE vs. WAS
3.2.1 Java EE 기술들
3.2.2 WAS의 이해
3.3 웹 프로젝트 준비
3.3.1 웹 프로젝트 생성
3.3.2 웹 프로젝트 폴더 구조
3.4 서블릿 만들기
3.4.1 서블릿 작성
3.4.2 javax.servlet.Servlet 인터페이스
3.4.3 서블릿 배치 정보 작성
3.4.4 서블릿 실행
3.4.5 URL과 서블릿 매핑
3.4.6 서블릿 구동 절차
3.4.7 웰컴 파일들(Welcome Files)
3.5 웹 애플리케이션 배치
3.5.1 Eclipse를 통한 자동 배치
3.5.2 톰캣 실행 환경의 임시 배치 폴더
3.5.3 운영 서버에 배치하기
3.6 GenericServlet의 사용
3.6.1 GenericServlet이 없던 시절
3.6.2 GenericServlet의 용도
3.6.3 계산기 서블릿 작성
3.6.4 ServletRequest
3.6.5 ServletResponse
3.6.6 CalculatorServlet 배치 및 테스트
3.6.7 GET 요청으로 넘어온 매개변수 값의 인코딩 설정
3.6.8 @WebServlet 애노테이션을 이용한 서블릿 배치 정보 설정
3.6.9 @WebServlet 애노테이션의 주요 속성
3.7 정리

제 4장 서블릿과 JDBC
4.1 데이터베이스에서 데이터 가져오기
4.1.1 회원 목록 조회 구현
4.1.2 서블릿 배치 정보 설정
4.1.3 '회원 목록 조회' 서블릿 테스트
4.2 HttpServlet으로 GET 요청 다루기
4.2.1 회원 목록 화면에 '신규 회원' 링크 추가
4.3 HttpServlet으로 POST 요청 다루기
4.3.1 doPost() 오버라이딩
4.3.2 회원 등록 테스트
4.4 요청 매개변수의 한글 깨짐 처리
4.4.1 한글 깨짐 현상
4.4.2 한글 입력값이 깨진 이유
4.4.3 한글 깨짐 해결책
4.4.4 GET 요청 매개변수의 한글 깨짐 해결책
4.5 리프래시
4.5.1 자동으로 회원 목록을 출력하기
4.6 리다이렉트
4.6.1 리다이렉트 실습하기
4.7 서블릿 초기화 매개변수
4.7.1 회원 정보 조회와 변경
4.7.2 회원 목록 페이지에 상세 정보 링크 추가
4.7.3 DD파일에 서블릿 초기화 매개변수 설정
4.7.4 회원 상세 정보 출력하는 서블릿 작성
4.7.5 회원 정보 변경하기
4.7.6 애노테이션으로 서블릿 초기화 매개변수 설정
4.8 컨텍스트 초기화 매개변수
4.8.1 컨텍스트 초기화 매개변수의 선언
4.8.2 컨텍스트 초기화 매개변수의 사용
4.9 필터 사용하기
4.9.1 필터
4.9.2 필터 만들기
4.9.3 필터의 구동
4.9.4 필터의 배치
4.10 정리

제 5장 MVC 아키텍처
5.1 MVC 이해하기
5.1.1 올인원 All-in-one 방식과 문제점
5.1.2글로벌 환경과 MVC 아키텍처
5.1.3 MVC 이점
5.1.4 MVC 구동 원리
5.2 뷰 컴포넌트와 JSP
5.2.1 JSP를 사용하는 이유
5.2.2 JSP 구동 원리
5.2.3 JSP의 구동 과정 확인
5.2.4 HttpJspPage 인터페이스
5.2.5 JSP 객체의 실체 분석
5.2.6 HttpJspBase 클래스의 소스
5.2.7 JSP 프리컴파일
5.3 JSP의 주요 구성 요소
5.3.1 JSP로 만드는 계산기 실습
5.3.2 템플릿 데이터
5.3.3 JSP 전용 태그 - 지시자
5.3.4 JSP 전용 태그 - 스크립트릿
5.3.5 JSP 내장 객체
5.3.6 JSP 전용 태그 - 선언문
5.3.7 JSP 전용 태그 - 표현식
5.4 서블릿에서 뷰 분리하기
5.4.1 값 객체(VO) = 데이터 수송 객체(DTO)
5.4.2 뷰 분리하기 실습
5.4.3 값 객체 생성
5.4.4 서블릿에서 뷰 관련 코드 제거
5.4.5 뷰 컴포넌트 만들기
5.4.6 회원 목록 테스트
5.5 포워딩과 인클루딩
5.5.1 포워딩과 인클루딩 실습
5.5.2 포워딩
5.2.3 인클루딩
5.6 데이터 보관소
5.6.1 ServletContext의 활용
5.6.2 HttpSession의 활용 - 로그인
5.6.3 HttpSession의 활용 - 로그인 정보 사용
5.6.4 HttpSession의 활용 - 로그아웃
5.6.5 ServletRequest의 활용
5.6.6 JspContext의 활용
5.7 JSP 액션 태그의 사용
5.7.1 JSP 액션 태그 -
5.7.2 의 활용
5.7.3 JSP 액션 태그의 존재 의의
5.8 EL 사용하기
5.8.1 EL 표기법
5.8.2 JSP에서 제공하는 EL 기본 객체
5.8.3 리터럴 표현식Literals
5.8.4 값 표현식 Value Expression
5.8.5 연산자
5.8.6 예약 키워드
5.8.7 EL 활용 - 회원 정보 페이지
5.9 JSTL 사용하기
5.9.1 JSTL 라이브러리 준비
5.9.2 JSTL 주요 태그의 사용법
5.9.3 JSTL 활용 - 회원 목록 페이지에서 자바 코드 없애기
5.10 DAO 만들기
5.10.1 DAO 사용하기
5.10.2 DAO 생성
5.10.3 서블릿에서 DAO 사용하기
5.11 ServletContextListener와 객체 공유
5.11.1 ServletContextListener의 활용
5.11.2 리스너 'ServletContextListener' 만들기
5.11.3 기존의 서블릿 변경하기
5.11.4 AppInitServlet 제거
5.12 DB 커넥션풀
5.12.1 DB 커넥션풀
5.12.2 DB 커넥션풀 만들기
5.12.3 MemberDAO에 DB 커넥션풀 적용하기
5.12.4 ContextLoaderListener에서 DBConnectionPool 생성 및 DAO에 주입
5.13 DataSource와 JNDI
5.13.1 javax.sql 확장 패키지
5.13.2 DataSource
5.13.3 DataSource의 적용
5.13.4 서버에서 제공하는 DataSource 사용하기
5.14정리

제 6장 미니 MVC 프레임워크 만들기
6.1 프런트 컨트롤러의 도입
6.1.1 프런트 컨트롤러 패턴
6.1.2 프런트 컨트롤러를 통해 회원 목록 출력
6.1.3 프런트 컨트롤러 만들기
6.1.4 MemberListServlet을 페이지 컨트롤러로 만들기
6.1.5 프런트 컨트롤러를 통한 회원 목록 페이지 요청
6.1.6 MemberAddServlet을 페이지 컨트롤러로 만들기
6.1.7 회원 등록 테스트
6.2 페이지 컨트롤러의 진화
6.2.1 프런트 컨트롤러와 페이지 컨트롤러의 호출 규칙 정의
6.2.2 호출 규칙 정의
6.2.3 페이지 컨트롤러를 위한 인터페이스 정의
6.2.4 페이지 컨트롤러 'MemberListServlet'을 일반 클래스로 전환
6.2.5 프런트 컨트롤러 변경
6.2.6 회원 등록 페이지 컨트롤러에 Controller 규칙 적용하기
6.2.7 회원 등록 요청을 처리하기 위해 DispatcherServlet 변경
6.2.8 회원 등록 페이지의 실행 테스트
6.3 DI를 이용한 빈 의존성 관리
6.3.1 의존 객체의 관리
6.3.2 의존 객체를 외부에서 주입
6.3.3 MemberDao와 DataSource
6.3.4 MemberListController에 MemberDao 주입
6.3.5 페이지 컨트롤러 객체들을 준비
6.3.6 프런트 컨트롤러의 변경
6.3.7 인터페이스를 활용하여 공급처를 다변화 하자
6.3.8 MemberDao 인터페이스 정의
6.4 리플랙션 API를 이용하여 프런트 컨트롤러 개선하기
6.4.1 신규 회원 정보 추가 자동화
6.4.2 DataBinding 인터페이스 정의
6.4.3 페이지 컨트롤러의 DataBinding 구현
6.4.4 프런트 컨트롤러의 변경
6.4.5 ServletRequestDataBinder 클래스 생성
6.4.6 리플랙션 API
6.5 프로퍼티를 이용한 객체 관리
6.5.1 실습 시나리오
6.5.2 프로퍼티 파일 작성
6.5.3 ApplicationContext 클래스
6.5.4 ContextLoaderListener 변경
6.5.5 web.xml 파일에 프로퍼티 경로 정보 설정
6.5.6 DispatcherServlet 변경
6.6 애노테이션을 이용한 객체 관리
6.6.1 애노테이션 활용
6.6.2 애노테이션 정의
6.6.3 애노테이션 적용
6.6.4 프로퍼티 파일 변경
6.6.5 ApplicationContext 변경
6.6.6 Reflections 라이브러리 준비
6.7 실력 향상 훈련
6.7.1 데이터베이스 모델
6.7.2 프로젝트 관리 시스템
6.7.3 훈련 1 프로젝트 목록 페이지 구현
6.7.4 훈련 2 프로젝트 등록 구현
6.7.5 훈련 3 프로젝트 변경 구현
6.7.6 훈련 4 프로젝트 삭제 구현
6.7.7 메뉴의 추가
6.8 정리

제 7장 퍼시스턴스 프레임워크의 도입
7.1 mybatis 소개
7.1.1 mybatis 사용하기
7.1.2 mybatis 사용 준비
7.2 mybatis 적용
7.2.1 mybatis 구동하기
7.2.2 mybatis 프레임워크의 핵심 컴포넌트
7.2.3 DAO에서 SqlSessionFactory 사용
7.2.4 SQL 맵퍼 파일 작성
7.2.5 ApplicationContext 변경
7.2.6 SqlSessionFactory 객체 준비
7.2.6 mybatis 설정 파일 준비
7.2.7 db.properties 파일 작성
7.3 SQL 맵퍼 파일
7.3.1 SQL 맵퍼 파일 작성
7.3.2 mybatis의 SELECT 결과 캐싱
7.3.3 SQL 문의 입력 매개변수 처리
7.4 mybatis 설정 파일
7.5 로그 출력 켜기
7.5.1 mybatis 설정 파일에 로그 설정 추가
7.5.2 로그 출력 테스트
7.6 동적 SQL의 사용
7.6.1 동적 SQL 엘리먼트
7.6.2 프로젝트 목록 페이지에 정렬 링크 추가
7.6.3 프로젝트 목록 컨트롤러 변경
7.6.4 ProjectDao 인터페이스 변경
7.6.5 엘리먼트의 활용
7.6.6 MySqlProjectDao 클래스 변경
7.6.7 동적으로 생성된 UPDATE 문 확인
7.7 실력 향상 훈련
7.7.1 훈련. 회원 관리에 mybatis 적용
7.8 정리

제 8장 스프링 IoC 컨테이너
8.1 스프링 IoC 컨테이너 사용 준비
8.1.1 의존성 주입(DI)과 역제어(IoC)
8.1.2 Gradle 프로젝트 준비
8.1.3 Gradle 프로젝트를 웹 프로젝트로 만들기
8.1.4 스프링 프레임워크 관련 라이브러리 가져오기
8.1.5 실습 프로젝트 정리
8.1.6 Gradle 빌드
8.2 Gradle 빌드 파일 분석
8.2.1 Gradle 플러그인이란?
8.2.2 Gradle Java 플러그인
8.2.3 jar 작업과 제어 속성 - jar {}
8.2.4 의존 라이브러리를 가져올 저장소 설정 - repositories {}
8.2.5 프로젝트에서 사용할 의존 라이브러리 지정 - dependencies {}
8.2.6 테스트 정보 설정 - test {}
8.2.7 아카이브 파일(.jar) 배포 - uploadArchives {}
8.2.8 Gradle Eclipse 플러그인
8.3 XML 기반 빈 관리 컨테이너
8.3.1 ApplicationContext 인터페이스
8.3.2 스프링 빈 컨테이너 ClassPathXmlApplicationContext 사용
8.3.3 name 속성으로 빈 이름 지정하기
8.3.4 익명 빈 선언
8.4 생성자와 프로퍼티 설정
8.4.1 호출할 생성자 설정
8.4.2 프로퍼티 설정
8.4.3 의 속성을 이용하여 생성자 및 프로퍼티 설정하기
8.5 의존 객체 주입
8.5.1 의존 객체 설정하기
8.5.2 개별 인스턴스 주입하기
8.6 컬렉션 값 주입
8.6.1 배열 프로퍼티의 값 주입
8.6.2 Map과 Properties 값 주입
8.7 팩토리 메서드와 팩토리 빈
8.7.1 스태틱 팩토리 메서드를 이용한 간접 객체 생성
8.7.2 인스턴스 팩토리 메서드를 이용한 간접 객체 생성
8.7.3 스프링 규칙에 따라서 팩토리 빈 만들기
8.8 빈의 범위 설정
8.8.1 싱글톤과 프로토타입
8.9 날짜 값 주입
8.9.1 SimpleDateFormat 클래스와 인스턴스 팩토리 메서드 활용
8.9.2 커스텀 프로퍼티 에디터 활용
8.10 애노테이션을 이용한 의존 객체 자동 주입
8.10.1 @Autowired 적용
8.10.2 @Autowired의 required 속성
8.10.3 @Qualifier로 주입할 객체를 지정하기
8.10.4 @Autowired + @Qualifier = @Resource
8.11 빈 자동 등록
8.11.1 @Component가 붙은 클래스를 자동으로 찾기
8.12 Gradle 적용
8.12.1 Gradle 적용 준비
8.12.2 Gradle 설정에 의존 라이브러리 추가
8.12.3 Gradle 빌드
8.12.4 톰캣 서버에 웹 애플리케이션 배치 및 실행
8.13 스프링 IoC 컨테이너 적용
8.13.1 mybatis 관련 의존 라이브러리 추가
8.13.2 Gradle 빌드
8.14 정리

부록
[교보문고에서 제공한 정보입니다.]