이미 소장하고 있다면 판매해 보세요.
|
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 참고문헌 |
|
■ 자바와 자바스크립트로 혼자서 만드는 클라이언트-서버 웹 앱
스마트폰 등장과 HTML 5 표준화 이후로 웹 기술은 비약적인 발전을 거뒀다. 그중에서도 자바스크립트의 발전은 특히 눈부시며, 자바의 중요성은 말로 표현할 수 없을 정도다. 이 책은 이 두 기술을 중심으로 하여 리치하고 확장성 있는 웹 앱을 개발하는 다양한 기술을 소개하여 개발자의 선택의 폭을 돕는다. REST 방식 모던 웹 앱 개발을 위해 필요한 클라이언트-서버 측 기술을 모두 비중 있게 다룬다는 점이 책의 큰 장점이다. 오늘날 웹 앱 개발에서 사용되는 기술과 트렌드에 대한 ‘큰 그림’과 함께, 이해를 돕기 위한 구체적인 예제를 제공한다. 자바와 자바스크립트, 그리고 최신 툴과 프레임워크를 활용하여 클라이언트-서버 아키텍처로 웹 앱을 구성하고 개발하는 방법을 제대로 배울 수 있을 것이다. 올바른 정보에 입각하여 제대로 된 기술을 선택하는 혜안을 기를 수 있고, 특히 1인 개발자로서 웹 앱을 구상 중이라면 소프트웨어 구조 및 설계에 대한 저자의 통찰에서 큰 도움을 받을 것이다. ■ 대상 독자 - 나 홀로 서버와 클라이언트 모두 개발하는 개발자 - HTML/CSS, 자바스크립트, 자바 프로그래밍에 익숙한 웹 앱 개발자 - 개발 도구를 이용해 새로운 기술과 기법을 적용하는 실제 예제를 ‘만들면서 배우는’ 개발자 |