실전 자바스크립트 디자인 패턴
이 책은 프로그램 개발에 유용한 디자인 패턴을 자바스크립트 언어로 설명하고 있다.
자바스크립트 객체에 대해서 심도있게 알아보고 객체 지향 프로그래밍 요소들을 자바스크립트로 구현하는 방법을 알아본다.
클래스 관계를 UML 클래스 다이어 그램으로 표기하는 법과 SOLID 객체 지향 설계 방식을 설명한다.
마지막으로 디자인 패턴을 활용하여 실전 프로젝트(계산기, 페인터, 게임, 그래프)를 진행해 본다.
1장 : 자바스크립트 객체
1. 객체 리터럴과 객체
2. 생성자와 객체
3. Object.create()와 객체
4. 프로퍼티 존재 확인
5. 프로퍼티 열거
6. 프로퍼티 속성
7. 프로퍼티 정의
8. 프로퍼티 속성 변경
9. 프로퍼티 삭제
10. 타입 확인 (typeof)
11. 프로토타입 (prototype)
12. 컨스트럭터 (constructor)
13. 프로토타입 체인
14. 객체 유형 확인 (instanceof)
15. 생성자 상속
16. 상위생성자 프로퍼티 사용
17. 메서드 다형성
18. 메서드 추상화
19. 상위생성자 메서드 호출
2장 : 자바스크립트 기법
1. 네임스페이스
2. 실행 함수 표현식
3. 모듈 패턴
4. 참과 거짓
5. 동등연산자와 일치연산자
3장 : 클래스 관계와 UML
1. 상속(generalization)
2. 구현(realization)
3. 연관(association)
4. 집합(aggregation)
5. 합성(composition)
6. 의존(dependency)
4장 : 객체 지향 설계 원칙
1. 단일 책임 원칙
2. 개방 폐쇄 원칙
3. 리스코프 치환 원칙
4. 인터페이스 분리 원칙
5. 의존 역전 원칙
5장 : 생성 패턴
1. 싱글턴(Singleton)
2. 빌더(Builder)
3. 팩토리 메서드(Factory Method)
4. 프로토타입(Prototype)
5. 추상팩토리(Abstract Factory)
6장 : 구조 패턴
1. 어댑터(Adapter)
2. 브리지(Bridge)
3. 컴포지트(Composite)
4. 데커레이터(Decorator)
5. 퍼사드(Facade)
6. 플라이웨이트(Flyweight)
7. 프록시(Proxy)
7장 : 행위 패턴
1. 책임 연쇄(Chain of Responsibillity)
2. 커맨드(Command)
3. 인터프리터(Interpreter)
4. 이터레이터(Iterator)
5. 미디에이터(Mediator)
6. 메멘토(Memento)
7. 옵저버(Observer)
8. 스테이트(State)
9. 스트래티지(Strategy)
10. 템플릿 메서드(Template Method)
11. 비지터(Visitor)
8장 : 모델-뷰-XXX 패턴
1. 모델-뷰(Model-View)
2. MVC(Model-View-Controller)
3. MVP(Model-View-Presenter)
4. MVVM(Model-View-ViewModel)
9장 : 계산기 프로젝트
1. 계산기 설명
2. 책임 연쇄 패턴 적용하기
3. 수학함수 피연산자 정의하기
4. 계산기 화면 만들기
5. 모델 만들기
6. Command 패턴 적용하기
7. 사칙연산 처리하기
8. State 패턴 적용하기
9. 계산 초기화
10. 수학함수 처리하기
11. -부호 지정하기
12. 전체 소스
10장 : 페인터프로젝트
1. 페인터 설명
2. 화면 구성하기
3. 페인터 모델 만들기
4. 직사각형 생성자 정의하기
5. 타원 생성자 정의하기
6. 그림개체 추상화
7. 그리기 툴 속성 설정
8. 자유선 생성자 정의하기
9. 마우스 이벤트 처리
10. 직선 그리기
11. 직사각형 그리기
12. 타원 그리기
13. 정적 메서드 정의하기
14. 자유선 그리기
15. MVC 패턴 적용하기
16. Observer 패턴 적용하기
17. Strategy 패턴 적용하기
18. State 패턴 적용하기
19. Factory Method 패턴 적용하기
20. 선너비 설정하기
21. 선색 설정하기
22. 채움색 설정하기
23. 전체 소스
11장 : 게임 프로젝트
1. 게임 설명
2. 게임 화면 만들기
3. 모델 만들기
4. MVC 패턴 적용하기
5. 타원형 스프라이트 만들기
6. Singleton 패턴의 이미지 저장소 만들기
7. 이미지 스프라이트를 위한 Flyweight 패턴 적용하기
8. 텍스트 스프라이트 만들기
9. Factory를 이용한 객체 생성하기
10. 컴포지트 패턴의 복합 스프라이트 만들기
11. Abstract Factory 패턴 적용하기
12. Strategy 패턴 적용하기
13. State 패턴 적용하기
14. 마우스 이벤트 처리하기
15. 키 이벤트 처리하기
16. 게임로직 구현하기
17. 전체 소스
12장 : 그래프 프로젝트
1. 그래프 설명
2. Interpreter 패턴 적용하기
3. Decorator 패턴 적용하기
4. 변수 정의하기
5. Visitor 패턴 적용하기
6. 그래프 화면 만들기
7. 모델 만들기
8. MVC 패턴 적용하기
9. 무한대 처리하기
10. 그래픽점 데이터 정의하기
11. 유효하지 않은 값 처리하기
12. 전체 소스
부록
1. 업데이트
2. 소스다운로드