자바/스프링 개발자를 위한 실용주의 프로그래밍 - 위키북스 IT Leaders 시리즈 40

자바/스프링 개발자를 위한 실용주의 프로그래밍 - 위키북스 IT Leaders 시리즈 40

$33.21
저자

김우근

저자:김우근
컴퓨터공학을전공하고카카오에서백엔드엔지니어로근무하고있다.현재는에러및로그를수집하는옵저버빌리티플랫폼을만드는일에집중하고있다.취미가개발이라고당당하게말할수있을만큼소프트웨어개발을사랑하며퇴근후에는그림을그리거나개인프로젝트를진행한다.2020년에는공개SW개발자대회에서정보통신산업진흥원장상을수상했다.

목차

[1부]객체지향

들어가며
개발을배워야한다
__기술vs.개발
__개발능력을길러야하는이유
__스프링과JPA는기술이다
이책을출간하게된이유

01장:절차지향과비교하기
1.1책임과역할
1.2TDA원칙

02장:객체의종류
2.1VO(ValueObject:값객체)
__2.1.1불변성
__2.1.2동등성
__2.1.3자가검증
2.2DTO(DataTransferObject:데이터전송객체)
2.3DAO(DataAccessObject:데이터접근객체)
2.4엔티티(Entity:개체)
__2.4.1도메인엔티티
__2.4.2DB엔티티
__2.4.3JPA엔티티
__2.4.4해석
2.5객체의다양한종류

03장:행동
3.1덕타이핑
3.2행동과구현
3.3인터페이스
3.4행동과역할
3.5메서드

04장:SOLID
4.1SOLID소개
__4.1.1단일책임원칙
__4.1.2개방폐쇄원칙
__4.1.3리스코프치환원칙
__4.1.4인터페이스분리원칙
__4.1.5의존성역전원칙
4.2의존성
__4.2.1의존성주입
__4.2.2의존성역전
__4.2.3의존성역전과스프링
__4.2.4의존성이강조되는이유
4.3SOLID와객체지향
4.4디자인패턴

05장:순환참조
5.1순환참조의문제점
__5.1.1무한루프
__5.1.2시스템복잡도
5.2순환참조를해결하는방법
__5.2.1불필요한참조제거
__5.2.2간접참조활용
__5.2.3공통컴포넌트분리
__5.2.4이벤트기반시스템사용
5.3양방향매핑
5.4상위수준의순환참조

[2부]스프링과객체지향설계

06장:안티패턴
6.1스마트UI
6.2양방향레이어드아키텍처
__6.2.1레이어별모델구성
__6.2.2공통모듈구성
6.3완화된레이어드아키텍처
6.4트랜잭션스크립트

07장:서비스
7.1Manager
7.2서비스보다도메인모델
7.3작은기계
7.4조언

08장:레이어드아키텍처
8.1레이어드아키텍처의최소조건
8.2잘못된레이어드아키텍처
__8.2.1JPA엔티티우선접근
__8.2.2API엔드포인트우선접근
__8.2.3본질을다시생각하기
8.3진화하는아키텍처
__8.3.1인지모델변경하기
__8.3.2JPA와의결합끊기
__8.3.3웹프레임워크와의결합끊기
8.4새로운접근법
8.5빈약한도메인

09장:모듈
9.1모듈성
__9.1.1독립성
__9.1.2은닉성
9.2패키지구조
__9.2.1계층기반구조
__9.2.2도메인기반구조
__9.2.3정리
9.3패키지와모듈

10장:도메인
10.1소프트웨어개발의시작
10.2애플리케이션의본질
10.3도메인모델과영속성객체
__10.3.1통합하기전략
__10.3.2구분하기전략
__10.3.3평가

11장:알아두면유용한스프링활용법
11.1타입기반주입
11.2자가호출

[03부]테스트

12장:자동테스트
12.1Regression
12.2의도
12.3레거시코드

13장:테스트피라미드
13.1구글의테스트피라미드
13.2테스트분류기준
13.3소형테스트의중요성

14장:테스트대역
14.1Dummy
14.2Stub
14.3Fake
14.4Mock
__14.4.1상태기반검증
__14.4.2행위기반검증
__14.4.3상태기반vs.행위기반
14.5Spy
14.6정리

15장:테스트가능성
15.1테스트를어렵게만드는요소
__15.1.1숨겨진입력
__15.1.2숨겨진출력
15.2테스트가보내는신호

16장:테스트와설계
16.1테스트와SRP
16.2테스트와ISP
16.3테스트와OCP,DIP
16.4테스트와LSP

17장:테스트와개발방법론
17.1TDD
17.2BDD

[부록]

A:포트-어댑터패턴
B:클린아키텍처
C:소프트웨어엔지니어
D:실용주의
E:참고자료