서브메뉴

본문

클라이언트-서버 웹 앱 만들기 (자바와 자바스크립트로 배우는 모던 웹 앱 개발)
클라이언트-서버 웹 앱 만들기 (자바와 자바스크립트로 배우는 모던 웹 앱 개발)
저자 : 캐지미어 새터노스
출판사 : 한빛미디어
출판년 : 2014
ISBN : 9788968481345

책소개

[클라이언트-서버 웹 앱 만들기]는 자바와 자바스크립트로 REST 방식 웹 앱을 만드는 데 필요한 클라이언트-서버 기술을 소개한 책이다. 책에서는 제이쿼리, 앵귤러JS를 비롯한 각종 최신 기술을 활용하여 리치하고 확장성 있는 웹 앱을 개발하는 방법을 제시한다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

이 책은 자바와 자바스크립트로 REST 방식 웹 앱을 만드는 데 필요한 클라이언트-서버 기술을 모두 담은 지침서다. 제이쿼리, 앵귤러JS를 비롯한 각종 최신 기술을 활용하여 리치하고 확장성 있는 웹 앱을 개발하는 방법을 제시한다. 오늘날 웹 앱 개발에 사용되는 기술과 트렌드에 대한 ‘큰 그림’과 함께, 이해를 돕기 위한 구체적인 예제들도 제공한다. 특히 1인 개발자로서 웹 앱을 구상 중이라면 큰 도움을 받을 것이다.

출판사 리뷰

■ 자바와 자바스크립트로 혼자서 만드는 클라이언트-서버 웹 앱

스마트폰 등장과 HTML 5 표준화 이후로 웹 기술은 비약적인 발전을 거뒀다. 그중에서도 자바스크립트의 발전은 특히 눈부시며, 자바의 중요성은 말로 표현할 수 없을 정도다. 이 책은 이 두 기술을 중심으로 하여 리치하고 확장성 있는 웹 앱을 개발하는 다양한 기술을 소개하여 개발자의 선택의 폭을 돕는다. REST 방식 모던 웹 앱 개발을 위해 필요한 클라이언트-서버 측 기술을 모두 비중 있게 다룬다는 점이 책의 큰 장점이다.

오늘날 웹 앱 개발에서 사용되는 기술과 트렌드에 대한 ‘큰 그림’과 함께, 이해를 돕기 위한 구체적인 예제를 제공한다. 자바와 자바스크립트, 그리고 최신 툴과 프레임워크를 활용하여 클라이언트-서버 아키텍처로 웹 앱을 구성하고 개발하는 방법을 제대로 배울 수 있을 것이다. 올바른 정보에 입각하여 제대로 된 기술을
선택하는 혜안을 기를 수 있고, 특히 1인 개발자로서 웹 앱을 구상 중이라면 소프트웨어 구조 및 설계에 대한 저자의 통찰에서 큰 도움을 받을 것이다.

■ 대상 독자
- 나 홀로 서버와 클라이언트 모두 개발하는 개발자
- HTML/CSS, 자바스크립트, 자바 프로그래밍에 익숙한 웹 앱 개발자
- 개발 도구를 이용해 새로운 기술과 기법을 적용하는 실제 예제를 ‘만들면서 배우는’ 개발자

추천평

“클라이언트-서버 패러다임이 브라우저로 옮겨오면서 오늘날 프로그래머들은 새로운 기술과 구조적인 도전에 직면했다. 이 책은 이러한 복잡성의 핵심을 파고들어, 독자에게 최신 웹 앱 개발에 대한 직관을 제공한다.”
-토니 파월, 트리펙타 테크놀로지의 솔루션 딜리버리 이사
[교보문고에서 제공한 정보입니다.]

목차정보

CHAPTER 1 변화는 변화를 낳는다
__1.1 웹 사용자
__1.2 웹 테크놀로지
__1.3 소프트웨어 개발
__1.4 불변의 본질
____1.4.1 웹의 본질
____1.4.2 서버 중심 웹 개발의 해로움
__1.5 왜 클라이언트-서버 웹 앱인가?
____1.5.1 코드 조직화/소프트웨어 아키텍처
____1.5.2 디자인 유연성/오픈 소스 API 활용
____1.5.3 프로토타입 제작
____1.5.4 개발자 생산성
____1.5.5 앱 성능
__1.6 마치며

