목차
▣ 01장: 사람을 사랑한 기술신기술은 이전 기술의 어깨를 딛고 기계어에서 객체 지향 프로그래밍 언어로 기계어-0과 1의 행진 / 너무나 비인간적인 언어 어셈블리어-0과 1의 행진을 벗어나 인간 지향으로 / 기계어 니모닉 C 언어-강력한 이식성 / One Source Multi Object Use Anywhere C++ 언어-정말 인간적인 프로그래밍 방법론, 객체 지향 자바 - 진정한 객체 지향 언어 신기술은 이전 기술의 어깨를 딛고 개발자를 위해 발전한다 신기술이 역사 속에서 환영만 받은 것은 아니다 짧은 글, 긴 생각 UML을 대하는 자세 당신은 CBD, SOA가 어려운가? 객체 지향의 4대 특성을 누군가에게 설명할 수 있는가? 스프링 프레임워크는 사상이면서 또 단일 제품이다 책 출간의 변 ▣ 02장: 자바와 절차적/ 구조적 프로그래밍자바 프로그램의 개발과 구동 자바에 존재하는 절차적/구조적 프로그래밍의 유산 다시 보는 main() 메서드: 메서드 스택 프레임 변수와 메모리: 변수! 너 어디 있니? 블록 구문과 메모리: 블록 스택 프레임 지역 변수와 메모리: 스택 프레임에 갇혔어요! 메서드 호출과 메모리: 메서드 스택 프레임 2 전역 변수와 메모리: 전역 변수 쓰지 말라니까요! 멀티 스레드 / 멀티 프로세스의 이해 STS(또는 이클립스)를 이용해 T 메모리 영역 엿보기 정리 - 객체 지향은 절차적/구조적 프로그래밍의 어깨를 딛고 ▣ 03장: 자바와 객체 지향객체 지향은 인간 지향이다 객체 지향의 4 대 특성 - 캡! 상추다 클래스 vs. 객체 = 붕어빵틀 vs. 붕어빵 ??? 추상화: 모델링 82추상화는 모델링이다 추상화와 T 메모리 클래스 멤버 vs. 객체 멤버 = static 멤버 vs. 인스턴스 멤버 상속: 재사용 + 확장 상속의 강력함 상속은 is a 관계를 만족해야 한다? 다중 상속과 자바 상속과 인터페이스 상속과 UML 표기법 상속과 T 메모리 다형성: 사용편의성 오버라이딩? 오버로딩? 다형성과 T 메모리다형성이 지원되지 않는 언어 캡슐화: 정보 은닉 객체 멤버의 접근 제어자 참조 변수의 복사 정리 - 자바 키워드와 OOP 4 대 특성 ▣ 04장: 자바가 확장한 객체 지향abstract 키워드 - 추상 메서드와 추상 클래스 생성자 클래스 생성 시의 실행 블록, static 블록final 키워드 final 과 클래스 final 과 변수 final 과 메서드 instanceof 연산자 package 키워드 interface 키워드와 implements 키워드 this 키워드 super 키워드 예비 고수를 위한 한마디 정리 - 자바 키워드와 OOP 확장 ▣ 05장: 객체 지향 설계 5원칙 - SOLIDSRP - 단일 책임 원칙 OCP - 개방 폐쇄 원칙 LSP - 리스코프 치환 원칙 ISP - 인터페이스 분리 원칙 DIP - 의존 역전 원칙 정리 - 객체 지향 세계와 SOLID ▣ 06장: 스프링이 사랑한 디자인 패턴어댑터 패턴(Adapter Pattern) 프록시 패턴(Proxy Pattern) 데코레이터 패턴(Decorator Pattern) 싱글턴 패턴(Singleton Pattern) 템플릿 메서드 패턴(Template Method Pattern) 팩터리 메서드 패턴(Factory Method Pattern) 전략 패턴(Strategy Pattern) 템플릿 콜백 패턴(Template Callback Pattern - 견본/회신 패턴) 스프링이 사랑한 다른 패턴들 ▣ 07장: 스프링 삼각형과 설정 정보IoC/DI - 제어의 역전/의존성 주입 프로그래밍에서 의존성이란? 스프링 없이 의존성 주입하기 1 - 생성자를 통한 의존성 주입 스프링 없이 의존성 주입하기 2 - 속성을 통한 의존성 주입 스프링을 통한 의존성 주입 - XML 파일 사용 스프링을 통한 의존성 주입 - 스프링 설정 파일(XML)에서 속성 주입 스프링을 통한 의존성 주입 - @Autowired를 통한 속성 주입 스프링을 통한 의존성 주입 - @Resource를 통한 속성 주입 스프링을 통한 의존성 주입 - @Autowired vs. @Resource vs. property 태그 AOP - Aspect? 관점? 핵심 관심사? 횡단 관심사? 일단 덤벼 보자 - 실전편 일단 덤벼 보자 - 설명편 일단 덤벼 보자 - 용어편 일단 덤벼 보자 - POJO와 XML 기반 AOP AOP 기초 완성 310PSA - 일관성 있는 서비스 추상화 ▣ 부록A: 스프링 MVC를 이용한 게시판 구축A.1 URL과 @RequestMapping 연결하기 A.2 인메모리 DB HSQL 사용하기 A.3 VO와 MyBatis를 이용한 DAO 구현 A.4 서비스(Service) 구현A.5 목록 구현 A.6 읽기 구현 A.7 새 글 구현 A.8 수정 구현 A.9 삭제 구현 A.10 리팩터링 ▣ 부록B: 자바 8 람다와 인터페이스 스펙 변화B.1 람다가 도입된 이유 B.2 람다란 무엇인가? B.3 함수형 인터페이스B.4 메서드 호출 인자로 람다 사용 B.5 메서드 반환값으로 람다 사용 B.6 자바 8 API에서 제공하는 함수형 인터페이스 B.7 컬렉션 스트림에서 람다 사용 B.8 메서드 레퍼런스와 생성자 레퍼런스 B.9 인터페이스의 디폴트 메서드와 정적 메서드 B.10 정리