스프링 입문을 위한 자바 객체 지향의 원리와 이해 pdf 다운로드를 무료로 제공합니다 스프링에 입문하는 초급자는 스프링을 학습하거나 적용하는 데 어려움을 호소하고 있다. 그렇다면 스프링은 정말로 어려운 것일까? 누가 필자에게 스프링이 무엇인지 물어보면 주저 없이 객체 지향 프로그래밍
관련 교재 pdf 모음
책 소개
객체 지향 프로그래밍에 대한 올바른 지식을 갖추지 않은 상태에서 스프링을 이해한다는 것은 어불성설이다. 알파벳도 모르는 상태에서 영어를 마스터하고자 하는 욕심과 별반 다르지 않다. 스프링은 객체 지향 프로그래밍(OOP; Object-Oriented Programming)을 활용했던 기존 기술 중 가장 좋은 철학과 기법을 모아 그 정수를 뽑아낸 결정체라 할 수 있다. 모든 기술은 갑자기 하늘에서 뚝 떨어진 것이 아니다. 이전 기술의 어깨를 디딤돌 삼아 그 위에 이전 기술이 제시한 철학과 기법을 정반합의 논리로 정제하고, 이전 기술을 거름 삼아 새로운 철학과 기법을 더해 나타난다. 스프링 또한 이전 기술과 개념에서 좋은 점들을 집대성하고 거기에 자신만의 철학과 기법을 더해 자타가 인정하는 현존 최강의 프레임워크로 발전했다. 따라서 스프링을 학습하고 적용하려면 스프링의 근간이기도 한 이전 기술과 개념에 대한 최소한의 이해가 필요하다. 그리고 스프링의 근간을 이루는 핵심에는 객체 지향 특성과 설계원칙, 디자인 패턴이 자리 잡고 있다. 이 책에서는 본격적인 스프링 학습을 위한 사전 지식, 즉 스프링의 근간이 되는 객체 지향 4 대 특성, 객체 지향 설계 5원칙, 스프링에서 많이 활용되고 있는 디자인 패턴을 학습하고 이 해하는 것을 목표로 한다.
스프링 입문 자바 객체 지향의 원리
▣ 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원칙 – SOLID
__SRP – 단일 책임 원칙
__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. 태그
__AOP – Aspect? 관점? 핵심 관심사? 횡단 관심사?
____일단 덤벼 보자 – 실전편
____일단 덤벼 보자 – 설명편
____일단 덤벼 보자 – 용어편
____일단 덤벼 보자 – POJO와 XML 기반 AOP
____AOP 기초 완성 310
__PSA – 일관성 있는 서비스 추상화
▣ 부록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 정리