CHAPTER 2 자바스크립트와 개발 도구
__2.1 자바스크립트 배우기
__2.2 자바스크립트의 역사
__2.3 함수형 언어
____2.3.1 스코프
____2.3.2 일급 함수
____2.3.3 함수 선언과 함수식
____2.3.4 함수 호출
____2.3.5 함수 매개변수
____2.3.6 객체
__2.4 자바 개발자를 위한 자바스크립트
____2.4.1 HelloWorld.java
____2.4.2 HelloWorld.java(변수 사용)
__2.5 프로그램 개발의 모범 사례
____2.5.1 코딩 스타일과 규약
____2.5.2 개발 브라우저
____2.5.3 통합 개발 환경
____2.5.4 단위 테스트
____2.5.5 문서화
__2.6 프로젝트 실습

CHAPTER 3 REST와 JSON
__3.1 REST란 무엇인가?
____3.1.1 자원
____3.1.2 동사(HTTP 요청 메서드)
____3.1.3 URI
__3.2 REST 제약사항
____3.2.1 클라이언트-서버
____3.2.2 스테이트리스
____3.2.3 캐시에 저장
____3.2.4 일관된 인터페이스
____3.2.5 계층적 설계
____3.2.6 주문형 코드
__3.3 HTTP 응답 코드
____3.3.1 성공적인 수행이란?
__3.4 JSON(자바스크립트 객체 표기법)
__3.5 HATEOAS
____3.5.1 REST와 JSON
__3.6 API 시험법과 분류
__3.7 함수형 프로그래밍과 REST
__3.8 프로젝트 실습
__3.9 그 외의 웹 API 도구
__3.10 다시 제약사항 이야기

CHAPTER 4 자바 도구
__4.1 자바 언어
__4.2 자바 가상 머신(JVM)
__4.3 자바 도구
__4.4 빌드 도구
____4.4.1 메이븐의 장점
____4.4.2 메이븐의 기능
____4.4.3 버전 관리
____4.4.4 단위 테스트
__4.5 JSON 자바 라이브러리
__4.6 프로젝트 실습
____4.6.1 자바와 JSON
____4.6.2 JVM 스크립트 언어와 JSON
__4.7 마치며

CHAPTER 5 클라이언트 프레임워크
__5.1 개괄
__5.2 출발점 1: 반응형 웹 디자인
____5.2.1 HTML5 보일러플레이트
____5.2.2 부트스트랩
__5.3 출발점 2 : 자바스크립트 라이브러리와 프레임워크
____5.3.1 브라우저 호환성
____5.3.2 프레임워크
____5.3.3 기능
____5.3.4 인기도
__5.4 스타터 프로젝트 얻기
____5.4.1 저장소에서 직접 다운로드
____5.4.2 스타터 사이트에서 다운로드
____5.4.3 IDE로 생성하는 스타터 프로젝트
__5.5 프론트엔드 엔지니어의 등장
____5.5.1 클라이언트 템플릿
____5.5.2 애셋 파이프라인
____5.5.3 개발 워크플로
__5.6 프로젝트 실습
__5.7 마치며

CHAPTER 6 자바 웹 API 서버
__6.1 더 간단한 서버 솔루션
__6.2 자바 기반의 서버들
____6.2.1 자바 HTTP 서버
____6.2.2 내장형 제티 서버
____6.2.3 레스트릿
____6.2.4 Roo
____6.2.5 내장형 네티 서버
____6.2.6 플레이 서버
____6.2.7 기타 경량 서버 솔루션
__6.3 JVM 기반의 서버들
____6.3.1 자이썬
__6.4 웹 애플리케이션 서버
__6.5 개발에 적용하기
__6.6 마치며

CHAPTER 7 프로젝트 쾌속 개발
__7.1 개발자 생산성
__7.2 개발자와 팀의 워크플로 최적화
____7.2.1 예제 1 : 웹 애플리케이션 수정
____7.2.2 예제 2 : 통합 테스트
____7.2.3 예제 3 : 신규 프로젝트 개발
__7.3 생산성과 소프트웨어 개발의 라이프사이클
____7.3.1 경영과 문화
____7.3.2 기술적 아키텍처
____7.3.3 소프트웨어 도구들
____7.3.4 성능
____7.3.5 테스트
____7.3.6 하부 플랫폼
__7.4 마치며

CHAPTER 8 API 디자인
__8.1 디자인 결정
__8.2 실용적인 웹 API와 RESTful API
__8.3 가이드라인
____8.3.1 명사는 자원, 동사는 HTTP 동작
____8.3.2 쿼리 매개변수를 한정어로 쓰기
____8.3.3 웹 API 버전
____8.3.4 HTTP 헤더
____8.3.5 링크
____8.3.6 응답
____8.3.7 문서
____8.3.8 포매팅 규약
____8.3.9 보안
__8.4 프로젝트 실습
____8.4.1 프로젝트 실행
____8.4.2 서버 코드
____8.4.3 컬과 제이쿼리
__8.5 실무상의 이론

CHAPTER 9 제이쿼리와 자이썬
__9.1 서버 측 : 자이썬
____9.1.1 파이썬 웹 서버
____9.1.2 자이썬 웹 서버
____9.1.3 모의 API
__9.2 클라이언트 측 : 제이쿼리
____9.2.1 DOM 횡단과 처리
____9.2.2 유틸리티 기능
____9.2.3 효과
____9.2.4 이벤트 핸들링
____9.2.5 Ajax
__9.3 제이쿼리와 고수준 추상화
__9.4 프로젝트 실습
____9.4.1 기본적인 HTML
____9.4.2 자바스크립트와 제이쿼리
__9.5 마치며

CHAPTER 10 제이루비와 앵귤러
__10.1 서버 측 : 제이루비와 시나트라
____10.1.1 워크플로
____10.1.2 대화형 루비 셸
____10.1.3 루비 버전 관리자
____10.1.4 패키지
____10.1.5 시나트라
____10.1.6 JSON 프로세싱
__10.2 클라이언트 측 : 앵귤러JS
____10.2.1 모델
____10.2.2 뷰
____10.2.3 컨트롤러
____10.2.4 서비스
__10.3 제이쿼리와 앵귤러 비교
____10.3.1 DOM 혹은 모델 처리
____10.3.2 앵귤러의 비간섭성
__10.4 프로젝트 실습
__10.5 마치며

CHAPTER 11 패키징과 디플로이
__11.1 자바와 JEE 패키징
__11.2 JEE 디플로이
____11.2.1 GUI에서 관리하기
____11.2.2 명령줄에서 관리하기
__11.3 JEE 이외의 디플로이
____11.3.1 웹 앱 외부에 서버를 디플로이
____11.3.2 웹 앱과 서버를 나란히 디플로이
____11.3.3 웹 앱 내부에 서버를 디플로이
__11.4 디플로이 선택이 미치는 영향
____11.4.1 부하 분산
____11.4.2 애플리케이션 디플로이의 자동화
__11.5 프로젝트 실습
____11.5.1 클라이언트
____11.5.2 서버
__11.6 마치며

CHAPTER 12 가상화
__12.1 완전한 가상화
__12.2 가상 머신 구현
____12.2.1 VMWare
____12.2.2 버추얼박스
____12.2.3 아마존 EC2
__12.3 가상 머신 관리
____12.3.1 베이그런트
____12.3.2 패커
____12.3.3 데브옵스 설정 관리
__12.4 컨테이너
____12.4.1 LXC
____12.4.2 Docker
__12.5 프로젝트 실습
____12.5.1 도커 도움말
____12.5.2 이미지와 컨테이너 관리
____12.5.3 도커에서의 자바
____12.5.4 도커와 베이그런트 네트워킹
__12.6 마치며

CHAPTER 13 테스트와 문서화
__13.1 테스트의 유형
____13.1.1 공식 테스트와 비공식 테스트
____13.1.2 테스트의 규모
____13.1.3 누가 누구를 위해서 무엇을 테스트하나?
__13.2 조직 성숙도에 대한 지표로서의 테스트
____13.2.1 프로세스 일관성 측정을 위한 CMM
____13.2.2 일관된 프로세스로 이끄는 메이븐
____13.2.3 일관된 프로세스로 이끄는 BDD
__13.3 테스트 프레임워크
____13.3.1 제이유닛
____13.3.2 재스민
____13.3.3 큐컴버
__13.4 프로젝트 실습
____13.4.1 제이유닛
____13.4.2 재스민
____13.4.3 큐컴버
____13.4.4 메이븐 사이트 보고서
__13.5 마치며

CHAPTER 14 마치며
__14.1 커뮤니티
__14.2 역사
__14.3 정말 마치며

APPENDIX A 제이루비 IRB 및 자바 API
__A.1 그래들을 이용한 셋업
__A.2 제이루비 IRB
____A.2.1 IRB 소개
__A.3 자바 기반의 관계형 데이터베이스
____A.3.1 H2
____A.3.2 HSQLDB
____A.3.3 더비
__A.4 마치며
____B.1 HTTP 1.1 요청 메서드

APPENDIX B RESTful 웹 API 요약
____B.2 HTTP 1.1 응답 코드
__B.3 웹 API용 컬
__B.4 JSON 문법
____B.4.1 JSON의 유형
__B.5 레일로드 다이어그램
____B.5.1 객체
____B.5.2 배열
____B.5.3 값

APPENDIX C 참고문헌
[교보문고에서 제공한 정보입니다.]